How great ideas fail
Despite of my efforts, organizations still adapt new recipes for success without really understanding their ingredients and conditions. When they fail, they almost always blame the recipe and never the cook. This behavior killed a lot of good initiatives and must be stopped immediately!
10 years ago I met Han, Han was a skilled software developer living in the Netherlands. He was fortunate enough to be able pick his own projects to work on. Han loved to work on new challenging state-off the art software. So he always ended up working on green field(new software) projects. Why? Because then he didn’t have to worry about any legacy code. He was joined by other skillful developers with the same mindset and he could apply all he had learned into this new project. Most of the projects Han worked on were a success. They delivered working software that added value, not always on time and within the budget but nevertheless, they delivered and customers were happy. To help the community Han decided to share what he had learned by writing a book. His book was called: “5 steps towards great software” and it described the following recipe for creating great software:
- Create a team of highly skilled developers
- Make the team as autonomous as possible
- Develop software for change
- Deliver as soon as possible
- Work together with the customer in short iterations
The book was a success and sold all over the world. There were training courses and Han got invited as a key note speaker at several conferences. IT departments were happy with this new recipe for success and Han even was able to make some money. So everybody lived happily ever after right? Well wrong!
At the beginning some IT departments decided that the 5 steps were to be followed for all new projects. To start off, they gave their best developer the possibility to hand pick a team. This team then went on to define their own architecture, use any technique they wanted and work directly with the customer in delivering working software. Because success is somewhat rare in IT, these departments proud as they were, presented their success. What they didn’t share were the conditions wherein this success happened. A minor detail they thought.
Then things really took off. Now they had this book with the recipe to success and people claiming that the recipe works. In IT, we really love success stories, especially those who promise to give us the next “Silver Bullet”. We really want to believe. So as a result all the floodgates went open and almost everyone in IT started to adopt the 5 steps towards great software.
At home, sitting next to his new swimming pool bought from the money he earned selling his book. Han started to notice his recipe was being altered. At first he was happy thinking they were just evolving his method. But then he noticed that fundamental assumptions that were at the basis of his 5 steps method were just ignored. He noticed his approach being applied in brown field development and as a result because of the legacy code they weren’t able to design for change. It was applied using teams consisting only of junior developers who had almost no experience developing large scale software. Teams where used that could not work autonomous and had lots of dependencies. Teams who were stuck to these giant releases and weren’t allowed to release frequently. And there were almost no success stories to share there. Only problems. And as for working with the customer. His method was applied in teams that during their project never saw a real life customer. They’d only talked to a business analyst or manager who told them what to do.
When applying the 5 steps started to show some flaws the manager blamed their developers. They argued that if other companies were successfully using the same method then it must be the fault of those applying it. So what first was a simple recipe IF you have good developers, an autonomous team, a green field implementation and if you work tightly together with your customer. THEN you’ll have a high chance of being successful creating new software Now was failing because these conditions weren’t met.
So Han got concerned and started to appear in public, writing and telling to only apply his 5 steps within certain conditions. Certainly they would listen to him. But it was already too late, lots of people had already committed themselves to the success of the 5 steps. Admitting to failure would mean they wouldn’t get their promotion or their reputation would be tainted. So they just ignored Han’s comments and started to blame his approach. First there were these rumors and then the community started to talk openly about it. Finally people and companies publicly stated that Han’s approach had been a failure. Currently it’s being used in many presentation as an example how not to approach software development.
You would think software development would be lost, Right? Then you’re wrong again. Luckily there was another great developer named Luke who found a new way to create great software. He also wrote a book, how to create the best software in 4 steps. Which was an even greater success because it only contained 4 steps.