Tuesday, November 6, 2007

Processes and Dogma

I've been writing a fair amount lately about development process (especially Extreme Programming) and project management process (SCRUM, mostly), but there is one very important point I've made.

Process is good. Dogma is bad.

Following a process is great. It gives you many many benefits, from predictability to a framework for thinking about problems to rules that prevent infighting. However, processes are subject to the real world, and each implementation needs to be flexible and tuned to your needs.

So, what is the purpose of having a process like XP or SCRUM?
  • Provide consistency. Having a process will help you do things the same way each time.
  • Take advantage of others' mistakes. Every process was created over a number of years with numerous mistakes that were corrected - and you get the benefit of it.
  • Ensure smooth flow throughout the development process. Having a process to provide rules and checks prevents developers fighting with marketing, developers fighting amongst themselves, etc. Normally, this shouldn't happen, but sometimes having the process is nice.
But.... don't let process get in the way of what you're really there for - shipping product. Sometimes you have to set aside the process for some emergency. You should know why you do it, and you should correct for it so you don't have to step outside your process, but it will happen.

So have a process. Follow your process. But don't forget that process isn't the point. Shipping your software is the point.

No comments:

Post a Comment