Monday, October 26, 2015

Agile is just throwing stuff together as quickly as possible?

Is Agile just throwing stuff together as quickly as possible?

The older version of this was some variant of "Extreme Programming is just hacking" or "Extreme Programming is just cowboy coding".

In essence, the suggestion is that Agile is equivalent to "Code and Fix" or "Cowboy Coding".

Kent Beck describes the heartbeat of an Extreme Programming episode in response to the "Why is XP not just hacking?" question.  Paraphrasing for length...
  1. Pair writes next automated test case to force design decisions for new logic independent of implementation.
  2. Run test case to verify failure or explore unexpected success.
  3. Refactor existing code to enable a clean and simple implementation. Also known as "situated design".
  4. Make the test case work.
  5. Refactor new code in response to new opportunities for simplification.
Does this reasonably sound equivalent to "throw stuff together as quickly as possible"?

Granted, not every Agile team has this kind of technical discipline.  Hence, so-called Flaccid Scrum and the advocacy of Two-Star Agile fluency.

Also, granted, that sometimes one should throw stuff together quickly when the purpose of the exercise is to test an experimental concept.  For example, "spiking a solution" or an initial MVP.

No comments:

Post a Comment