Making Good Software

A blog by Alberto G (Alberto Gutierrez)

Written by Alberto G

April 27th, 2009 at 11:49 pm

Are you doing agile or are you doing waterfall with some agile practices?

with 9 comments

Agile is not about following a subset of recommended practices (TDD, daily standup, task boards, user stories …), in the agile manifesto they are not even mentioned:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

You can be doing agile without performing any of the current recommended practices and you can perform all the recommended practices and still not be agile.

Lots of teams believe they are practicing agile just because they are doing standups or TDD… That’s like pretending to be a musician because you have the best instrument.

Agile is a culture not a process, Agile teams need to know the reasons for the principles stated in the manifesto, if a team is moving to Agile without understanding the philosophy behind agile, the team is at risk of keeping a Waterfall process with Agile practices.

The four main agile points are.

  1. Requirements change. Main point of Agile, all the inputs change during the software development process, actually most of them are yet to be discovered.
  2. Do it (right, right now). Forget about documentation, big analysis, big plans… Just do it, do it now, do it right.
  3. Good code over BDUF (Big design upfront). Focus on building good code as not only your code will be better, but also good code will end up creating good designs.
  4. Deliver value as soon as possible. Have deliveries and demos as soon as possible, don’t do anything if it doesn’t bring any added value to the final product.

If you stick to this four points, no matter what practices you follow, you are an Agilist. The different methodologies, like XP or Scrum, are just a set of recommended practices/tools to help you drive the software development process to handle the 4 main points. As an example XP will focus on good practices for having “Good code over BDUF” (TDD, Pair programming..),  Scrum will focus on Deliver value as soon as possible (User stories, Sprints) Do it, right, right now (Daily standup)…

Ask yourselves, do I believe the previous four points? If you don’t, you will probably have problems to become an Agile Software Developer, or you may end up doing Waterfall with some agile practices.