SlideShare une entreprise Scribd logo
1  sur  20
What Do You Do When
Agile Is Too Slow?
{doug.thomas@pokitdok.com}   @douglascthomas
Doug Thomas
 Software engineer for less than 20 years
 Work Environments:
   Start ups
   Large corporations and financial institutions
   Government contractors
 Certified:
     PSP
     CMMi
     IEEE
     Scrum Master
     Crazy
A start up is like jumping out of
a airplane without a
parachute, not knowing what
the parachute is, but figuring it
out and building it on the way
down, and then landing safely.
Software Engineering Process In a
Start Up Environment
 You have to know the rules before you can break
  them
 Finding the minimal viable process
So What Are The Rules?
Waterfall
 Pros
   One of the first attempts to bring engineering principles into
    software development
   Big Design Up Front
 Cons
   People have no idea what they want
   Implementation limitations affect design
Spiral Model
 Pros
   Iterative prototyping
   Brings in Risk Management
   Cost estimation becomes easier
 Cons
   Suited for large projects
   Iterations lasts from 6 months to 2 years
Rational Unified Process (RUP)
 Pros
   Iterative
   Combines best practices with a structured method
 Cons
   Overly structured method
   Process heavy
Personal Software Process (PSP)
 Pros
   Focuses on removing estimation biases and reducing defects by
    applying statistics to your software development method
   Continuous improvement at a personal level
 Cons
   Tedious timekeeping
   Poor tool support
   Geared to mid-range developers (5-10 years experience)
Capability Maturity Model (CMMi)
 Pros
   Provides detailed standards and best practices for all Process
    Areas in the software development lifecycle
   Very rigorous
   Works well in a government contracting environment
 Cons
   Process heavy? It depends
   Institutionalization
Agile Manifesto
 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
Scrum
 Pros
   Quick iteration cycles let you fail early
   Daily standup lets everyone know what’s up
   Developer’s are empowered
 Cons
   Proscribed meetings take up a significant fraction of the overall
    lifecycle time
   Tracking stories, tasks and burn down takes time, or why the
    Scrum Master should NOT be a developer
Cowboy Coding
 Pros
   Free-form working environment encourages
    experimentation, learning, and free distribution of results
   Developers are responsible for removing roadblocks
   Small projects may be burdened by heavy software management
    methodologies
 Cons
     Lack of release structure
     Inexperienced developers (hackers)
     Uncertain design requirements
     Incompleteness
Minimum Viable Process?
Requirements
 Communication
   Campfire
   Skype
   Google Hangouts
 Requirements Management
   Trac
   Basecamp
   JIRA
Analysis and Design
 Design documentation
   Big ass whiteboards
   Mobile phone camera
   Campfire
Implementation
 Code
   Lightweight frameworks
   Everything is a draft
   Ship it
 Code Reviews
   You are not your code
   Pull requests
   Campfire, Skype
 Zero Overhead Principle
Verification
 Test Driven Design
   Unit tests
    Nose
   UI tests
    Selenium
   On-demand live testers
    uTest
CM
 Code Management
   Git
 Release Management
   Fabric
   Git
 Continuous Integration
   Jenkins
Improvement
 Metrics
 Analytics
 A/B tests

Contenu connexe

Tendances

Extreme programming
Extreme programmingExtreme programming
Extreme programmingaaina_katyal
 
Lecture 1 introduction to applied software project management
Lecture 1   introduction to applied software project managementLecture 1   introduction to applied software project management
Lecture 1 introduction to applied software project managementanasz3z3
 
Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...
Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...
Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...Mayank Gupta (CSP, CSM, PMP, OCP, ISTQB)
 
ALM Practices - Modern Applications Development and its impact on ALM
ALM Practices - Modern Applications Development and its impact on ALM ALM Practices - Modern Applications Development and its impact on ALM
ALM Practices - Modern Applications Development and its impact on ALM especificacoes.com
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software EngineeringPurvik Rana
 
ALM Assessment Program
ALM Assessment ProgramALM Assessment Program
ALM Assessment ProgramSteve Lange
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Top 10 custom software development methodologies
Top 10 custom software development methodologiesTop 10 custom software development methodologies
Top 10 custom software development methodologiesChapter247 Infotech
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationPreetam Palwe
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme ProgrammingNaresh Jain
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) ModelDamian T. Gordon
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentPoonam Bhasin
 
Taming technical debt
Taming technical debt Taming technical debt
Taming technical debt Panji Gautama
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides pptMr SMAK
 

Tendances (20)

Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Lecture 1 introduction to applied software project management
Lecture 1   introduction to applied software project managementLecture 1   introduction to applied software project management
Lecture 1 introduction to applied software project management
 
Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...
Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...
Agile NCR 2009\Agile Project Management - Facing the Challenges of Distribute...
 
ALM Practices - Modern Applications Development and its impact on ALM
ALM Practices - Modern Applications Development and its impact on ALM ALM Practices - Modern Applications Development and its impact on ALM
ALM Practices - Modern Applications Development and its impact on ALM
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
extreme programming
extreme programmingextreme programming
extreme programming
 
ALM Assessment Program
ALM Assessment ProgramALM Assessment Program
ALM Assessment Program
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Top 10 custom software development methodologies
Top 10 custom software development methodologiesTop 10 custom software development methodologies
Top 10 custom software development methodologies
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Agile Software Process Improvement
Agile Software Process ImprovementAgile Software Process Improvement
Agile Software Process Improvement
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Taming technical debt
Taming technical debt Taming technical debt
Taming technical debt
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
 
SDLC Smashup
SDLC SmashupSDLC Smashup
SDLC Smashup
 
SE chapter 5
SE chapter 5SE chapter 5
SE chapter 5
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 

Similaire à What Do You Do When Agile Is Too Slow?

Strategic Application of Software Development Process for Business Oriented P...
Strategic Application of Software Development Process for Business Oriented P...Strategic Application of Software Development Process for Business Oriented P...
Strategic Application of Software Development Process for Business Oriented P...Dynamical Software, Inc.
 
What is Rational CLM?
What is Rational CLM?What is Rational CLM?
What is Rational CLM?IBM Danmark
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.pptMohan Late
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XPSemen Arslan
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projectsmufflerdog
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Delivering High Quality Software Through Agile
Delivering High Quality Software Through AgileDelivering High Quality Software Through Agile
Delivering High Quality Software Through AgileJohn Bristowe
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbaivibrantuser
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPeter Marshall
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...
Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...
Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...Tasktop
 
Agile Project Management Facing The Challenges Of Distributed Development U...
Agile Project Management   Facing The Challenges Of Distributed Development U...Agile Project Management   Facing The Challenges Of Distributed Development U...
Agile Project Management Facing The Challenges Of Distributed Development U...Xebia IT Architects
 

Similaire à What Do You Do When Agile Is Too Slow? (20)

Strategic Application of Software Development Process for Business Oriented P...
Strategic Application of Software Development Process for Business Oriented P...Strategic Application of Software Development Process for Business Oriented P...
Strategic Application of Software Development Process for Business Oriented P...
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Outsourcing With Agile
Outsourcing With AgileOutsourcing With Agile
Outsourcing With Agile
 
What is Rational CLM?
What is Rational CLM?What is Rational CLM?
What is Rational CLM?
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.ppt
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projects
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Delivering High Quality Software Through Agile
Delivering High Quality Software Through AgileDelivering High Quality Software Through Agile
Delivering High Quality Software Through Agile
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbai
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...
Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...
Don’t Let Process Hold You Back: Best Practices for Cross-Functional Collabor...
 
Agile Project Management Facing The Challenges Of Distributed Development U...
Agile Project Management   Facing The Challenges Of Distributed Development U...Agile Project Management   Facing The Challenges Of Distributed Development U...
Agile Project Management Facing The Challenges Of Distributed Development U...
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology ppt
 

What Do You Do When Agile Is Too Slow?

  • 1. What Do You Do When Agile Is Too Slow? {doug.thomas@pokitdok.com} @douglascthomas
  • 2. Doug Thomas  Software engineer for less than 20 years  Work Environments:  Start ups  Large corporations and financial institutions  Government contractors  Certified:  PSP  CMMi  IEEE  Scrum Master  Crazy
  • 3. A start up is like jumping out of a airplane without a parachute, not knowing what the parachute is, but figuring it out and building it on the way down, and then landing safely.
  • 4. Software Engineering Process In a Start Up Environment  You have to know the rules before you can break them  Finding the minimal viable process
  • 5. So What Are The Rules?
  • 6. Waterfall  Pros  One of the first attempts to bring engineering principles into software development  Big Design Up Front  Cons  People have no idea what they want  Implementation limitations affect design
  • 7. Spiral Model  Pros  Iterative prototyping  Brings in Risk Management  Cost estimation becomes easier  Cons  Suited for large projects  Iterations lasts from 6 months to 2 years
  • 8. Rational Unified Process (RUP)  Pros  Iterative  Combines best practices with a structured method  Cons  Overly structured method  Process heavy
  • 9. Personal Software Process (PSP)  Pros  Focuses on removing estimation biases and reducing defects by applying statistics to your software development method  Continuous improvement at a personal level  Cons  Tedious timekeeping  Poor tool support  Geared to mid-range developers (5-10 years experience)
  • 10. Capability Maturity Model (CMMi)  Pros  Provides detailed standards and best practices for all Process Areas in the software development lifecycle  Very rigorous  Works well in a government contracting environment  Cons  Process heavy? It depends  Institutionalization
  • 11. Agile Manifesto  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan
  • 12. Scrum  Pros  Quick iteration cycles let you fail early  Daily standup lets everyone know what’s up  Developer’s are empowered  Cons  Proscribed meetings take up a significant fraction of the overall lifecycle time  Tracking stories, tasks and burn down takes time, or why the Scrum Master should NOT be a developer
  • 13. Cowboy Coding  Pros  Free-form working environment encourages experimentation, learning, and free distribution of results  Developers are responsible for removing roadblocks  Small projects may be burdened by heavy software management methodologies  Cons  Lack of release structure  Inexperienced developers (hackers)  Uncertain design requirements  Incompleteness
  • 15. Requirements  Communication  Campfire  Skype  Google Hangouts  Requirements Management  Trac  Basecamp  JIRA
  • 16. Analysis and Design  Design documentation  Big ass whiteboards  Mobile phone camera  Campfire
  • 17. Implementation  Code  Lightweight frameworks  Everything is a draft  Ship it  Code Reviews  You are not your code  Pull requests  Campfire, Skype  Zero Overhead Principle
  • 18. Verification  Test Driven Design  Unit tests  Nose  UI tests  Selenium  On-demand live testers  uTest
  • 19. CM  Code Management  Git  Release Management  Fabric  Git  Continuous Integration  Jenkins

Notes de l'éditeur

  1. “With SAGE, we were faced with programs that were too large for one person to grasp entirely and also with the need to hire and train large numbers of people to become programmers—after all, there were only a handful of trained programmers in the whole world. We were faced with organizing and managing a whole new art.”Production of Large Computer Programs, Herbert D. Bennington (Navy Mathematical Computing Advisory Panel and the Office of Naval Research in June 1956)“Many of the [system's] details only become known to us as we progress in the [system's] implementation. Some of the things that we learn invalidate our design and we must backtrack.”A Rational Design Process: How and Why to Fake It, David Parnas
  2. Starting at the center, each turn around the spiral goes through several task regions:Determine the objectives, alternatives, and constraints on the new iteration.Evaluate alternatives and identify and resolve risk issues.Develop and verify the product for this iteration.Plan the next iteration.A Spiral Model of Software Development and Enhancement. Barry Boehm (1986)
  3. Six Best PracticesDevelop iterativelyManage requirementsUse componentsModel visuallyVerify qualityControl changesFour Project Life cycle PhasesInception PhaseElaboration PhaseConstruction PhaseTransition PhaseGrady Booch, Ivar Jacobson, Jim Rumaugh
  4. The PSP was created by Watts Humphrey to apply the underlying principles of the Software Engineering Institute’s (SEI) Capability Maturity Model (CMM) to the software development practices of a single developer.The PSP aims to provide software engineers with disciplined methods for improving personal software development processes. The PSP helps software engineers to:Improve their estimating and planning skills.Make commitments they can keep.Manage the quality of their projects.Reduce the number of defects in their work.
  5. The Capability Maturity Model was originally developed as a tool for objectively assessing the ability of government contractors' processes to perform a contracted software project. The model is based on the process maturity framework first described in the 1989 book Managing the Software Process by Watts Humphrey.In the 1980s, several US military projects involving software subcontractors ran over-budget and were completed far later than planned, if at all. In an effort to determine why this was occurring, the United States Air Force funded a study at the SEI.Initial (chaotic, ad hoc, individual heroics) - the starting point for use of a new or undocumented repeat process.Repeatable - the process is at least documented sufficiently such that repeating the same steps may be attempted.Defined - the process is defined/confirmed as a standard business process, and decomposed to levels 0, 1 and 2 (the latter being Work Instructions).Managed - the process is quantitatively managed in accordance with agreed-upon metrics.Optimizing - process management includes deliberate process optimization/improvement.
  6. We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items onthe right, we value the items on the left more.
  7. In 1986, Hirotaka Takeuchi and IkujiroNonaka described a new approach to commercial product development that would increase speed and flexibility, based on case studies from manufacturing firms in the automotive, photocopier and printer industries.[4] They called this the holistic or rugby approach, as the whole process is performed by one cross-functional team across multiple overlapping phases, where the team "tries to go the distance as a unit, passing the ball back and forth”In 1995, Jeff Sutherland and Ken Schwaber jointly presented a paper describing the Scrum methodology at the Business Object Design and Implementation Workshop held as part of OOPSLA ’95 in Austin, Texas, its first public presentation.[6] Schwaber and Sutherland collaborated during the following years to merge the above writings, their experiences, and industry best practices into what is now known as Scrum.
  8. LightweightFrameworks in GitHub
  9. We were usingRightScale Framework which uses ChefJenkins!