One of my first talk at an international conference was about cargo cult in the Java world.

The story behind cargo cult is quite interesting: indigenous peoples were living their life on some islands in the Pacific Ocean. During World War II, both Japanese and American forces happened to come to those islands which were important to their respective military supply chain. Both sides did what every armed force in the world does to achieve their goal: they brought soldiers, constructed airplane runways, and shipped tons of manufactured goods.

Aside from the direct effects it had on the war, there was an unforeseen consequence on local societies. Natives watched with interest as the foreigners built long pathways and tall building that attracted big birds of steel. In turn, those brought a lot of interesting goods, such as canned food.

By imitation, they constructed their own runways, and air control towers - only they were made of wood. As they didn’t understand the theory behind airplanes, they imitated what they understood in the hopes of bringing goods from the sky: the outer appearance.

I’m afraid you see where I’m headed. There’s no way it can be argued that waterfall was successful. And Agile might very well be the way to go. But every place I’ve seen "Agile" in action, I’ve seen the same old practices:

The deadline has been set without involving the team who will do the work

The deadline is still enforced through death marches

The wishes of the business are expected to be fulfilled - they were communicated at the start of the project, even though they changed a lot throughout the project lifetime

The project manager does the same job, but now he’s called a Scrum Master

etc.

The business understands one thing about Agile: they can now change their mind whenever they want. And keep the same deadline and budget.

We gather on stand-up meeting every morning, chanting what we did the day before and telling what we will do. All in the hope of reaping the benefits of success. In the end, the form has been perfectly copied…​ But without the expected benefits.

I understand the drive behind this. It’s very alluring to think there’s a magical formula behind project success somewhere. That’s the root of engineering: trying to find rules in the chaos of the world, to improve on the existing situation. But software projects are so much more about human interactions than about project management methodologies!

Whatever the methodology one uses, the project will be successful if people want to collaborate together to make it so. Likewise, whatever the methodology, it will fail if company politics are more important than the project success - or for any similar reason. And there are a lot of such reasons, management cannot be blamed for all of them.

Stop applying Agile methodologies. Start being Agile. Go beyond the form, and try to realize the idea behind it.

A trap is for fish: when you’ve got the fish, you can forget the trap. A snare is for rabbits: when you’ve got the rabbit, you can forget the snare. Words are for meaning: when you’ve got the meaning, you can forget the words. Where can I find someone who’s forgotten words so I can have a word with him?…​ — Master Zhuang