Evaluating Project as a system without a controller

Evaluating the design of a Project as a system without a Project Manager (Controller)

As we know a “Project” in a software company is technically a system wherein the engineers working in the project are the internal structural components who interact with each other to deliver the behaviors that need to be delivered by the project as a system.

Let’s think about a project wherein there are 20 developers who are supposed to work together to deliver this project. Let say the customer of this project is based out of the US. The beauty of this arrangement is that this project doesn’t have a project manager. So in this case the customer has to directly interact with the individual developers to communicate the requirements and get the work done from them, apart form the customer developer interaction , the developer by themselves are also interacting with each other to do their work.

The figure shows the case of a project without a project manager.

Figure- Figure

So now we are supposed to discuss the pros and cons of a system like this.

As most of the people prefer believe that it is good to have a project without project manager, lets first discuss the advantages of this design.

What are the advantages of this design “System without a controller” ?

From a developers/engineers perspective it is a great situation because they are not controlled by anyone. No human being wants to be controlled and the job of the controller/manager is to control. This is the reason it is said that “A project without project manager is a developer delight”. But lets understand, we should not evaluate designs at a component level (developer), we need to find out any advantages at the system level ie (Project level).

One of the advantages that we can have at the system level is

As there customer is directly interacting with the engineers, there is a very little possibility of requirements getting misinterpreted, saying this I am not say that a project manger deliberately misinterprets requirements. I am just trying to say that in a communication model, every level of indirection creates a possibility of noise(distortion) distorting the original signal. The more the level of indirections , the more the possibility of signal distortion, less the level of indirection less distortion.

Second advantage that we can see at the system level is

There are no single point of failures, and the system will never come to a knee jerk halt. There can be partial failures with the system, but the chances that the system will come to a knee jerk halt is very remote.

Now lets talk about the limitations/disadvantages of this design

Let us evaluate this design from wrt some engineering parameters like

  1. Usability
  2. Performance
  3. Flexibility
  4. Security
  5. Accountability

As we have discussed , there are some parameters which mostly has to be supported in any well designed system.

Usability

What can we think about the usability of this design? Think about from the customers perspective … is it a simple system to use or a complex system to use?

As we can see , the system is a complete white box wherein all the structural and behavioral aspects are exposed to customer ie the customer has to know about all the engineers working in the project, he has to know their references and should also know how to get the work done from them. Ask yourself if the customer has to know about all these aspects … I hope you will realize the system will look to be a very complex system for the customer/user.

In a nutshell, usability of this system design is highly pathetic.

Performance

As the customer/user can never come inside your project, any interaction between the customers and the engineers will always be a remote call ie ISD/STD call and we know ISD/STD calls are extensive wrt response time and the call rate. Also the number of ISD calls is proportional to the number of engineers working in the project. Hence we can say performance is pathetic as well.

Flexibility

As the system is a complete white box will all the structural and behavioral details are exposed to the end user and hence any kind of structural and behaviorial changes will affect the customers. In a situation like India wherein every day a engineer joins, every day an engineer quits .. I hope we realize the customers life will become a nightmare.

Security

Again as the system is a complete white box, all the structural and behavioral aspects are available to the customer/actor and hence again both structural and behavioral security is pathetic.

Accountability

Ask yourself who is responsible for the success or failure of the project ?

Will we blame the customer for the same? How can the customer be blamed when he is outside the system?

Or

Will it be fair to blame individual developer/engineer for the failure of the entire project?

No

In this system there is no one who is accountable for the success/ failure of the project neither the Customer nor the individual developers.

Hence the accountability is also at the lowest level.

 
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer

www.VPlanSolutions.co.in