Agile has gone mainstream. Companies do it, governments do it, consultants, and contractors. Everybody does it. Right? Maybe not. The metaphor that comes to mind is a group of young men discussing sex. It’s cool, new and everybody wants in. The majority say they are doing but the sad fact is that most of them are lying and those that are actually doing it, are doing it wrong.
After seen Agile done well, and badly I started to become aware of “smells”. These smells are signs that despite of an Agile veneer, it’s not agile at all. A side point is that the word Agile has lost its meaning. It became this silver-bullet-buzzwordy thing and now it’s close to worthless. See, the point is not Agile, the point is to get better at developing software. Hopefully these smells will give you ideas on how to get better at what you and your team do. I've created a reasonably long list of smells to write up and my goal is to post a couple every day or so.
Smell no. 1 - Only process is covered, technical practices - meh too hard
Several Agile adoptions start from the management layer. Often only touch how projects are managed. Often there is a tool of sorts, Jira with Greenhopper, Mingle, Rally etc. There are iterations and people use virtual walls, rarely real ones. Developers and testers still sit where they sat and do what they did. There is no CI Server, no one does TDD and pairing is impossible because everybody is busy. When management is asked whether there’s an appetite to change the technical practices the answer is usually in the lines of “we will try the process first and see if it’s worth changing the technical practices but now they’re really busy delivering”. Have you smelled that somewhere?
Smell no. 2 - Few/no production releases
In software development there are two crucial moments of real learning. The first one during ideation and the second once software hits production and real people use it. Everything in between is done just so the product can be released often with little or no real learning happening. If your team is developing in iterations and every fortnight they complete new features that never hit production, the learning is delayed. Teams go on for months, sometimes a year, without a push to production. Agility comes from delivering in smaller chunks. Delivery means production. If a team only releases in to production in the end of all development that is upfront work and is big smell.
Smells no. 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 and 19