SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Agile Software Development
          making programming fun again
How Projects Really Work




Software engineering done right.
How the customer explained it




Software engineering done right.
How the project leader understood it




Software engineering done right.
How the analyst designed it




Software engineering done right.
How the programmer wrote it




Software engineering done right.
How the business consultant described it




Software engineering done right.
How the project was documented




Software engineering done right.
How much the project cost




Software engineering done right.
What the customer really needed




Software engineering done right.
“CHAOS Report” by Standish Group




Software engineering done right.
Challenged Projects - Reasons
 
      Lack of User Input           
                                       Technology
 
      Incomplete                       Incompetence
      Requirements &               
                                       Lack of Resources
      Specifications               
                                       Unrealistic Expectations
 
      Changing Requirements        
                                       Unclear Objectives
      & Specifications             
                                       Unrealistic Time Frames
 
      Lack of Executive            
                                       New Technology
      Support




Software engineering done right.
Failed Projects - Reasons
 
      Incomplete                   
                                       Changing Requirements
      Requirements                     & Specifications
 
      Lack of User                 
                                       Lack of Planning
      Involvement                  
                                       Didn't Need It Any
 
      Lack of Resources                Longer
 
      Unrealistic Expectations     
                                       Lack of IT Management
 
      Lack of Executive            
                                       Technology Illiteracy
      Support




Software engineering done right.
Successful Projects - Reasons
 
      User involvement             
                                       Project manager
 
      Executive management             expertise
      support                      
                                       Financial management
 
      Clear business               
                                       Skilled resources
      objectives                   
                                       Formal methodology
 
      Optimizing scope             
                                       Standard tools and
 
      Agile process                    methodology




Software engineering done right.
What's wrong with “Waterfall”?




Software engineering done right.
What's wrong with “Waterfall”?

 
         Mistakes are hard to find in early stages
 
         Expensive to fix mistakes in later stages
 
         Customers don't know what they want from the
         beginning
 
         Developers don't know how long a project will take
         from the beginning
 
         Business needs change




Software engineering done right.
Effects of “Waterfall”
 
        Death March projects
         ‒
               Mis-estimated schedules lead to successive overtime
         ‒
               Delays in one stage cause delays in succeeding stages
 
        Conflict between customers and developers
         ‒
               Customers don't get the software that they want
         ‒
               Developers don't get clear requirements
 
        Process and tool obsession
         ‒
               People focus on creating artifacts but lose sight of the
               goal of working software
         ‒
               Processes replace natural communication


Software engineering done right.
The Agile Manifesto

 We are uncovering better ways of developing software by doing it and helping
     others do it. Through this work we have come to value:

 •      Individuals and interactions over processes and tools
 •      Working software over comprehensive documentation
 •      Customer collaboration over contract negotiation
 •      Responding to change over following a plan
 That is, while there is value in the items on the right, we value the items on
      the left more.




Software engineering done right.
Selected Practices

 
        Iterative Development
 
        User Stories
 
        Test-Driven Development
 
        One Team
 
        Self-Managed Teams
 
        Sustainable Pace




Software engineering done right.
Iterative Development

 
        Software development as an evolutionary process




Software engineering done right.
Iterative Development

 
        All steps of SDLC are done at each iteration




Software engineering done right.
Iterative Development

 
        Working software produced at each iteration
       –     No such thing as “X% complete”, only done and not
             done




Software engineering done right.
Iterative Development

 
        Benefits
         ‒       Customers can evaluate what they want and adjust
                 requirements
         ‒       Developers get better estimates of future tasks
         ‒       Better communication between customer and
                 developers and among developers
                        
                                   Talk is about something concrete, not abstract
         ‒       Just enough artifacts are created to produce working
                 software
                        
                                   Less waste



Software engineering done right.
User Stories

 Traditional requirements: “The system shall... the
   system shall...”




Software engineering done right.
User Stories

 As a < user role >
 In order to < business goal >
 I want to < behavior >

 
        Focus on business goals
       - Requirements have context
 
        Story-telling is the most natural way of
        communication


Software engineering done right.
Test-Driven Development
       Bugs are harder to find
        and fix when found later
       Modifying code tends to
        introduce bugs
       - Difficult to know if one has
         introduced bugs without
         tests
       Manual tests are
        expensive to repeat and
        provide limited
        information

Software engineering done right.
Test-Driven Development

 
        Programmers should write automated tests as they
        code
       - Write test before implementation
 
        Provides immediate feedback if their code works
 
        Builds suite of automated tests that can be run each
        time code is modified
 
        Makes it safe to modify existing code
 
        Frameworks: JUnit, NUnit, hundreds of others...



Software engineering done right.
Software engineering done right.
TDD Benefits

 
        Code is safe to modify
 
        Tests are excellent documentation
       - Programmers hate writing documentation, but they like to
         code
 
        Design improves
       - Programmers think of their code's behavior before coding
       - Programmers see their code from a second-person's
         point-of-view
                        •     Is my code readable? Easy to use?
       - Components become decoupled to facilitate testing

Software engineering done right.
One Team

 
        Everyone is
        considered part of one
        team, including the
        customer
 
        Developers, testers,
        business analysts,
        project managers, web
        designers, etc, work in
        the same place,
                   place
        usually on the same
        table
Software engineering done right.
Software engineering done right.
One Team

 
         Faster communication
             –      Issues resolved faster
 
         Natural communication
             –      Face-to-face, ad hoc and continuous throughout the
                    day
 
         Less misunderstanding and antagonism between
         functional groups




Software engineering done right.
Self-Managed Teams

 When teams manage themselves...
 
     Higher motivation
 
     More creative solutions
 
     Faster resolution of issues
 
     Drive for continuous improvement




Software engineering done right.
Self-Managed Teams

 Practices/Tools
 
     Daily Stand-Up Meetings
 
     Retrospectives
 
     Big Visible Charts,
     Whiteboards
 
     Direct access to
     customers




Software engineering done right.
Sustainable Pace

 
        Overtime leads to
        lower productivity
 
        Lowers morale




Software engineering done right.
Sustainable Pace

 
        Team should measure “velocity” at each iteration
 
        Keep work load within velocity
 
        If iteration load was underestimated, ask customer
        to decide which features to move to future iterations




Software engineering done right.
Other Practices...
 
            Planning
 
            Tracking
 
            Continuous Integration
 
            Pair Programming
 
            Refactoring
 
            Planning Boards
 
            Burn-Down Charts
 
            Collective Code Ownership
 
            Coding Standards
 Many more...
Software engineering done right.
Agile at Orange & Bronze

 •        Been doing Agile since its foundation in 2005
             –      Before it became mainstream
 •        We've tried different methodologies and practices
             –      XP, Scrum, Kanban
             –      Not all practices work in all conditions
 •        The first to offer training in Agile methodologies and
          practices
             –      Scrum, TDD, Agile Business Analysis, Agile QA, etc
             –      Trainers are seasoned practictioners


Software engineering done right.
Open Workspaces




Software engineering done right.
Project Automation




Software engineering done right.
Collaborative Design




Software engineering done right.
Agile Training




Software engineering done right.

Weitere ähnliche Inhalte

Was ist angesagt?

Extreme programming
Extreme programmingExtreme programming
Extreme programmingaaina_katyal
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme ProgrammingNaresh Jain
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingMr SMAK
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Prateek
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesJon McNestrie
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming Fatemeh Karimi
 
Agile development
Agile developmentAgile development
Agile developmentJoshuaU1
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OverviewGurtej Pal Singh
 
Software Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsSoftware Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsJesminBinti
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 

Was ist angesagt? (20)

07 fse implementation
07 fse implementation07 fse implementation
07 fse implementation
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Slides chapter 5
Slides chapter 5Slides chapter 5
Slides chapter 5
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
extreme programming
extreme programmingextreme programming
extreme programming
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
 
Agile development
Agile developmentAgile development
Agile development
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
Ch04
Ch04Ch04
Ch04
 
Ch05
Ch05Ch05
Ch05
 
Software Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsSoftware Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process models
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 

Ähnlich wie Agile Software Development - making programming fun again

Agile software development
Agile software development Agile software development
Agile software development saurabh goel
 
Agile Injection, Varberg
Agile Injection, VarbergAgile Injection, Varberg
Agile Injection, VarbergFredrik Wendt
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App LifecycleMarc Hoppers
 
Ims Primavera
Ims PrimaveraIms Primavera
Ims Primaveracleary21
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsBjörn Jónsson
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.Транслируем.бел
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMDebora Di Piano
 
Managing Agile Software Development Projects
Managing Agile Software Development ProjectsManaging Agile Software Development Projects
Managing Agile Software Development ProjectsMartina Šimičić
 
SOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPTSOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPTSai Charan
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro pptNancyBeaulah_R
 
Heart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetHeart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetAgile ME
 
Se lect12 btech
Se lect12 btechSe lect12 btech
Se lect12 btechIIITA
 
Se lect13 btech
Se lect13 btechSe lect13 btech
Se lect13 btechIIITA
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 

Ähnlich wie Agile Software Development - making programming fun again (20)

Agile software development
Agile software development Agile software development
Agile software development
 
Agile
AgileAgile
Agile
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Agile Injection, Varberg
Agile Injection, VarbergAgile Injection, Varberg
Agile Injection, Varberg
 
Poor Man's Kanban
Poor Man's KanbanPoor Man's Kanban
Poor Man's Kanban
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App Lifecycle
 
Ims Primavera
Ims PrimaveraIms Primavera
Ims Primavera
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methods
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
Agile 101
Agile 101 Agile 101
Agile 101
 
Managing Agile Software Development Projects
Managing Agile Software Development ProjectsManaging Agile Software Development Projects
Managing Agile Software Development Projects
 
SOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPTSOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPT
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 
Heart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetHeart of agile by Pierre Hervouet
Heart of agile by Pierre Hervouet
 
Se lect12 btech
Se lect12 btechSe lect12 btech
Se lect12 btech
 
Se lect13 btech
Se lect13 btechSe lect13 btech
Se lect13 btech
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
Agile development
Agile developmentAgile development
Agile development
 

Agile Software Development - making programming fun again

  • 1. Agile Software Development making programming fun again
  • 2. How Projects Really Work Software engineering done right.
  • 3. How the customer explained it Software engineering done right.
  • 4. How the project leader understood it Software engineering done right.
  • 5. How the analyst designed it Software engineering done right.
  • 6. How the programmer wrote it Software engineering done right.
  • 7. How the business consultant described it Software engineering done right.
  • 8. How the project was documented Software engineering done right.
  • 9. How much the project cost Software engineering done right.
  • 10. What the customer really needed Software engineering done right.
  • 11. “CHAOS Report” by Standish Group Software engineering done right.
  • 12. Challenged Projects - Reasons  Lack of User Input  Technology  Incomplete Incompetence Requirements &  Lack of Resources Specifications  Unrealistic Expectations  Changing Requirements  Unclear Objectives & Specifications  Unrealistic Time Frames  Lack of Executive  New Technology Support Software engineering done right.
  • 13. Failed Projects - Reasons  Incomplete  Changing Requirements Requirements & Specifications  Lack of User  Lack of Planning Involvement  Didn't Need It Any  Lack of Resources Longer  Unrealistic Expectations  Lack of IT Management  Lack of Executive  Technology Illiteracy Support Software engineering done right.
  • 14. Successful Projects - Reasons  User involvement  Project manager  Executive management expertise support  Financial management  Clear business  Skilled resources objectives  Formal methodology  Optimizing scope  Standard tools and  Agile process methodology Software engineering done right.
  • 15. What's wrong with “Waterfall”? Software engineering done right.
  • 16. What's wrong with “Waterfall”?  Mistakes are hard to find in early stages  Expensive to fix mistakes in later stages  Customers don't know what they want from the beginning  Developers don't know how long a project will take from the beginning  Business needs change Software engineering done right.
  • 17. Effects of “Waterfall”  Death March projects ‒ Mis-estimated schedules lead to successive overtime ‒ Delays in one stage cause delays in succeeding stages  Conflict between customers and developers ‒ Customers don't get the software that they want ‒ Developers don't get clear requirements  Process and tool obsession ‒ People focus on creating artifacts but lose sight of the goal of working software ‒ Processes replace natural communication Software engineering done right.
  • 18. The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Software engineering done right.
  • 19. Selected Practices  Iterative Development  User Stories  Test-Driven Development  One Team  Self-Managed Teams  Sustainable Pace Software engineering done right.
  • 20. Iterative Development  Software development as an evolutionary process Software engineering done right.
  • 21. Iterative Development  All steps of SDLC are done at each iteration Software engineering done right.
  • 22. Iterative Development  Working software produced at each iteration – No such thing as “X% complete”, only done and not done Software engineering done right.
  • 23. Iterative Development  Benefits ‒ Customers can evaluate what they want and adjust requirements ‒ Developers get better estimates of future tasks ‒ Better communication between customer and developers and among developers  Talk is about something concrete, not abstract ‒ Just enough artifacts are created to produce working software  Less waste Software engineering done right.
  • 24. User Stories Traditional requirements: “The system shall... the system shall...” Software engineering done right.
  • 25. User Stories As a < user role > In order to < business goal > I want to < behavior >  Focus on business goals - Requirements have context  Story-telling is the most natural way of communication Software engineering done right.
  • 26. Test-Driven Development  Bugs are harder to find and fix when found later  Modifying code tends to introduce bugs - Difficult to know if one has introduced bugs without tests  Manual tests are expensive to repeat and provide limited information Software engineering done right.
  • 27. Test-Driven Development  Programmers should write automated tests as they code - Write test before implementation  Provides immediate feedback if their code works  Builds suite of automated tests that can be run each time code is modified  Makes it safe to modify existing code  Frameworks: JUnit, NUnit, hundreds of others... Software engineering done right.
  • 29. TDD Benefits  Code is safe to modify  Tests are excellent documentation - Programmers hate writing documentation, but they like to code  Design improves - Programmers think of their code's behavior before coding - Programmers see their code from a second-person's point-of-view • Is my code readable? Easy to use? - Components become decoupled to facilitate testing Software engineering done right.
  • 30. One Team  Everyone is considered part of one team, including the customer  Developers, testers, business analysts, project managers, web designers, etc, work in the same place, place usually on the same table Software engineering done right.
  • 32. One Team  Faster communication – Issues resolved faster  Natural communication – Face-to-face, ad hoc and continuous throughout the day  Less misunderstanding and antagonism between functional groups Software engineering done right.
  • 33. Self-Managed Teams When teams manage themselves...  Higher motivation  More creative solutions  Faster resolution of issues  Drive for continuous improvement Software engineering done right.
  • 34. Self-Managed Teams Practices/Tools  Daily Stand-Up Meetings  Retrospectives  Big Visible Charts, Whiteboards  Direct access to customers Software engineering done right.
  • 35. Sustainable Pace  Overtime leads to lower productivity  Lowers morale Software engineering done right.
  • 36. Sustainable Pace  Team should measure “velocity” at each iteration  Keep work load within velocity  If iteration load was underestimated, ask customer to decide which features to move to future iterations Software engineering done right.
  • 37. Other Practices...  Planning  Tracking  Continuous Integration  Pair Programming  Refactoring  Planning Boards  Burn-Down Charts  Collective Code Ownership  Coding Standards Many more... Software engineering done right.
  • 38. Agile at Orange & Bronze • Been doing Agile since its foundation in 2005 – Before it became mainstream • We've tried different methodologies and practices – XP, Scrum, Kanban – Not all practices work in all conditions • The first to offer training in Agile methodologies and practices – Scrum, TDD, Agile Business Analysis, Agile QA, etc – Trainers are seasoned practictioners Software engineering done right.