Agile is pigeons dancing on one leg

There are some things that people don’t like to think about. There is no particular reason they don’t like to think about those things. It’s simply because their parents didn’t think those things and through luck and chance that bias was propagated to the next generation. This happens in nature all the time. Just because something is passed on to the next generation doesn’t mean it was useful or adaptive in any way, it could just have been some random structural property that resulted from a confluence of other things. This is very vague but the point I’m trying to get across is that people have a propensity to see patterns where there are none and sometimes they will carry on believing something completely random because random good things happened to them when they believed those things. So through the power of associations those random beliefs were associated with good things even though if you could zoom out and do the proper statistical analysis it would all look like noise. Now couple this with under-constrained systems like we see in software all the time and it is a recipe for a pretty hilarious disaster.

Have you ever wondered why most software is designed with the agile methodology? Like what is so special and good about agile and if it is so great why isn’t there agile chemical engineering, agile aeronautics, agile telecommunication, agile medicine, agile agriculture, and agile whatever else you can imagine? Probably because agile is nothing special at all. People need to believe in something and agile just happens to be a barely viable version of a belief system that most software engineers will put up with. Waterfall design and engineering put people on the moon and I have yet to see agile engineering generate any kind of robust software artifact of that scale. Most agile software is always falling apart in one way or another. Getting back to the random beliefs and dancing pigeons, I think agile is just random noise. A group of pigeons delivered good software once while they were dancing on one leg and they decided that dancing on one leg is why they made good software so they packaged the whole mess as a methodology and started preaching their gospel. No one else had anything worthwhile to say on the matter and they saw that dancing on one leg was coupled with good software because some pigeons somewhere managed to do it and instead of asking whether it was the dancing or the composition of the people that made the good software everyone started dancing on one leg.

The parameters we operate with are under-constrained and this leads to overfitting on incidental details which then become gospel. This happens so often that if we actually sat down to question all the random things we believe in it would turn out that probably 90% of it has no basis in reality. You could believe and do the opposite thing and your life would be no different. If you are interested in this kinda stuff then I recommend this book and this article because none of this is new, it’s just not very widely known.