Software Projects can be expensive. Having seen so many different software projects during my work as software developer and architect, I believe that the same kind of project can cost 100000 EUR, 500000 EUR or even
5 million EUR. There are many different cost drivers in software projects but in this article, I would like to discuss the Distance of Communication.
The knowledge and experience of parties involved in a software project is very different. There are users, managers, business analysts, technical and non-technical project manager, software architects and developers. Assuming that different types of knowledges and expertise does create communication borders, information has to pass many borders to arrive at the people who do the job.
It is very interesting that the organization of many software projects is very close to the following game description.
The game is called Chinese Wispers in Britain or Stille Post in Germany.
Many children are sitting in a circle. A child whispers a phrase to its neighbor. The neighbor whispers the phrase to its neighbor and so on until the phrase arrives at the child sitting next to the phrase teller. This child speaks out what it understood.
As the misunderstandings from the whispered phrases accumulate the result can be very funny.
In a software projects the future user of the software speaks to his manager. The manager speaks to the business analyst who puts together the requirements from a professional non-technical perspective.
The business analyst passes the requirements to a technical project managers who formulates technical requirements and task descriptions for the software developer.
The software developer develops what he understood.
Once the software is delivered to the users all parties are sitting together, giggle and have fun seeing how the requirements transformed into a more or less useful piece of software.
Parties Involved in Software Projects
There are a number of parties involved in a software projects.
The future user
The future users of the software. Their daily work is going to be supported by the new software. The users can have difficulties to describe what they need. Those people have a good experience in their job but are most likely not GUI-designer or process analysts. They might even not be aware of the full process but only know the tasks involved in his daily job. It’s like someone who drives a car. He can tell you that a car is good, the steer wheel is well placed but driving a
car does not make him a car designer.
Manager of the user
Manager of these users, who organize their job and the processes. The manager of the user most likely have a clearer view of the process but he might not know how doing the job does exactly look like.
Business analysts talking to the users and the managers and writing the requirements from a professional non technical perspective. The business analyst has no experience in practical doing the job but has a more distant view. Distance facilitates having an overview but makes it more difficult to see the details. A business analyst may lack knowledge of the subject as well.
Technical project managers transform the requirements into technical requirements and task descriptions. A technical project manager does not really know the details of the users job from first hand experience. At the same time, a project manager might not even know how to do software development. He is responsible for organizing the software project.
Software developers doing the GUI design, coding and technical architecture work. Sometimes the architects are separated from the normal software developers. The software developer has the biggest practical part of creating the software but at the same time the biggest distance to the people knowing how and what the software should solve.
The knowledge, skill and experience of each party is so different that each communication border will lead to additional errors in understanding the requirements.
The Cost of Communication Distance
The cost of a software project can be expressed by the formular:
base * 1.5 ^ (n -1)
base is the basic estimated price. It can only be achieved if the developer is coding something for himself.
n is the distance between the developer and the user. If the developer communicates directly with the user, then n equals 2. For every person in between n increases by one.
The formular is correct until it is proved to be incorrect. At least it is indicative.