Defined process is one of two major models to control any process. It implies that everything is known from the beginning and nothing will change along the way. A waterfall project management model is based on it and is traditionally (been) used to manage various projects. The problem arose with developing complex systems (like software) where defined process is not appropriate. Now we know that a second major model, an empirical process control model (EPC), is a better fit for complex systems. This model uses change to build a better product. Agile development relies on EPC.
Despite agile development maturity and proven superiority compared to waterfall model, every now and then we mess with questions should we still use waterfall in software development for some cases. Keeping in mind non trivial software projects, my answer is always NO. In environment where change is likely to happen, we should always use EPC. Moreover, forcing defined process in complex circumstances is not only harmful, but could be ridiculous, too.
I was always impressed how some other industries are not effected by defined process at all, and use EPC by default. My favorite is sport.
For example, let’s try to imagine a football team preparations for FIFA World Cup. It is a real project with people, deadline, goals, etc. Right? In 1998, Croatian national team achieved a great success by winning bronze medal at FIFA World Cup in France. There were many great players there like Šuker, Boban, Bokšić, Prosinečki,… led by a charismatic football coach Ćiro Blažević (Ćiro is his nickname).
Now, let’s put them in a defined process and try to imagine big upfront planning like this:
Ćiro: “OK, guys. A plan is to win all three games in a group stage. It’s very important step toward gold medal.”
Boban: “Excuse me, Boss, but shouldn’t we stick to short term goal to pass the gr…”
Ćiro: “No! Listen, Zvone (Boban’s nickname), you’re a smart guy, but you know nothing about project management. It is my responsibility to derive a plan and your responsibility is to realize that plan. I planned every single detail for every game that we’re going to play.”
Bokšić: “But, how did you plan all games when we don’t even know against who we’re going to play?”
Ćiro: “Objection Boka (Bokšić’s nickname)! Maybe you don’t know against who we’re going to play, but I know. I know it because I did a very comprehensive analysis and planned other team’s games, too. It’s my job to know and to plan, and again, your job is to realize that plan.”
Ćiro: “But guys, don’t be so unorganized. Let everybody do their own job, not other’s job. Do you have some questions from your area of responsibility?”
Players: “No Boss.“
After a group stage, Croatia had 6 points and passed to a second round. They won against Jamaica and Japan, but lost against Argentina in a match with no significance. Ćiro called an emergency meeting.
Ćiro: “Guys, you screwed the plan. You wasn’t supposed to lose any game. That was a plan!”
Šuker: “But Boss, we passed, who car…”
Ćiro “No! We have to follow the plan. That’s what plans are for – to be followed.”
Ćiro: “But, I have to admit, you’re not the only one who failed…”
Ćiro: “I failed, too. Other teams screwed their games, so my original plan about our opponents is now dead. I should know it, but I failed…”
Ćire: “But let’s go back to our case. Luckily enough, the game that we lost wasn’t in our critical path, so we still have a chance. Of course, that doesn’t mean that we can forget about that fail, it only means that we’re going to postpone consequences of it until the end of a tournament.”
Ćiro: “BTW, Šuker, you’re not going to play next game, because it was planned to recuperate you for the next game.”
Šuker: “But Boss, I feel fantastic! And I scored twice! Why I’m out now?”
Ćiro: “Here we go again smart asses… remember the plan?”
Team: “OK Boss…“
Later on, Croatia “failed” to win a gold medal. They won “only” bronze medal and failed to realize a plan. Not realizing a plan implies a project was not successful.
Can you imagine such nonsense? Does this case sounds ridiculous to you? It is only a one-month project, so can you imagine how it would be with a whole season upfront planning? Indeed, it is ridiculous to use defined process in sports, so they never use it. They inspect and adopt before tournament, before game, during a game and after a game. They replan all the time. They never used defined process. They don’t even try to think to use it. EPC is natural to them.
Like in sports, EPC is natural in software development, too. We should stop questioning about that, and focus to deliver a value.