Tuesday, February 21, 2012

An Agile Process is an Integral Equation

How does one define an Agile process.  I've heard that mathematics should be able to describe most anything; so here is my attempt at describing an Agile process.

An integral equation.  The integral from sprint 1 to sprint N of teamwork multiplied by the sum of test-driven development to the power of continuous integration plus pair programming plus the summation of refactoring.

See Also:
     S.O.L.I.D. design principle posters.
     Which Agile Process Should You Choose? a comparative study of processes
     A List of Agility Tests

During Scrum boot camps at SolutionsIQ back in the day we ran an exercise to map the engineering practices to the Agile manifesto's 12 principles.  The first several groups to participate in the exercise arrived at a set of practices that felt to all as if they had covered most of the 12 principles, but not all sufficiently.  That's what instigated the practice of teamwork, not that it had been missing on our teams, it just was not overtly called out as a practice.  Therefore it received less attention for improvement.  It also created some AH moments upon reflection of some of the teams that had trouble with that practice.

We played around with substituting other practices for these core 6 practices.  For example let's not do pair programming and see what we need to insure quality code continues to result from our teams. So replace PP with pier-code review practices.  So teams ran this experiment - and depending upon the individual on the team, though that was a equal and better substitution. Other's didn't believe it a equal substitution when mapping that practice to the 12 principles.  We lost some capabilities that pair programming supported and encouraged that typical code review practices never replaced, and in many cases harmed (such as teamwork).

Post a Comment