Yusuf Arslan has recently asked an important question: Is Agile and Scrum really better than Waterfall? I think that’s a perfectly valid question and admit that he touched important aspects along the way. What piqued my curiosity was a particular section of his entry:

There are also serious allegations that promoting software development methods is just one big money-making exercise for a group of consultants. Certification has created a small army of consultants and trainers who are constantly busy training and coaching a bigger army of certified Scrum practitioners.

Being probably a valid criticism aside, I think there’s an interesting point here. I wonder whether people who bring that criticism to the table realize that the situation about programming technologies and platforms is very similar. Think about one of the most popular technology platform for developing enterprise software, or one of its rivals: If you are, like me, older than 30 and have been involved with computing at least during the last 15 years, then you will very easily remember how much branding, selling, training, certification, etc. swirled around these (and still do!). And here we are not talking about some fuzzy software development methodologies but cold, hard, concrete programming languages that run on cold, hard, physical devices that are supposedly open to rigorous physical experimentation and statistical data analysis. Does anyone sincerely believe that the majority of people and companies made their choices completely free from bias, without being effected by the huge marketing machineries of the companies producing those technology platforms? And if not, then what’s the point of saying, e.g. promoting such and such software development methods is nothing but a money-making exercise for consultants? The world of professional software development is about making money (including training people for your software), and unless you are talking about the simplest of benchmarks, everything is more or less based on speculation, and thus interpretation.

Until we have high quality data gathered from replicable controlled experiments, or carefully observed software projects (sound like an utopia), and then do some statistical analyses on them to arrive at some clear conclusions, and then at some laws by aggregating many of such studies, that is, not merely do science, but also good, high quality science, we will be more or less speculating about the ‘best practices’, software development methodologies, what works and what doesn’t. At least, being honest about that can be the first step to arrive at a more reasonable and scientific level of discussion on these matters. Until then, I think the best we will ever get will be the nicely written anecdotal case studies such as “Lean from the Trenches: Managing Large-Scale Projects with Kanban” (one of the nicest things about that book is that the author is very well aware of the fact that we are still far from talking about hard, cold, absolute scientific laws when it comes to software development methodologies).