Improving Productivity and Quality With Agile Patrick Kua

  • Slides: 31
Download presentation
Improving Productivity and Quality With Agile Patrick Kua © Thought. Works, 2008

Improving Productivity and Quality With Agile Patrick Kua © Thought. Works, 2008

The Software Development Crisis… © Thought. Works, 2008

The Software Development Crisis… © Thought. Works, 2008

Who’s happy with: © Thought. Works, 2008

Who’s happy with: © Thought. Works, 2008

Requirements not met

Requirements not met

Software taking too long before it can be used

Software taking too long before it can be used

Unhappy Users

Unhappy Users

Unhappy Developers

Unhappy Developers

What’s working to fix this?

What’s working to fix this?

Agile © Thought. Works, 2008

Agile © Thought. Works, 2008

What is Agile? © Thought. Works, 2008

What is Agile? © Thought. Works, 2008

… DSDM Lean Crystal XP Scrum

… DSDM Lean Crystal XP Scrum

A guiding manifesto… © Thought. Works, 2008

A guiding manifesto… © Thought. Works, 2008

The Agile Manifesto © Thought. Works, 2008

The Agile Manifesto © Thought. Works, 2008

The Agile Manifesto We are uncovering better ways of developing software by doing it

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 (bold) more. © Thought. Works, 2008

Too much planning (no delivery) Constant Handover What leads to poor productivity? Priorities changing

Too much planning (no delivery) Constant Handover What leads to poor productivity? Priorities changing Poor Communication © Thought. Works, 2008

Constant feedback Too much planning (no delivery) Iteration planning games Timeboxed iterations Cross functional

Constant feedback Too much planning (no delivery) Iteration planning games Timeboxed iterations Cross functional teams Constant Handover Pair programming How does agile help? Iteration planning games Daily stand ups Iteration Showcases Poor Communication Customer involvement © Thought. Works, 2008 Priorities changing Release planning

Delaying Integration No process improvement Lack of Standards What leads to poor quality? No

Delaying Integration No process improvement Lack of Standards What leads to poor quality? No knowledge transfer Overcomplicated designs Late Testing © Thought. Works, 2008

Continuous Integration Delaying Integration Informative Workspaces No process improvement Frequent Releases Collective Ownership Pair

Continuous Integration Delaying Integration Informative Workspaces No process improvement Frequent Releases Collective Ownership Pair programming Retrospectives Lack of Standards Code standards How does agile help? Daily stand ups Behaviour driven development No knowledge transfer Refactoring Pair programming Overcomplicated designs Test Driven Development Late Testing YAGNI Unit tests Automated acceptance tests © Thought. Works, 2008

Example practices © Thought. Works, 2008

Example practices © Thought. Works, 2008

Continuous Integration © Thought. Works, 2008

Continuous Integration © Thought. Works, 2008

Testing © Thought. Works, 2008

Testing © Thought. Works, 2008

Unit tests “TDD produced code that passed between 18 and 50 percent more external

Unit tests “TDD produced code that passed between 18 and 50 percent more external test cases than code produced by control groups not using TDD. ” IEEE Article: Software Architecture Improvement through Test. Driven Development by David S. Janzen Customer acceptance tests supports. . . © Thought. Works, 2008

Refactoring © Thought. Works, 2008

Refactoring © Thought. Works, 2008

Pair Programming • Constant code reviewing • Very efficient – second person prevents drift

Pair Programming • Constant code reviewing • Very efficient – second person prevents drift – X hours longer vs. 15 X hours bug fixing (source: http: //www. pairprogramming. com) © Thought. Works, 2008

Reinforcing Practices © Thought. Works, 2008

Reinforcing Practices © Thought. Works, 2008

WARNING! © Thought. Works, 2008

WARNING! © Thought. Works, 2008

Only following practices…

Only following practices…

Coach

Coach

Summary Agile Discipline Quality Speed Productivity © Thought. Works, 2008

Summary Agile Discipline Quality Speed Productivity © Thought. Works, 2008

Questions? © Thought. Works, 2008

Questions? © Thought. Works, 2008