© thoughtworks, 2008 improving productivity and quality with agile patrick kua
Post on 17-Dec-2015
217 Views
Preview:
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