The joy of big up front design
Big up front design (BUFD) is a term that finds its origin in the standard waterfall model. It is often criticized and seen as something that should be avoided. I believe we should not be so easy to dismiss BUFD. I want to discuss the good things of BUFD, because I believe there are many. For a minute, stop thinking about project effectiveness and all those agile principles and let's zoom in on an imaginary group of people, team red, working on their Big Design. Perhaps you'll agree BUFD has it's merits if you look at it from a personal perspective.
Let's imagine the project has just started, the business has come in with a request and they want their problem solved. The competition has launched a new product or is offering their services for a lower price, so things need to change. Let's say their problem is 'finding information on customers'. When the business wants information on a customer, it takes forever to find all information. They want an automated solution that can satisfy their information needs quickly and accurately. Sounds like a familiar problem? Let's look at our team to see how they handle this. They're having a meeting on 'process and tools', asking themselves 'how can we tackle this?' They want to do a good job, letting the business know how the problem needs to be solved, coming up with answers and solutions. There is clearly a positive vibe in the team, you can feel the 'we're going to get it right this time' atmosphere. After a few weeks of solid discussion and studying of the business case they come up with a plan. The business is pleased, this looks like a real plan. What are they waiting for? Let's do this thing! So after the business has given a 'go' they start making plans for next year, 'we'll have this new search capabilities, how can we turn that into profit for our business?' The business starts to get exited as well, the goal of any IT project.
So next step, the design. It's gonna be a big one, this is a complex problem which needs some complex solutions and good thinking. Thinking caps on and let's make that design. All limits are off, out of the box thinking is what we need. Someone says: 'What if we use this new technology? We'll be able to roll out new solutions in no time, the business will be so pleased'. That's what I call focus on business value! We've got some enthusiastic people on the team. The design is coming along nicely, after only a few weeks the outline is getting visible, without being limited by details the team can paint a perfect picture. Discussing all kinds of issues, thinking of possible problems (such as error handling) AND their solution (a error reporting tool or framework will do the trick) they work through all the details. It's not easy, but after a few months they finish the design. A job well done!
Now it's time to get some more support for the project, more people need to get involved. The business needs to be updated of our design as well, we want to include them in the process, we've got feedback along the way but now they can see the finished design. If we present it well they'll come with good feedback and perhaps even new ideas. That will give the project a new boost... Luckily, the presentation goes as planned, the business is pleased. If it all works as designed they'll be competing like crazy in a few months...
This is where the implementation cycle starts and my blog ends. I won't go into further details, you might have experience with this kind of projects and fill in the rest yourself. But let's think about what the team and the business went through. BUFD allows for good communication, working as a team, sharing experience, fixing problems, involving the business, thinking about business value etc. With the added benefit of setting high ambitions and creating an imaginary product and business process that makes everyone feel good. People like imagining things, thinking big, thinking of future issues and coming up with their solutions by discussing different options. Plus, the development phase is tough, so good preparation increases confidence throughout the company. BUFD gives you that confidence...
If people want to stop doing BUFD, where will they get our sense of security? Can they keep using their imagination and expertise to reach that state of perfection that they're used to work towards? If we want to improve the way people do IT projects, we'll have to understand their current motivation for doing it waterfall, only then can we make the first steps towards change.