How to Learn Agile Programming

June 12th, 2010 by declanwhelan Leave a reply »

Below is a video of the session summary by Patrick Wilson Welsh. Video courtesy of Selena Delesie:

Below is a short video taken at the end of the session also summarizing what was discussed.

What I primarily got out of this session is that transitioning to an agile programming style is a daunting learning curve for many developers. The knowledge and craftsmanship associated to effectively understand and use TDD, DDD, BDD, SOLID principles, patterns, and so on, is considerable. Attempting to learn and apply this all at once smacks of waterfall and BDUF and is very un-agile! Instead, Patrick Wilson Welsh proposed cutting a thin vertical slice through this and starting with the simplest thing that could possibly help!

Patrick proposes that we first start with the following key practices:
1. Naming / Renaming modules
2. Keeping modules really, really small
3. Cyclomatic Complexity
4. The Single Responsibility Principle
5. The Composed Method pattern
6. Basic Test-Driven Development (from scratch)
7. Continuous Refactoring
8. The Extract Method/Variable refactorings
9. The Inline refactoring
10. Boolean logic refactorings (guard clauses, DeMorgan’s Law, preferring positive logic)
11. Basic Duplication Elimination (“DRY” code)
12. Basic Test Double techniques (mocks, fakes, stubs)
13. The Extract Interface refactorings
14. The Extract Class / Introduce Parameter Object refactoring
15. The Pull-Up / Pull-Down refactorings / managing variable & parameter scope
16. Basic Legacy Code Rescue

For more information, please check a draft book that Patrick is co-authoring with Mike Hill.

Attending the session were:

  • Alistair McKinnell
  • Robert Gissing
  • Jesse McGinnis
  • David Juche
Advertisement

Leave a Reply