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

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

Embed Size (px)

DESCRIPTION

 

Citation preview

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

Bridging JAVA and .NET – Spec By Example from Vision to Success

Corneliu Rimboiu Code Camp Iasi 2013

Page 2: Iasi code camp 12 october 2013   corneliu rimboiu - bridging java and .net
Page 3: Iasi code camp 12 october 2013   corneliu rimboiu - bridging java and .net

• 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

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

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

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

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

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

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!

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

NO WAY! BYE!

See you @ Code Camp 2014!

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

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!

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

What’s Agile All About?

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

Spec By Example

Ubiquitous Language

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

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?

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

Enablers and decisions – Communication and Collaboration

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

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

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

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

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

Enablers and decisions – Quality Assurance

Given an auditWhen QA reports Then is success

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

Enablers and decisions – Path to production

Given story is doneWhen sprint is overThen feedback is received

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

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

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

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

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

thank you

Given I am a proud speaker at CodeCampWhen participant enjoyed the presentationThen complete the feedbackAnd return to organizer

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

Appendix 1 - OSGi

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

Appendix 2 – Prism, MEF

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

22IN YOUR ZONE

Appendix 3 – Project mindmap

Iasi Codecamp.mm