I recently got a new project assignment at work and started thinking about levels of uncertainty that exists in every software project. It’s been in the back of my mind a lot lately as I am trying to figure out what is that we are trying to solve, how our new project is going to work, what do we need to do technically and organizationally and how can I make it bring value in the context of larger division and even the company.
First, I know that uncertainty is inevitable and it is basically good. Without uncertainty, there won’t be any room for initiative, innovation, and risk taking. However, too much uncertainty typically results from other bad symptoms that bring enough distraction to make me worry and question the project’s validity. I’ve been trying to classify these most telling symptoms, and find ways to treat them. I am purposely staying away from management styles, social dynamics, reporting hierarchies on a project or even the project architecture, though these can have plenty of problems as well. I am thinking about basic, fundamental issues that interfere with way to approach all technology projects: find what the problem is and proceed to create a technology that will solve it.
Here is what I could come up with, and I’ve been:
The NASA Pen Project
This a project where everybody assumes that problem at hand can only be solved with a new technology and diligently and stubbornly tries to come up with such a solution. Anybody who dares to suggest that the problem can be solved by using an existing technology (potentially mixed with some skillful organization changes) is immediately dismissed because… Nobody can tell why. This creates a situation when people who are actually doing the work can’t fathom why or how their work might be useful because they all know that existing technology is just as good or even better. This uncertainty over the project’s fate causes quality issues, not to mention the team morale, because people think that their time and their work is being wasted. The only effective way I found to resolve this is to bring data to compare the projected costs of developing and implementing new technology with likely much lower costs of using existing tools to solve the problem and to propose a set of organization changes that will remove existing barriers.
The New Bicycle Project
This is classic and rampant NIH symptom. Because of political pressure within an organization or because of artificial competition and meaningless disagreements between “big wigs” in multiple divisions, an emerging or even an existing technology is reinvented with various degrees of success over and over and over again. Everybody has fun working on the cool new thing on their own, but company resources needed to solve the same problem are doubled or tripled. Nothing or very little is shared, teams hate each other, team management tries to outsmart their peers in the eyes of executives, and in the end nobody achieves the level of success they could have achieved had they worked together. Two-pronged attack might help here, I think: relentless pressure from the bottom (people demanding increased reuse and sharing of products already under way) and smart management from the top (timely executive decisions to combine or eliminate duplicate efforts).
The Emperor’s New Clothes Project
This is hysterical to observe from the outside but it is very painful for the people involved. This is a project where everybody seems to know and understand what the real problem is, but instead of solving it directly, team seems to be busy creating technology to work around it. After a few of those, a technological monstrosity/hodge-podge emerges around the original problem at hand, and it is usually unmanageable, unmaintainable, does not make things better at all, and is very costly. Once again, this could be due to politics within an organization or due to entrenched and seemingly unsolvable nature of the main problem (which sometimes is not technological at all). But until somebody has the guts to become that child who yelled that the emperor is naked, things will continue to be very difficult and the original problem will become even more entrenched because now there is a large investment into this pseudo-solution.
Go I Know Not Whither and Fetch I Know Not What Project
This is uncertainty squared – nobody seems to know what the problem is or was to begin with, nobody seems to understand why an existing solution, if any, is inadequate, and nobody can describe in concrete terms their vision for the new solution. But the plans are already approved, money allocated, and your team is on the hook to deliver… something. The solution likely lies in peeling the onion and asking a lot of questions from a lot of people. Start challenging every assumption to see how sure people are that there is a problem. Find out its exact nature to avoid building a space pen. Make sure you reuse existing bicycles. Call the emperor naked if you have to. Do whatever you have to to define “whither” and “what”. And if you can’t make any headway, be aware that there is a chance that you got this fairy tale project because somebody wanted to remove you from the picture for a while or permanently…
Am I being too negative? Well, I don’t think so – I am an optimist. This is why I am doing my very best to prevent my new project from becoming one of these and I am beginning to like this challenge more and more.
Happy New Year!