Upload
codecampiasi
View
390
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Bridging JAVA and .NET – Spec By Example from Vision to Success
Corneliu Rimboiu Code Camp Iasi 2013
• Vision
• The Story behind The Story
• Why NOT Spec By Example?
• A common production … finger-pointing
• What’s Agile All About?
• Spec By Example
• Enablers and Decisions
• Results and Lessons Learned
• Enjoyable reading
Agenda
3
Vision
In order to transform Vision into RealityAs a Business Product OwnerI want an IT Product
Given a change requestWhen is priorityThen team welcomes the change
Given 100 messages per second are receivedAnd are 10000 active recordsWhen I want to do a transactionThen is near real-time
Given product is liveWhen an exception occursThen never crashes
Given an auditWhen QA reports Then is success
Given story is doneWhen sprint is overThen feedback is received
Given Sprint PlanningWhen estimateThen I have to know the effort for BDD
The Story Behind The Story
R1 – Epic 1 R2 – Epic 2 R3 – Epic 3 R4 – Epic 4
R1 – Epic 1 R2 – Epic 2 ?
Planned
Reality
We are here!!!
Why NOT Spec By Example?
• Business will never pay for this!
• Too much Overhead!
• We are already LATE! We have to deliver now!
• Only programmers will know what is done and what still to be done!
• What’s this Gherkin Language all about?!?
• Who will write the scenarios?
• How we estimate?
• We have to re-test everything!
NO WAY! BYE!
See you @ Code Camp 2014!
A common Production…
finger - pointing
How QA missed this?
Developers don’t test! They throw
over the wall!
Client Side problem!
Server Side problem!
That was obvious!
Should I spell every detail?
Business requirements
were not clear!
Source; Specification by Exampleby Declan Whelan, Agile Coach and Developer at LeanChomp on May 18, 2012
But we did what was in functional spec!
What’s Agile All About?
Spec By Example
Ubiquitous Language
11IN YOUR ZONE
Quiz
Q: For an MVVM client you are planning to use
CollectionViews<T> and apply filters for different state
(like: Approved, Cancelled, Pending) over same
ObservableCollection<T>.
If you have to deal with 10+ messages/ second over an
10000 active records is this a good idea?
Q: Your alerting system may handle similar alerts
(same content) so you want to let consumers know that.
You do plan to use a Corelation ID which is
GetHashCode() of object.
Is this safe in an enterprise considering you do have
failover nodes?
Enablers and decisions – Communication and Collaboration
Enablers and decisions – Architecture and Design
Given JAVA Design LeadWhen I architect an ESBThen I use OSGiGiven .NET Design Lead
When I architect an MVVM clientThen I use PRISM
Given a change requestWhen is priorityThen team welcomes the change
Enablers and decisions - Estimations
Given Sprint Planning as DeveloperWhen estimateThen I add the effort for new steps
Given Sprint Planning as BAWhen estimateThen add the effort for writing scenariosAnd omit effort for classic documentation
Given a good BAWhen write specificationsThen use an defined set of stepsAnd use business language
Enablers and decisions – Quality Assurance
Given an auditWhen QA reports Then is success
Enablers and decisions – Path to production
Given story is doneWhen sprint is overThen feedback is received
Results and Lesson Learned
• Results:• UAT cycles reduced from 4 to 1.5• Final product is trustful so is requested by other BU’s• If involves UI automation it can be “sold” as Run Book• 0 production defects (likely)
• Lesson learned:• Team has to stand the pressure in early stage• Rewards at the end of release• Buy Your Time• Consultant – must move on
Enjoyable Reading
Specification by Example: How successful teams deliver the right softwareBy: Gojko AdzicPublisher: Manning PublicationsPub. Date: June 28, 2011
Executable Specifications with Scrum: A Practical Guide to Agile Requirements DiscoveryBy: Mario CardinalPublisher: Addison-Wesley ProfessionalPub. Date: July 29, 2013
Java Application Architecture: Modularity Patterns with Examples Using OSGiBy: Kirk KnoernschildPublisher: Addison-Wesley ProfessionalPub. Date: March 15, 2012
Developer’s Guide to Microsoft® Prism 4: Building Modular MVVM Applications with Windows® Presentation Foundation and Microsoft Silverlight®By: Bob Brumfield; Geoff Cox; David Hill; Brian Noyes; Michael Puleio; Karl ShifflettPublisher: Microsoft PressPub. Date: March 22, 2011
thank you
Given I am a proud speaker at CodeCampWhen participant enjoyed the presentationThen complete the feedbackAnd return to organizer
Appendix 1 - OSGi
Appendix 2 – Prism, MEF
22IN YOUR ZONE
Appendix 3 – Project mindmap
Iasi Codecamp.mm