Why 9 women can not give birth to a child in 1 month or About the use of simulation in project management
Introduction
I think many of you have heard the expression "9 women cannot give birth to a baby in 1 month!" The context of this expression is obvious - in software development it is used as an allegory when they protest against a completely unacceptable time compression . Here, by compression we mean the reduction of development time by expanding the team while maintaining the overall complexity of the development.

It is quite obvious that it is impossible to compress the deadlines indefinitely. There is a certain limit. For example, Steve McConnell, a well-known expert in evaluating the complexity of software development, defined this threshold as 25% of the initial estimates (see my previous article ).
But this topic is not about labor intensity estimates ...
So I wrote above "quite obvious ...". Do you think this is really obvious? To everyone?
My recent experience has shown that this is not obvious to everyone. The project was very large and the deadline was inexorably approaching. It was decided to dramatically expand the team in order to be in time. No one accepted the argument about “9 women”. The team was expanded and on time we still did not have time. Could it be somehow, except in words, to show how events will develop? That's about how to simulate such a situation, and will be my article.
I am sure that many of you had to make some decisions, on which a lot later depended. How did you take them? What were you guided by? Did you know for sure how events will develop, depending on what choice was made? But the higher the position in the management hierarchy, the more forward-looking the decisions should be and the more expensive the mistakes from incorrectly made decisions are.

In most cases, decisions are made intuitively based on life and professional experience. When making decisions, on a subconscious level, we take into account many factors, take into account the knowledge that we received earlier. But what if you need to explain to someone why you are so confident in your decision? Here, of course, you can apply all your persuasion skills, simply “push through” your position and calm down. For example, you can peremptorily declare: “Yes, I’m just sure of that!” And ignore all other arguments. But this does not always work, especially if you are of lower rank than those to whom you are proving your position.
It would be nice to be able to translate your “intuitive sensations” into some more tangible form. In a form that would allow:
- Realize your own feelings
- Check out various guesses
- Explain to others clearly and intelligibly why a particular solution will be more effective
Decision Support Systems

Such systems "allow you to make decisions in difficult conditions for a complete and objective analysis of objective activity." Just what we need when managing projects. Various support methods are used to support decision making. We are interested in such a method, which will be most obvious to solve the problems indicated above.
Simulation

Modeling tools


Example
Formulation of the problem
For ease of understanding, I’ll take as an example an example from the very book that I spoke about above - Deadline. In it, the main character, Mr. Tompkins, and Dr. Jamid model a change in team performance depending on different conditions. Our “situation with women” is very similar, so the example is quite suitable. In fairness, it should be noted that, in fact, the original source of this example is the book Introduction to Systems: Thinking and ithink. (Hanowr, NH High Performance Systems, Inc, 1994) .
To build the model, we will create a new file in iThink and on the “Model” tab I will start adding its elements.
But first you need to highlight the factors and numerical values for modeling.
Factors
In order to reduce the lengthy arguments in the Romanesque style, I briefly highlight the factors that can influence the model:
- Recruitment in the project
- The cost of integrating new members into the team
- Negative scale effect
- Collaboration Merge Effect
The numbers
Next, we need to highlight the quantities that can be measured in any way. In this case, without this, modeling would be impossible.
So, our numerical values are:
- The number of employees
- Volume of functional to be implemented in arbitrary units ( functional units )
Building a model in iThink
In order to make it easier to perceive the model, I will start building it from the end.
Take two containers . One - complete, will symbolize the work that needs to be done. The second - empty, will symbolize the work that the team has already completed. Connect them through the valve , which will determine how quickly the work from the first container will move to the second. Thus, this valve will characterize the performance of the team in performing the necessary work. Unfortunately, iThink is not very friendly with Russian-language signatures, so I will do all the signatures in English.

In the next step, we need to introduce the process of recruiting new staff (e.g. developers) to the team. It is also worth remembering that effectively the staff does not start working immediately. To begin, new employees must be “introduced” into the project. Even if they are very experienced and qualified people, they still need to look into the project: understand the accepted approaches, understand the nuances, etc.
The diagram below shows:
- A cloud is a resource pool, where new employees come from (for simplicity, we consider it infinite)
- Income Staff valve - shows how fast people are getting into training
- New Staff container - reflects staff being trained
- Integration Level valve - shows how fast people join the team after training
- Effective Team container - contains employees representing an efficiently working team

Next, we need to associate the staff (the number of employees) and the change in the volume of realized / unrealized functionality (in arbitrary units). To do this, we introduce another element in our model - the converter . A converter is a formula (rule) that converts some numerical values into others. In this case, the converter will reflect the so-called negative economies of scale - diseconomies of scale , i.e. how much less each subsequent member of the team will be more effective. I put this amendment in the form of a speculative graph.

In iThink, converters can be specified both graphically (the set of values through which the curve passes) and analytically - in the form of a formula.
In order not to unnecessarily dive into the details of the model and not create a basis for controversy, I will not give formulas here. I am sure that each of these formulas will have their own.

At the next stage, we will add another converter - “Integration Cost” - Integration Cost. This converter will show how the efficiency of the team decreases when introducing new employees ("old-timers" are forced to be distracted from their main work in order to help newcomers).

Another interesting factor in teamwork is known - the "merge effect" - Join Effect. Sometimes, over time, people on a team become more than just the sum of individuals. People become a Team! By supporting each other, they not only begin to work more efficiently than if they worked alone, but it’s also easier to accept new team members - it’s easier to join a friendly team (unfortunately, it happens the other way around). To simplify the model, we indicate that this factor in a certain way affects the cost factor of integration.

At the last stage, add another arrow so that after finishing work stop hiring new people. In fact, you need to stop taking it even earlier, but for now we will not complicate the model.

Model improvement
It goes without saying that the presented model is not perfect. Naturally, there are errors in it, there are ways to clarify and add new factors that affect the process.
For example:
- We can add that the “merger effect” affects the overall performance and speed of integration (and not just the cost of integration).
- It can be added that the personnel in the training are also able to carry out some useful work.
- You can add the factor of personnel leaving the project (for example, due to a change in corporate policy)
Decision-making
Now, actually, about making a decision. The resulting model helps to decide how long the "infusion" of new members into the team remains quite effective.
In order to understand what will happen, run the model.
As a result, we obtain the following graphs.
The first graph shows how quickly outstanding work will be converted to completed work. The main thing here is that the process is non-linear.

But the second chart is more interesting. It already shows how exactly the team's performance changes as additional team members are introduced. From the graph, for example, it can be seen that in the short run, productivity drops. Notice how far it is from straight lines.

To understand how many people a team can take into their ranks relatively painlessly, you need to adjust the Income Staff valve by setting various values and re-scroll the model.
Conclusion
In this topic, I briefly told you how you can simulate your feelings, check your guesses and try to show someone the reasons and reasons for this or that decision. Unfortunately, this does not guarantee you that you can convince anyone.
As always, the “silver bullet” does not exist. Simulation will not be able to make decisions for you and convince others. No software (at least at the level of development that we have now) will get your forebodings from the depths of your subconscious. But, fortunately, we have very effective tools that help us not only better understand our arguments ourselves, but also predict the situation.
UPD: At the request of the workers , the model itself is available here . You can experiment.