Bridging JAVA and .NET
– Spec By Example from Vision to Success
Corneliu Rimboiu
Code Camp Iasi 2013
Agenda

• Vision
• The Story behind The Story
• Why NOT Spec By Example?
• A common production … fingerpointing

• What’s Agile All About?
• Spec By Example
• Enablers and Decisions
• Results and Lessons Learned
• Enjoyable reading
3
Vision
Given story is done
When sprint is over
Then feedback is received

Given an audit
When QA reports
Then is success

In order to transform Vision into Reality
As a Business Product Owner
I want an IT Product
Given product is live
When an exception
occurs
Then never crashes

Given 100 messages per
second are received
And are 10000 active
records
When I want to do a
transaction
Then is near real-time

Given a change request
When is priority
Then team welcomes the
change

Given Sprint Planning
When estimate
Then I have to know the effort for BDD

4
The Story Behind The Story
Planned

R1 – Epic 1

R1 – Epic 1

R2 – Epic 2

R3 – Epic 3

R2 – Epic 2

R4 – Epic 4

?

Reality
We are here!!!

5
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!

6
NO WAY! BYE!

See you @ Code Camp 2014!

7
A common Production…
finger - pointing
How QA
missed this?
Developers
don’t test!
They throw
over the wall!

That was
obvious!
Should I spell
every detail?

Business
requirements
were not
clear!

But we did what was
in functional spec!

Client Side
problem!

Server Side
problem!

Source; Specification by Example
by Declan Whelan, Agile Coach and Developer at LeanChomp on
May 18, 2012

8
What’s Agile All About?

9
Spec By Example
Ubiquitous
Language

10
Quiz

Q: For an MVVM client you are planning to use

Q: Your alerting system may handle similar alerts

CollectionViews<T> and apply filters for different state

(same content) so you want to let consumers know that.

(like: Approved, Cancelled, Pending) over same

You do plan to use a Corelation ID which is

ObservableCollection<T>.

GetHashCode() of object.

If you have to deal with 10+ messages/ second over an

Is this safe in an enterprise considering you do have

10000 active records is this a good idea?

failover nodes?

IN YOUR ZONE

11
Enablers and decisions – Communication
and Collaboration

12
Enablers and decisions – Architecture and
Design
Given a change request
When is priority
Then team welcomes the change

Given .NET Design Lead
When I architect an MVVM client
Then I use PRISM

Given JAVA Design Lead
When I architect an ESB
Then I use OSGi

13
Enablers and decisions - Estimations
Given Sprint Planning as Developer
When estimate
Then I add the effort for new steps

Given Sprint Planning as BA
When estimate
Then add the effort for writing scenarios
And omit effort for classic documentation

Given a good BA
When write specifications
Then use an defined set of steps
And use business language

14
Enablers and decisions – Quality Assurance
Given an audit
When QA reports
Then is success

15
Enablers and decisions – Path to production

Given story is done
When sprint is over
Then feedback is received

16
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

17
Enjoyable Reading
Specification by Example: How successful teams deliver the right
software
By: Gojko Adzic
Publisher: Manning Publications
Pub. Date: June 28, 2011
Executable Specifications with Scrum: A Practical Guide to Agile
Requirements Discovery
By: Mario Cardinal
Publisher: Addison-Wesley Professional
Pub. Date: July 29, 2013
Java Application Architecture: Modularity Patterns with Examples
Using OSGi
By: Kirk Knoernschild
Publisher: Addison-Wesley Professional
Pub. 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 Shifflett
Publisher: Microsoft Press
Pub. Date: March 22, 2011

18
Given I am a proud speaker at CodeCamp
When participant enjoyed the presentation
Then complete the feedback
And return to organizer

thank you

19
Appendix 1 - OSGi

20
Appendix 2 – Prism, MEF

21
Appendix 3 – Project mindmap

IN YOUR ZONE

22

Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .net

  • 1.
    Bridging JAVA and.NET – Spec By Example from Vision to Success Corneliu Rimboiu Code Camp Iasi 2013
  • 3.
    Agenda • Vision • TheStory behind The Story • Why NOT Spec By Example? • A common production … fingerpointing • What’s Agile All About? • Spec By Example • Enablers and Decisions • Results and Lessons Learned • Enjoyable reading 3
  • 4.
    Vision Given story isdone When sprint is over Then feedback is received Given an audit When QA reports Then is success In order to transform Vision into Reality As a Business Product Owner I want an IT Product Given product is live When an exception occurs Then never crashes Given 100 messages per second are received And are 10000 active records When I want to do a transaction Then is near real-time Given a change request When is priority Then team welcomes the change Given Sprint Planning When estimate Then I have to know the effort for BDD 4
  • 5.
    The Story BehindThe Story Planned R1 – Epic 1 R1 – Epic 1 R2 – Epic 2 R3 – Epic 3 R2 – Epic 2 R4 – Epic 4 ? Reality We are here!!! 5
  • 6.
    Why NOT SpecBy 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! 6
  • 7.
    NO WAY! BYE! Seeyou @ Code Camp 2014! 7
  • 8.
    A common Production… finger- pointing How QA missed this? Developers don’t test! They throw over the wall! That was obvious! Should I spell every detail? Business requirements were not clear! But we did what was in functional spec! Client Side problem! Server Side problem! Source; Specification by Example by Declan Whelan, Agile Coach and Developer at LeanChomp on May 18, 2012 8
  • 9.
  • 10.
  • 11.
    Quiz Q: For anMVVM client you are planning to use Q: Your alerting system may handle similar alerts CollectionViews<T> and apply filters for different state (same content) so you want to let consumers know that. (like: Approved, Cancelled, Pending) over same You do plan to use a Corelation ID which is ObservableCollection<T>. GetHashCode() of object. If you have to deal with 10+ messages/ second over an Is this safe in an enterprise considering you do have 10000 active records is this a good idea? failover nodes? IN YOUR ZONE 11
  • 12.
    Enablers and decisions– Communication and Collaboration 12
  • 13.
    Enablers and decisions– Architecture and Design Given a change request When is priority Then team welcomes the change Given .NET Design Lead When I architect an MVVM client Then I use PRISM Given JAVA Design Lead When I architect an ESB Then I use OSGi 13
  • 14.
    Enablers and decisions- Estimations Given Sprint Planning as Developer When estimate Then I add the effort for new steps Given Sprint Planning as BA When estimate Then add the effort for writing scenarios And omit effort for classic documentation Given a good BA When write specifications Then use an defined set of steps And use business language 14
  • 15.
    Enablers and decisions– Quality Assurance Given an audit When QA reports Then is success 15
  • 16.
    Enablers and decisions– Path to production Given story is done When sprint is over Then feedback is received 16
  • 17.
    Results and LessonLearned • 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 17
  • 18.
    Enjoyable Reading Specification byExample: How successful teams deliver the right software By: Gojko Adzic Publisher: Manning Publications Pub. Date: June 28, 2011 Executable Specifications with Scrum: A Practical Guide to Agile Requirements Discovery By: Mario Cardinal Publisher: Addison-Wesley Professional Pub. Date: July 29, 2013 Java Application Architecture: Modularity Patterns with Examples Using OSGi By: Kirk Knoernschild Publisher: Addison-Wesley Professional Pub. 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 Shifflett Publisher: Microsoft Press Pub. Date: March 22, 2011 18
  • 19.
    Given I ama proud speaker at CodeCamp When participant enjoyed the presentation Then complete the feedback And return to organizer thank you 19
  • 20.
    Appendix 1 -OSGi 20
  • 21.
    Appendix 2 –Prism, MEF 21
  • 22.
    Appendix 3 –Project mindmap IN YOUR ZONE 22