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

Post on 17-Dec-2015

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

© ThoughtWorks, 2008

Improving Productivity and Quality With Agile

Patrick Kua

© ThoughtWorks, 2008

The Software Development Crisis…

© ThoughtWorks, 2008

Who’s happy with:

Requirements not met

Software taking too long before it can be used

Unhappy Users

Unhappy Developers

What’s working to fix this?

© ThoughtWorks, 2008

Agile

© ThoughtWorks, 2008

What is Agile?

XPScrum

Lean DSDM

Crystal

© ThoughtWorks, 2008

A guiding manifesto…

© ThoughtWorks, 2008

The Agile Manifesto

© 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.

© ThoughtWorks, 2008

What leads to poor productivity?

Poor Communication

Too much planning (no delivery)

Constant Handover

Priorities changing

© 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

© ThoughtWorks, 2008

What leads to poor quality?

Late Testing

Overcomplicated designs

No process improvementDelaying Integration

No knowledge transfer

Lack of Standards

© 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

© ThoughtWorks, 2008

Example practices

© ThoughtWorks, 2008

Continuous Integration

© ThoughtWorks, 2008

Testing

© 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

© ThoughtWorks, 2008

Refactoring

© 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)

© ThoughtWorks, 2008

Reinforcing Practices

© ThoughtWorks, 2008

WARNING!

Only following practices…

Coach

© ThoughtWorks, 2008

Summary

Agile

Discipline

Quality

Speed

Productivity

© ThoughtWorks, 2008

Questions?

top related