If you have worked in the tech industry, you may have heard of the “mythical man-month“. The term comes from a famous book first published in 1975 by Frederick P. Brooks. The book was written about managing software projects, but the term “mythical man-month” has also become a catchphrase for the challenges of managing projects in general. Brooks’ central thesis is that adding more people to software projects is often the wrong thing to do, because productivity doesn’t scale the way you think it should.
In the book, Brooks points out that as soon as you hire your first employee, you have to start thinking about managing him or her. That’s easy when it’s just one person. But as your team grows, it quickly becomes more and more difficult to manage. It’s easy to overlook details. You have to start planning for meetings and writing reports, which take time away from actually doing work.
Brooks also notes that software development is a complex process that requires a lot of thinking. He gives an example where each person on the team can be expected to produce about 10 lines of code per day. If you need to produce a 1,000-line program, it may take 10 people a month. But if you add a single person to the team, the cost of managing that person will probably more than offset the amount of work the extra person can do. So the total productivity of the project will go down.
Managing Software Projects
Software, and by extension the tools for managing large projects, has come a long way since Brooks wrote this book. It’s still true that you can’t simply add more people to a project to get it done faster. But it is possible to manage software projects more effectively.
In particular, there are tools that help you keep track of project progress and plan future work that didn’t exist in the past. Powerful project management software lets you track the time that your team members spend on different tasks, helps you manage complex projects, and lets you keep track of the resources available for different projects.
A good project management solution can also help you make better decisions about how to use your team’s time. If you’re trying to decide which features to add to your product, you can run a simulation of how different features will affect your company’s growth.
The 1% Rule
Another piece of conventional wisdom that is often thrown around is the so-called 1% rule: 1% of programmers on a given project account for 99% of the productive output. Sometimes it’s 10% or 0.1%, but the idea is the same. A small number of the best programmers assigned to a project produce all of the useful work, and the remainder mostly get in the way.
The 1% rule is usually applied to software development, but it has been cited in other contexts as well. For example, the same principle supposedly applies to investments, where a fraction of top companies account for almost all of the returns in a portfolio.
The top 1% of programmers are often referred to as “rockstars”, a term borrowed from the music industry. It’s meant to convey that these programmers are exceptionally talented, both in terms of their raw programming skills and their ability to provide value to customers.
The 1% rule is an attractive idea for managers because it means that it’s possible to get a lot of value from comparatively few people – you just have to find these people and get them on your team. But is the 1% rule true?
There is some research that suggests it is. For example, a study of the Linux community found that 1% of developers accounted for 20% of the code written. This is not 99%, but the idea is the same. Another study of Wikipedia contributors found that 1% of editors accounted for 50% of the edits. There is also anecdotal evidence from tech companies, who often recruit a small number of top programmers and give them the freedom to work on whatever they deem to be most important. Google is a notable example of this – they are highly selective in their hiring processes, but the rockstars who work there are often very free.
If the 1% rule is correct, it means that there is a very small number of programmers who can do a disproportionate amount of good work. If you want to build a successful tech company, it’s probably a good idea to hire those people.
Rockstars Are People, Too
No matter who you have on your tech team, you still can’t escape the fact that programmer productivity, like that of any group of employees, is maximized when developers are happy, relaxed, and well looked after. Stress is particularly counterproductive to coding work, because without complete focus on the task at hand, productivity goes out the window (whether your team are rockstars or not). So do everything you can to reduce it in your team!
I have seen mindfulness programs for corporations used to great effect in this regard. Mindfulness is a great stress reducer for anyone, but seems to work particularly well for technologists. Perhaps this is because it becomes an intellectual pursuit, and is well suited to the analytical mind. At any rate, before you conduct a mass fire-and-rehire exercise, I would urge you to take a good look at corporate meditation programs, especially those that know how to work with high performers. You may be surprised at the difference it makes.
Other things you can do to reduce stress and improve productivity include providing ample coffee, relaxing deadlines and giving as much freedom as possible, and providing paid time off. You may find you’re sitting on a team of rockstars that aren’t performing because of simple things that you can fix.
Managing developers is still a challenge. The best way to manage your tech company is still to have a good team, but it’s good to know what tools are available to help you manage your team effectively. The industry is notorious for employee mobility, so if you have a good team, make sure you look after them.