Let me make this clear: I am not an agile fan. I heard the murmurs when it started many years ago, and kept a watch on it. It sounded like a pipe dream: more collaboration, shorter development cycles, writing mo’ faster code mo’ better with less bugs, effortlessly changing the software as new requirements emerge.
In reality it meant developers were always shooting at moving targets, because no one explained to the managers how this agile thing is supposed to work.
Collaboration sounds great, until you realise coders are inherently hermits, who only want to put their heads down and quietly concentrate on transforming their mental model into working software. Any interruption puts them back by minutes, and these minutes add up.
Many methodologies have sprung up, promising to be a panacea to all that ails software development: test driven development, pair programming, extreme programming, Kanban, and scrum with its scoring, retrospectives and sprints, and lately, DevOps. Every methodology purports to be “agile”.
Recently, studies are showing that these methodologies aren’t necessarily more effective than the traditional waterfall method. Most software projects still run over budget and over deadline. Many blame this on how agile is implemented by managers and developers who don’t fully understand how it should work.
This is true. But agile doesn’t do itself any favours. It doesn’t provide for overall planning, instead saying that the structure will emerge as development continues. How can one develop something if you don’t even know what it will end up being?
I want to know what I’m supposed to build, and think about it hard for a long time, examining it from all angles, and then I’ll hit the keyboard. Once the software is written and in place, you can start tinkering with it.
Why am I telling you all this? Because another study is showing that we seem to have missed the target again, this time with DevOps: https://sdtimes.com/devops/report-devops-is-causing-chaos-for-enterprises/
Of course, I realise that developing my app in its entirety, back-end and front-end, makes me its de facto DevOps. The irony does not escape me 🙂