© thoughtworks, 2008 improving productivity and quality with agile patrick kua

31
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

Upload: alberta-mcdowell

Post on 17-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Improving Productivity and Quality With Agile

Patrick Kua

Page 2: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

The Software Development Crisis…

Page 3: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Who’s happy with:

Page 4: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

Requirements not met

Page 5: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

Software taking too long before it can be used

Page 6: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

Unhappy Users

Page 7: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

Unhappy Developers

Page 8: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

What’s working to fix this?

Page 9: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Agile

Page 10: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

What is Agile?

Page 11: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

XPScrum

Lean DSDM

Crystal

Page 12: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

A guiding manifesto…

Page 13: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

The Agile Manifesto

Page 14: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

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.

Page 15: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

What leads to poor productivity?

Poor Communication

Too much planning (no delivery)

Constant Handover

Priorities changing

Page 16: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

How does agile help?

Poor Communication

Too much planning (no delivery)

Constant Handover

Priorities changing

Timeboxed iterations

Constant feedback

Daily stand ups

Customer involvement

Iteration Showcases

Iteration planning games

Release planning

Pair programming

Cross functional teams

Iteration planning games

Page 17: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

What leads to poor quality?

Late Testing

Overcomplicated designs

No process improvementDelaying Integration

No knowledge transfer

Lack of Standards

Page 18: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

How does agile help?

Late Testing

Overcomplicated designs

No process improvementDelaying Integration

No knowledge transfer

Lack of StandardsCode standards

Collective Ownership

Continuous Integration

Frequent Releases

Refactoring

YAGNITest Driven Development

Automated acceptance tests

Unit tests

Daily stand ups

Pair programming

Behaviour driven development

Retrospectives

Informative Workspaces

Pair programming

Page 19: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Example practices

Page 20: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Continuous Integration

Page 21: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua
Page 22: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Testing

Page 23: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Customer acceptance tests

Unit tests

supports...

“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 TestDriven Development by David S. Janzen

Page 24: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Refactoring

Page 25: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Pair Programming

• Constant code reviewing

• Very efficient

– second person prevents drift

– X hours longer vs. 15X hours bug fixing(source: http://www.pairprogramming.com)

Page 26: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Reinforcing Practices

Page 27: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

WARNING!

Page 28: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

Only following practices…

Page 29: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

Coach

Page 30: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Summary

Agile

Discipline

Quality

Speed

Productivity

Page 31: © ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua

© ThoughtWorks, 2008

Questions?