How AI, OpenAI, and ChatGPT impact business and software.
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
2.
3. 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
4. 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
5. 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
6. 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
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
11. 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
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 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
18. 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
19. Given I am a proud speaker at CodeCamp
When participant enjoyed the presentation
Then complete the feedback
And return to organizer
thank you
19