Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agile Process Improvement

Agile Process Improvement

One of the first talks I ever gave, in 2004 at JAOO (forerunner to GOTO), with Martin Fowler.

It looks at how to adopt agile ways of working and some pitfalls to avoid.

Avatar for Daniel Terhorst-North

Daniel Terhorst-North

September 22, 2004
Tweet

More Decks by Daniel Terhorst-North

Other Decks in Technology

Transcript

  1. © ThoughtWorks Ltd, 2004 2 Agenda • Introduction • Transitioning

    to an Agile process • Improving an existing Agile process
  2. © ThoughtWorks Ltd, 2004 3 The Agile manifesto is a

    set of comparative values 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 more.” www.AgileAlliance.org
  3. © ThoughtWorks Ltd, 2004 4 Process is about repeatability •

    Repeating successes • Avoiding repeating mistakes • Avoiding repeating others’ mistakes “Fear leads to Risk, Risk leads to Process, Process leads to Hate”
  4. © ThoughtWorks Ltd, 2004 5 Introduce process improvement in terms

    of benefits • To the team (Programmers, BAs, QAs) – Making life easier • To the Project/Program Manager (Assurance) – Managing risk • To Business stakeholders (Governance) – Business value proposition Adapt the message as appropriate
  5. © ThoughtWorks Ltd, 2004 6 Principle 1: Actively solicit feedback

    • Release high-value software early and often • Early releases are only useful if someone is watching • Watching is only useful if someone is listening
  6. © ThoughtWorks Ltd, 2004 7 Principle 2: Automate everything •

    Automate everything you can – Automate your revision control – Automate your build and deployment – Automate your system verification • Automation reduces risk – Automate boring, repetitive tasks • Automation reduces waste – Manual, labour-intensive processes
  7. © ThoughtWorks Ltd, 2004 8 Principle 3: Plan collaboratively •

    Everyone should be involved in the planning • Everyone understands the domain and the scope • Everyone commits to the project • Visible consequences of decisions – Both business and technical
  8. © ThoughtWorks Ltd, 2004 9 Principle 4: Adapt your process

    for now • A process should be optimized for the current team on the current project • Retrospectives are a formal way to change the process – Heartbeat retrospectives – Release retrospectives • Daily standups allow fine tuning • Pairing is an informal way to share best practices – Technical idioms, development activities, good habits – Not just pair programming
  9. © ThoughtWorks Ltd, 2004 10 Process improvement is about getting

    the balance right • Understand how much is enough • Do enough, but no more • Understand why we are changing the process • Being prepared to try things
  10. © ThoughtWorks Ltd, 2004 11 Pitfall 1: Pay attention to

    design – avoid design rot • Non-agile developers use The Process to mandate design • Agile developers use features and tests to evolve the design • During the transition, beware of having no design! – Especially people new to Agile and new to the project
  11. © ThoughtWorks Ltd, 2004 12 Pitfall 2: Keep the build

    time short • A slow build is a productivity killer • Longer intervals between check-ins – More code means exponentially more complexity – Less likely to remember all the changes • Lots of dead time – Waiting for the green light – Backlog of check-ins • Kills motivation
  12. © ThoughtWorks Ltd, 2004 13 Pitfall 3: Keep team sizes

    small • Face-to-face communication doesn’t scale – Delivery teams should be a dozen programmers or fewer • Have several small teams rather than one large one – Large delivery teams should be in subteams of half a dozen programmers or fewer • BUT: Ensure adequate communication between teams – Avoids duplicating local solutions – Daily stand-ups with tech leads
  13. © ThoughtWorks Ltd, 2004 14 Pitfall 4: Do enough up-front

    thinking • Agile doesn’t mean “just start coding” • Planning, analysis and design are vital – So do all of them, all of the time
  14. © ThoughtWorks Ltd, 2004 15 Summary • Use the values

    and principles to improve your process – Remember: People and Interactions over Processes and Tools • Understand why you are changing your process • Do not be afraid to try things – and to reject the ones that don’t work • Be careful to avoid the pitfalls – Learn from others' experience