code development lifehacks programming

Agile Is Dead

As a follow up to DDD Scotland 2011, I want to thank everyone who joined in. It’s time to reveal my ulterior motive : I did it all so I could get a blog post ­čÖé So thanks to everyone who helped write the Agile Is Dead Mind Map – please feel free to join in the discussion below.

Agile’s been bouncing around in my head for a while given that it’s reached its tenth birthday, and a lot of people are talking Agile, but its not the agile I see in The Agile Manifesto. It’s a silver-bullet snake-oil leech that throws out agile words and terminology but without the guts to actually make agile work. It’s an agile that doesn’t challenge managers or clients, that sticks to deadlines and a list of features, but promises faster, cheaper development.

It doesn’t work.

And don’t call it agile.

Agile works when the customer understands that it’s an interactive process, when there is a functional feedback loop and when the plan is flexible enough to adapt to changes by dropping features or extending deadlines. If you’re not doing that, you’re not agile.

But, you can be successful without being agile, you can do functional testing, you can have a CI server, you can do team priorities, and stand-up meetings. But until you have feedback loops, for each developer, for each feature, and for the project, you’re still playing the old game. It’s an easier route. It’s more comfortable for everyone to have a defined role, for everyone to work from a fixed position. And that’s fine. Just don’t call it agile.

Procedures and tools provide comfort, I know that, you know that. Budgets drive your business, procedures help you budget, and procedures mitigate risk. If it’s signed off, it’s not your fault. But then, someone must have signed off the Ariane 5 too. Would you rather deliver software or paperwork? Is paperwork your protective shield?

If you’re a manager, do you trust your developers? Do you trust them to take decisions, to talk to the client, to deliver professional quality? As a professional developer, that’s the teams I want to work in, and I feel privileged when I get that chance, because those projects always work out smoothest in the end, although they can be the hardest to set up.

If you’ve tried agile and failed, did you really try it? Did you trust the developers to deliver, did you trust your manager to keep things running, did you trust the client to give you the feedback you needed? Did you trust yourself and your team to be honest?

Agile, the word, has been hijacked. It’s dead but still walking. What matters is the philosophy behind it. And it’s not easy. No profession is. Are you a professional or an unskilled cog in an assembly line?

I don’t give easy answers. I wanted to become a developer because the thing that drives me is solving problems. And these aren’t problems that stay solved. HTML 1.0 didn’t solve everything, that’s why we have HTML5. Project management is a problem you need to solve on every project. Every project you’ll learn something new, and you’ll face new challenges. I cannot prescribe a solution, because I don’t know your project, and that’s how agile works. You have to adapt to your surroundings. After all, you’re only human.

If you want to be agile, talk to your team, and don’t let your ego stifle peer reviews, paired programming or feedback sessions. And if anyone does let things get in the way, staple a copy of the Agile Manifesto to their head and blow raspberries at them. Or go and find out about Programmer Anarchy and ask if you or your team could cope with self-directed project management, just like anyone volunteering for open source. If not, why not?

code development programming

DDD Scotland 2011 Open Discussion Sessions

There were 2 great discussions on the alternative track at DDD Scotland this morning, so many thanks to everyone who came.

Below, I’ve posted the two mindmaps we generated. They are in .mm format. I used FreeMind (open source) to generate them.

Professional Development

An open discussion about how developers can be professional inside the constraints of management or environment. Examples of questions for this discussion could be

  • What obstacles do developers feel they face in regards to adoption of technologies and techniques?
  • How have these been overcome?
  • How can productivity and morale be improved or maintained?

Professional Development Mind Map
Professional Development Mind Map (.mm format)”
View “Professional Development” Mind Map online with Mind42

Tidied version

Professional Development - Tidy Mind Map
Professional Development – Tidy Mind Map (.mm format)

Agile Is Dead

Based on a discussion at QCon around the 10th anniversary of Agile and whether or not “Agile” actually means anything anymore. This discussion opens the floor to delegates to chat about the current state of Agile in software development.

Agile is Dead Mind Map

Agile Is Dead Mind Map (.mm format)

View “Agile Is Dead” Mind Map online with

Tidied version

Agile is Dead - Tidy Mind Map

Agile Is Dead – Tidy Mind Map (.mm format)

[EDIT : 10/05/2011]

I’ve created tidier versions of the above mindmaps to try and capture the groupings discussed on the day, as well as the abstract for each session. I’ve also highlighted the starting point of each discussion to make it easier to see what was added over the course of the session. I will leave the raw mind maps too.

[EDIT : 11/05/2011]

I’ve found an online Mind Map viewer to help you explore. Added links to the unedited mind maps above and here:
View “Professional Development” Mind Map online with Mind42
View “Agile Is Dead” Mind Map online with


Justice in Pakistan?

I’ve had an idea in my head for a while that I wanted to start
blogging about things a bit more political than my technical blog. Not
party political, because frankly, that bores me, but political in the
grander sense. Today I was having a discussion on Facebook about Osama
bin Laden, and whether killing can ever be a good thing. And I would
say that the question isn’t what is right, a question of if it is OK
in this circumstance, but not in that circumstance.

It is a question of justice and forgiveness. If justice and
forgiveness are to mean anything, then they, like the human rights
they are based on, must be universal. We cannot say “this person is
not worthy of justice” because then justice is hollow and becomes a
tool to control others by imposing values on others that you would not
follow yourself.

To demonise one man for his actions dehumanises both him and those who
oppose him. Simply calling him “evil” absolves you of responsibility
to hear his grievances. Not listening to the victim does not justify
the crime of murder. And for those who would say that he would not
give his victims compassion, I would ask why you choose his actions as
a guiding principle when you condemn those same actions in his hands?

Will this death undo all those who have died before? No. Will it stop
future terrorist attacks? Unfortunately not. Is celebrating death,
anyone’s death distasteful? Of course.

Do you want justice, revenge or compassion? What sort of person do you
really want to be?