SlideShare una empresa de Scribd logo
1 de 27
Curing the Agile Hangover

  with Software Craftsmanship
BACKGROUND
Waterfall Process




Requirements     Dev       Test    Release
Teams Divided By Roles



  Project
Managers     Developers   Testers
/ Analysts
Component Teams




Dev Team 1         Dev Team 2     Dev Team 3

 Component 1        Component 2    Component 3
AGILE ADOPTION
Scrum Teams
          Scrum
                   Developers
Product   Master
Owner




           QA         BA




                                Component 3
                                Component 2
                                Component 1
The Hangover
                 Lack of Technical Expertise
     S  tagnant S     kill-set Long running builds
Late discovery of Bugs Low Moral       Unstable S  ystem
 Requirements not well understood
            Inefficient Develop, Debug, Deploy Cycles

Unreliable and Costly Tests                 Mountain of Technical Debt
The Off-Shore Effect
Low Moral                Poor ROI


                The
              Hangover

Low Quality          Us and Them
 Software              Attitude
Low Moral
              Culture of Learning
• Bring mentors in that could lead by example
  and motivate people
• Internal Communities of Practice
     – Learning Sessions
• Active participation in external communities
Low Moral
                 Social Coding
• Pair Programming
• Feature Branches
• Pull Request Based Commit Model
     – Code reviewed by members of another team
Low Moral
                      Equality
- No Special teams
- No positions or hierarchies within the teams
    - Individual efforts are valued and recognised by
      everyone – No egos
Low Moral
                  Recruitment
- Recruitment is a team activity
- Passion is a key criteria
    - Foundations of software development is more
      important than technology specific knowledge
Community of
                          Poor ROI
Professionals

                 The
               Hangover

 Low Quality          Us and Them
  Software              Attitude
Poor ROI
Focus on Quality
• Time reserved for improvements
  – Developers can make a call on what to improve
    and when
• This time is agreed by the business
  – Improvements articulated so that the value is well
    understood
  – Improvements are communicated
Poor ROI
Quality is a team concern
• Design Committee to discuss and
  communicate System Design
• Stop and Fix Attitude
  – No broken windows
• Boy Scout Rule
  – Always leave the campground cleaner than you
    found it
Poor ROI
Continuous Delivery
• Continuous and Frequent Deployment to
  Production
  – Release even when minor changes are made
• Strive towards One Button process for release
  and deployment
  – Release promoted through test environment
Community of
                    Steadily Add Value
Professionals

                 The
               Hangover

 Low Quality          Us and Them
  Software              Attitude
A different mindset
         • Emphasis on TDD
              – Automated tests at all levels
         • Business domain reflected in the code
           and design
              – Focus on readability and maintainability
         • Simple design
         • Healthy intolerance of Bad Code
              – Develop an allergy for code smells
Low Quality
 Software
Basic quality checks
 • Comprehensive static analysis during CI
      – Code Coverage, PMD, Findbugs, Checkstyle etc.
 • Quality Gates based on Static Analysis
      – Builds fail if quality threshold is not reached
 • Well Understood Quality Metrics
      – Sonar to visualise and report Metrics


Low Quality
 Software
Tools and Paradigms
   • Technology decisions backed by Business
     Requirements
   • Understand different programming paradigms
   • Leverage tools to increase efficiency
        – For example: build process efficiency




Low Quality
 Software
Community of
                Steadily Add Value
Professionals

             The
           Hangover

Well Crafted      Us and Them
 Software           Attitude
Understand the Business
- BAs are part of the team (at least one per
  team)
- BAs often pair with developers
  - BDD and Spec by Example
- Developers understand that writing code is
  just one of their responsibilities
  - Holistic approach to software development

                                                Us and Them
                                                  Attitude
Closer to Production Services
- Close collaboration between developers and
  production services
  - DevOps




                                         Us and Them
                                           Attitude
Community of               Steadily Add
Professionals                 Value

                Software
           Craftsmanship


Well Crafted               Productive
 Software                  Partnership
Thanks
Sandro Mancuso                     Mashooq Badar
sandro.mancuso@ubs.com            mashooq.badar@ubs.com
@sandromancuso                                @mashooq

Más contenido relacionado

Más de JAX London

Más de JAX London (20)

Clojure made-simple - John Stevenson
Clojure made-simple - John StevensonClojure made-simple - John Stevenson
Clojure made-simple - John Stevenson
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
 
Complexity theory and software development : Tim Berglund
Complexity theory and software development : Tim BerglundComplexity theory and software development : Tim Berglund
Complexity theory and software development : Tim Berglund
 
Why FLOSS is a Java developer's best friend: Dave Gruber
Why FLOSS is a Java developer's best friend: Dave GruberWhy FLOSS is a Java developer's best friend: Dave Gruber
Why FLOSS is a Java developer's best friend: Dave Gruber
 
Akka in Action: Heiko Seeburger
Akka in Action: Heiko SeeburgerAkka in Action: Heiko Seeburger
Akka in Action: Heiko Seeburger
 
NoSQL Smackdown 2012 : Tim Berglund
NoSQL Smackdown 2012 : Tim BerglundNoSQL Smackdown 2012 : Tim Berglund
NoSQL Smackdown 2012 : Tim Berglund
 
Closures, the next "Big Thing" in Java: Russel Winder
Closures, the next "Big Thing" in Java: Russel WinderClosures, the next "Big Thing" in Java: Russel Winder
Closures, the next "Big Thing" in Java: Russel Winder
 
Java and the machine - Martijn Verburg and Kirk Pepperdine
Java and the machine - Martijn Verburg and Kirk PepperdineJava and the machine - Martijn Verburg and Kirk Pepperdine
Java and the machine - Martijn Verburg and Kirk Pepperdine
 
Mongo DB on the JVM - Brendan McAdams
Mongo DB on the JVM - Brendan McAdamsMongo DB on the JVM - Brendan McAdams
Mongo DB on the JVM - Brendan McAdams
 
New opportunities for connected data - Ian Robinson
New opportunities for connected data - Ian RobinsonNew opportunities for connected data - Ian Robinson
New opportunities for connected data - Ian Robinson
 
HTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun GuptaHTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun Gupta
 
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian PloskerThe Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
The Big Data Con: Why Big Data is a Problem, not a Solution - Ian Plosker
 
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
Bluffers guide to elitist jargon - Martijn Verburg, Richard Warburton, James ...
 
No Crash Allowed - Patterns for fault tolerance : Uwe Friedrichsen
No Crash Allowed - Patterns for fault tolerance : Uwe FriedrichsenNo Crash Allowed - Patterns for fault tolerance : Uwe Friedrichsen
No Crash Allowed - Patterns for fault tolerance : Uwe Friedrichsen
 
Size does matter - Patterns for high scalability: Uwe Friedrichsen
Size does matter - Patterns for high scalability: Uwe FriedrichsenSize does matter - Patterns for high scalability: Uwe Friedrichsen
Size does matter - Patterns for high scalability: Uwe Friedrichsen
 
HBase Advanced - Lars George
HBase Advanced - Lars GeorgeHBase Advanced - Lars George
HBase Advanced - Lars George
 
Scala in Action - Heiko Seeburger
Scala in Action - Heiko SeeburgerScala in Action - Heiko Seeburger
Scala in Action - Heiko Seeburger
 
Achieving genuine elastic multitenancy with the Waratek Cloud VM for Java : J...
Achieving genuine elastic multitenancy with the Waratek Cloud VM for Java : J...Achieving genuine elastic multitenancy with the Waratek Cloud VM for Java : J...
Achieving genuine elastic multitenancy with the Waratek Cloud VM for Java : J...
 
Choosing the right Agile innovation practices: Scrum vs Kanban vs Lean Startu...
Choosing the right Agile innovation practices: Scrum vs Kanban vs Lean Startu...Choosing the right Agile innovation practices: Scrum vs Kanban vs Lean Startu...
Choosing the right Agile innovation practices: Scrum vs Kanban vs Lean Startu...
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Curing Agile Hangover: Sandro Mancuso and Mashooq Badar

  • 1. Curing the Agile Hangover with Software Craftsmanship
  • 4. Teams Divided By Roles Project Managers Developers Testers / Analysts
  • 5. Component Teams Dev Team 1 Dev Team 2 Dev Team 3 Component 1 Component 2 Component 3
  • 7. Scrum Teams Scrum Developers Product Master Owner QA BA Component 3 Component 2 Component 1
  • 8. The Hangover Lack of Technical Expertise S tagnant S kill-set Long running builds Late discovery of Bugs Low Moral Unstable S ystem Requirements not well understood Inefficient Develop, Debug, Deploy Cycles Unreliable and Costly Tests Mountain of Technical Debt
  • 10. Low Moral Poor ROI The Hangover Low Quality Us and Them Software Attitude
  • 11. Low Moral Culture of Learning • Bring mentors in that could lead by example and motivate people • Internal Communities of Practice – Learning Sessions • Active participation in external communities
  • 12. Low Moral Social Coding • Pair Programming • Feature Branches • Pull Request Based Commit Model – Code reviewed by members of another team
  • 13. Low Moral Equality - No Special teams - No positions or hierarchies within the teams - Individual efforts are valued and recognised by everyone – No egos
  • 14. Low Moral Recruitment - Recruitment is a team activity - Passion is a key criteria - Foundations of software development is more important than technology specific knowledge
  • 15. Community of Poor ROI Professionals The Hangover Low Quality Us and Them Software Attitude
  • 16. Poor ROI Focus on Quality • Time reserved for improvements – Developers can make a call on what to improve and when • This time is agreed by the business – Improvements articulated so that the value is well understood – Improvements are communicated
  • 17. Poor ROI Quality is a team concern • Design Committee to discuss and communicate System Design • Stop and Fix Attitude – No broken windows • Boy Scout Rule – Always leave the campground cleaner than you found it
  • 18. Poor ROI Continuous Delivery • Continuous and Frequent Deployment to Production – Release even when minor changes are made • Strive towards One Button process for release and deployment – Release promoted through test environment
  • 19. Community of Steadily Add Value Professionals The Hangover Low Quality Us and Them Software Attitude
  • 20. A different mindset • Emphasis on TDD – Automated tests at all levels • Business domain reflected in the code and design – Focus on readability and maintainability • Simple design • Healthy intolerance of Bad Code – Develop an allergy for code smells Low Quality Software
  • 21. Basic quality checks • Comprehensive static analysis during CI – Code Coverage, PMD, Findbugs, Checkstyle etc. • Quality Gates based on Static Analysis – Builds fail if quality threshold is not reached • Well Understood Quality Metrics – Sonar to visualise and report Metrics Low Quality Software
  • 22. Tools and Paradigms • Technology decisions backed by Business Requirements • Understand different programming paradigms • Leverage tools to increase efficiency – For example: build process efficiency Low Quality Software
  • 23. Community of Steadily Add Value Professionals The Hangover Well Crafted Us and Them Software Attitude
  • 24. Understand the Business - BAs are part of the team (at least one per team) - BAs often pair with developers - BDD and Spec by Example - Developers understand that writing code is just one of their responsibilities - Holistic approach to software development Us and Them Attitude
  • 25. Closer to Production Services - Close collaboration between developers and production services - DevOps Us and Them Attitude
  • 26. Community of Steadily Add Professionals Value Software Craftsmanship Well Crafted Productive Software Partnership
  • 27. Thanks Sandro Mancuso Mashooq Badar sandro.mancuso@ubs.com mashooq.badar@ubs.com @sandromancuso @mashooq

Notas del editor

  1. Mash: NEXT SLIDE
  2. Mash: Journey from Waterfall – through agile transformation – to where we are nowMASH: NEXT SLIDE
  3. Sandro: Few years agoSandro: NEXT SLIDE
  4. MashMash: NEXT SLIDE
  5. Sandro: Dev teams divided by components – Working in silosSandro: NEXT SLIDE
  6. Mash: Loads of issues, integration, multiple teams – USUAL WATERFALL PROBLEMSMash: NEXT SLIDE
  7. Sandro: Scrum introduced (Devs, QA, BA in the team); x-component teamsSandro: NEXT SLIDE
  8. Mash: After a couple of years – More problems were identifiedSandro: Lack of Technical Expertise, Stagnant Skill-set, Low Moral, Unstable System, Mountain of Technical DebtMash: And that’s what we call The Agile HangoverMash: NEXT SLIDE
  9. Mash
  10. Sandro: We discovered we could categorise those problems in four main areas. Presentation is about going deeper in all these areasLet’s start with Low Moral. Without sorting out our people, we can’t achieve any of the other thingsSandro: NEXT SLIDE
  11. Mash: People didn’t care about their job. Working almost mechanically.Sandro: (autonomy, mastery, purpose) - Culture of Learning - Injection of passion. Mash: Internal CoPsSandro: Participation External communities
  12. Mash: Developers isolated due to “individual effort”Sandro: Pair programming (Loose pairing)Mash: Feature Branches: (Github) Help understand and visualise the current changes. We didn’t get it right first time or even second. Split a feature into review branches to allows us to commit oftnSandro: Pull request model (if it is too big, reviewers will scream at you)
  13. Mash: No special teams, Off-Shore vs On-Shore. Very difficult when teams joinSandro: No positions or hierarchies withing the teams. Emergent leaders (implicit recognition)
  14. Mash: Recruitment is a team activitySandro: Filter criteria (blogs, github account, pet projects) / Not Java Spring Hibernate Devs / Foundation more important
  15. Sandro: Solving low moral by creating a community of professionals Mash: Next category we identified – Poor ROI – increasingly spending more time to create same value
  16. Mash: Focus on QualitySandro: Time reserved for improvementsMash: Time agreed by the business
  17. Sandro: Design committeeMash: Stop and Fix AttitudeSandro: Boy Scout Rule
  18. Mash: Long periods within release resulted in unstable deployment and functionality. Prod Services: Decreased value, Customer: Faulty ProductSandro: Enable continuous delivery - One Button Process. Same release >> Dev >> UAT >> Pre-Prod >> ProductionSandro: Next slide
  19. Sandro: The focus on quality and continuous delivery is how we are tackling the poor ROI, steadily adding value.Mash: Low Quality Software
  20. Mash: Why lack of quality? Cause? How to Avoid?Mash: TDD (You’ve seen test pyramid)Sandro: Component tests (Love and Hate)Sandro: Business domain reflected in the code / designMash: Simple DesignSandro: Healthy intolerance
  21. Mash: As we all know metrics are not enough to measure quality checks. This is the bare minimum.Sandro: Comprehensive static analysisMash: Quality Gates – Build fails if checks failSandro: Motivation behind is v. important. Devs understand the significance of the metrics. Metrics are discussed. Sonar(LCOM4).
  22. Mash: Technology backed by business requirementsSandro: Different programming paradigms (Java / XQuery)Mash: Leverage tools to increase efficiencyMash: NEXT SLIDE
  23. Mash: By using these techniques in fact what we are trying to do is create Well Crafted SoftwareSandro: Last but not least, another problem we had was the Us & Them Attitude (Prod Service, Business, Devs)
  24. Sandro: BAs are part of the teamMash: BA’s often pair with developersSandro: Writing code is just one of the responsibilities of a developer
  25. Mash: Closer to Prod ServicesMash: MOVE TO NEXT SLIDE
  26. Mash: Us & Them >> Productive partnershipSandro: Four biggest problems highlighted by Agile processes. Four key values of Software Craftsmanship. Agile vs Craftsmanship. Mash: We are not trying to say that all is perfect!Sandro: We still suck in many areas. At least we know our problems. We are still on a journey.
  27. Agile doesn’t workWe have asked ourselves the same question