SlideShare uma empresa Scribd logo
1 de 22
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

Mais conteúdo relacionado

Mais procurados

Iwsm2014 dev ops measurements (amir arooni)
Iwsm2014   dev ops measurements (amir arooni)Iwsm2014   dev ops measurements (amir arooni)
Iwsm2014 dev ops measurements (amir arooni)
Nesma
 

Mais procurados (20)

Andrii prosov
Andrii prosov Andrii prosov
Andrii prosov
 
How different Minimum Viable Products helped us understand customers.
How different Minimum Viable Products helped us understand customers.How different Minimum Viable Products helped us understand customers.
How different Minimum Viable Products helped us understand customers.
 
Minimum viable product @headstart pune Feb 2020
Minimum viable product @headstart pune Feb 2020Minimum viable product @headstart pune Feb 2020
Minimum viable product @headstart pune Feb 2020
 
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
 
"How we make Agile and CI/CD works" by Rendra Toro (OLX Indonesia)
"How we make Agile and CI/CD works" by Rendra Toro (OLX Indonesia)"How we make Agile and CI/CD works" by Rendra Toro (OLX Indonesia)
"How we make Agile and CI/CD works" by Rendra Toro (OLX Indonesia)
 
Future of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality AnalystFuture of Testing, Test Automation and The Quality Analyst
Future of Testing, Test Automation and The Quality Analyst
 
Iwsm2014 dev ops measurements (amir arooni)
Iwsm2014   dev ops measurements (amir arooni)Iwsm2014   dev ops measurements (amir arooni)
Iwsm2014 dev ops measurements (amir arooni)
 
Build a Product Narrative
Build a Product NarrativeBuild a Product Narrative
Build a Product Narrative
 
Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"
 
Agile Testing
Agile Testing Agile Testing
Agile Testing
 
Tackling Strategic Engineering Challenges
Tackling Strategic Engineering ChallengesTackling Strategic Engineering Challenges
Tackling Strategic Engineering Challenges
 
Tips for Sales in IT
Tips for Sales in ITTips for Sales in IT
Tips for Sales in IT
 
PROVA_Engineering
PROVA_EngineeringPROVA_Engineering
PROVA_Engineering
 
recommendation = optimization(prediction)
recommendation = optimization(prediction)recommendation = optimization(prediction)
recommendation = optimization(prediction)
 
Lean Software Development: Validated Learning
Lean Software Development: Validated LearningLean Software Development: Validated Learning
Lean Software Development: Validated Learning
 
Андрій Просов "Fixed Price Agile Projects: Challenges for Project Manager" Kh...
Андрій Просов "Fixed Price Agile Projects: Challenges for Project Manager" Kh...Андрій Просов "Fixed Price Agile Projects: Challenges for Project Manager" Kh...
Андрій Просов "Fixed Price Agile Projects: Challenges for Project Manager" Kh...
 
CWBF event slides - Successful project (JJ Allen)
CWBF event slides - Successful project (JJ Allen)CWBF event slides - Successful project (JJ Allen)
CWBF event slides - Successful project (JJ Allen)
 
Custom mobile application development
Custom mobile application developmentCustom mobile application development
Custom mobile application development
 
Nikolay Faletskyi - How tester can to survive in lean startup
Nikolay Faletskyi - How tester can to survive in lean startupNikolay Faletskyi - How tester can to survive in lean startup
Nikolay Faletskyi - How tester can to survive in lean startup
 
Paripoorna concept to deployment v 1.0
Paripoorna concept to deployment v 1.0Paripoorna concept to deployment v 1.0
Paripoorna concept to deployment v 1.0
 

Destaque

Asp.net mvc security
Asp.net mvc securityAsp.net mvc security
Asp.net mvc security
LearningTech
 
Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web Applications
Buu Nguyen
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites
oazabir
 

Destaque (20)

Performance in .net best practices
Performance in .net best practicesPerformance in .net best practices
Performance in .net best practices
 
ZZ BC#8 Hello ASP.NET MVC 4 (dks)
ZZ BC#8 Hello ASP.NET MVC 4 (dks)ZZ BC#8 Hello ASP.NET MVC 4 (dks)
ZZ BC#8 Hello ASP.NET MVC 4 (dks)
 
Web API authentication and authorization
Web API authentication and authorization Web API authentication and authorization
Web API authentication and authorization
 
Authentication, Authorization, and Identity – More than meets the eye…
Authentication, Authorization, and Identity – More than meets the eye…Authentication, Authorization, and Identity – More than meets the eye…
Authentication, Authorization, and Identity – More than meets the eye…
 
Scalable Resilient Web Services In .Net
Scalable Resilient Web Services In .NetScalable Resilient Web Services In .Net
Scalable Resilient Web Services In .Net
 
Asp.net mvc security
Asp.net mvc securityAsp.net mvc security
Asp.net mvc security
 
DDD Melbourne 2014 security in ASP.Net Web API 2
DDD Melbourne 2014 security in ASP.Net Web API 2DDD Melbourne 2014 security in ASP.Net Web API 2
DDD Melbourne 2014 security in ASP.Net Web API 2
 
Smooth Sort
Smooth SortSmooth Sort
Smooth Sort
 
Design & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursDesign & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hours
 
Secure RESTful Web Services for ASP.NET Web API
Secure RESTful Web Services for ASP.NET Web APISecure RESTful Web Services for ASP.NET Web API
Secure RESTful Web Services for ASP.NET Web API
 
End to End Security with MVC and Web API
End to End Security with MVC and Web APIEnd to End Security with MVC and Web API
End to End Security with MVC and Web API
 
Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web Applications
 
Tips and Tricks For Faster Asp.NET and MVC Applications
Tips and Tricks For Faster Asp.NET and MVC ApplicationsTips and Tricks For Faster Asp.NET and MVC Applications
Tips and Tricks For Faster Asp.NET and MVC Applications
 
ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2ASP.NET Core 1.0 Overview: Post-RC2
ASP.NET Core 1.0 Overview: Post-RC2
 
Overview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable CollectionsOverview of the .Net Collection Framework and Immutable Collections
Overview of the .Net Collection Framework and Immutable Collections
 
5. web api 2 aspdotnet-mvc5-slides
5. web api 2 aspdotnet-mvc5-slides5. web api 2 aspdotnet-mvc5-slides
5. web api 2 aspdotnet-mvc5-slides
 
ASP.NET Core MVC + Web API with Overview (Post RC2)
ASP.NET Core MVC + Web API with Overview (Post RC2)ASP.NET Core MVC + Web API with Overview (Post RC2)
ASP.NET Core MVC + Web API with Overview (Post RC2)
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 

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

Semelhante a Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .net (20)

Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
Habits of Highly Effective Platform Teams: Unlocking the Value of PCF
Habits of Highly Effective Platform Teams: Unlocking the Value of PCFHabits of Highly Effective Platform Teams: Unlocking the Value of PCF
Habits of Highly Effective Platform Teams: Unlocking the Value of PCF
 
Evolving to Cloud-Native - Anand Rao
Evolving to Cloud-Native - Anand RaoEvolving to Cloud-Native - Anand Rao
Evolving to Cloud-Native - Anand Rao
 
Migrating Your Apps to the Cloud: How to do it and What to Avoid
Migrating Your Apps to the Cloud: How to do it and What to AvoidMigrating Your Apps to the Cloud: How to do it and What to Avoid
Migrating Your Apps to the Cloud: How to do it and What to Avoid
 
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Java vs javascript (XPages)
Java vs javascript (XPages)Java vs javascript (XPages)
Java vs javascript (XPages)
 
Design Thinking, Agile, DevOps - fuel the innovation delivery
Design Thinking, Agile, DevOps  - fuel the innovation deliveryDesign Thinking, Agile, DevOps  - fuel the innovation delivery
Design Thinking, Agile, DevOps - fuel the innovation delivery
 
Top Agile Metrics
Top Agile MetricsTop Agile Metrics
Top Agile Metrics
 
Kanban testing
Kanban testingKanban testing
Kanban testing
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)
 
Applying Lean Startup Principles to Agile Projects
Applying Lean Startup Principles to Agile ProjectsApplying Lean Startup Principles to Agile Projects
Applying Lean Startup Principles to Agile Projects
 
Professional Project Manager Should Be Proficient in Agile
Professional Project Manager Should Be Proficient in AgileProfessional Project Manager Should Be Proficient in Agile
Professional Project Manager Should Be Proficient in Agile
 
Lean Kanban India 2019 Conference | Scrumban comes to the rescue: A Case Stud...
Lean Kanban India 2019 Conference | Scrumban comes to the rescue: A Case Stud...Lean Kanban India 2019 Conference | Scrumban comes to the rescue: A Case Stud...
Lean Kanban India 2019 Conference | Scrumban comes to the rescue: A Case Stud...
 
Getting Stakeholder Buy-in for xAPI
Getting Stakeholder Buy-in for xAPIGetting Stakeholder Buy-in for xAPI
Getting Stakeholder Buy-in for xAPI
 
Why agile?
Why agile?Why agile?
Why agile?
 
Applying Lean Startup Principles to Agile Projects
Applying Lean Startup Principles to Agile ProjectsApplying Lean Startup Principles to Agile Projects
Applying Lean Startup Principles to Agile Projects
 
Dashlane Mission Teams
Dashlane Mission TeamsDashlane Mission Teams
Dashlane Mission Teams
 

Mais de Codecamp Romania

Mais de Codecamp Romania (20)

Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experience
 
Cloud powered search
Cloud powered searchCloud powered search
Cloud powered search
 
Ccp
CcpCcp
Ccp
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
 
Agility and life
Agility and lifeAgility and life
Agility and life
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflow
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in android
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing career
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
 
Ecma6 in the wild
Ecma6 in the wildEcma6 in the wild
Ecma6 in the wild
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forward
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

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
  • 7. NO WAY! BYE! See you @ 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
  • 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
  • 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 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
  • 20. Appendix 1 - OSGi 20
  • 21. Appendix 2 – Prism, MEF 21
  • 22. Appendix 3 – Project mindmap IN YOUR ZONE 22