In 1975, Frederick Brooks wrote the first edition of his book, “The Mythical Man-Month”.
This is a classic on the topic of software project management. Many of the lessons he shared from his time as an IBM project manager are still valid.
Brooks’ law
Brooks’ law states that if you add more resources to a software project that is behind schedule, you will delay it even longer.
This is generally true. If you add new people to an existing project, it takes time for them to get up to speed. And with more people, you have more communication overhead.
The person-month
And then there is the fact that there are always limits to how much we can divide a task. This is the concept of the mythical man-month.
A man-month (or, to be PC, a person-month) is a hypothetical unit that represents the work done by one person in one month.
If it takes one person 10 months to write a piece of software, the amount of work is 10 people-months. But that doesn’t mean that if you have 10 people on the job, it will only take one month.
You can only divide a task so far. Years ago I watched a team of bricklayers build a long wall in 12 hours. There was a bricklayer every few meters, each with his own assistant to pass bricks and mortar. It would have taken one bricklayer much longer to do it alone. But more bricklayers would not have done it faster. Why? They would not have had space to move. And you can’t lay the next row of bricks before you have laid the previous row.
Project managers should know better
As a discipline, project management has been around for a long time. And some PM principles stay the same, whether you use Agile or Prince or any other approach.
So I am dismayed to still see so many memes and comments about poor PM choices. Like scope increases without schedule adjustments. And expecting overtime work as standard.
The Chat-GPT person-month
But it could be worse. Your manager could use ChatGPT to work out the schedule. I came across this recently on social media, and had to share it.
Prompt:
“If a software developer takes 365 days to write a piece of software, how many developers will it take to write that piece of software in 1 day?”
ChatGPT response:
“Assuming that the software developers takes 365 days to write a piece of software working alone, we can estimate the number of developers required to complete the same software in one day.
Let’s assume that the developer works full-time dedicating 8 hours per day to software development. Furthermore, we’ll consider that they spend the entire 8 hours each day actively coding without any interruptions or breaks.
365 days 8 hours/day = 2,920 hours of work*
If we want to complete the same amount of work in 1 day, we need to divide the total number of hours by the number of hours available in a single day:
2,920 total hours / 24 hours = 121.67 developers
Since we cannot have a fraction of a developer, we can round up the number to 122 developers. Therefore it would take approximately 122 developers working together for 8 hours to complete the piece of software in one day.”
The mythical person-month just got a whole lot shorter. While ChatGPT is amazing, please don’t use it for your Math homework.
I’d love to hear your comments on how many developers you think the project will take!
2 thoughts on “Coding matters: The even more mythical man-month”
Hello! The Maths is perfect from ChatGPT. It just didn’t take into account that a man-day is only 8 hours. 🙂 And of course, other things we take for granted, like some things build on other things in coding. But again, from a Maths homework perspective it got a correct answer based on the information available 😀
An example that I like for a task that cannot be made quicker if you put more people on a job, is that it takes 1 woman 9 months to grow a baby, but it definitely doesn’t take 9 people 1 month to make a baby 😉
I love the way ChatGPT starts with 8 hours a day, then moves to 24 hours a day, and then moves back to 8 hours a day. I could have called the post: “How long is a work day?” Clearly that depends on who is doing the work! 😂