I have recently been expanding the design team for Intelli-Computing, bringing in a few people with unique talents that will allow us to create richer designs and web applications. I have quickly noticed something: designing things as a team is fun and effective, but very difficult to do on a deadline. We had a meeting on Sunday, where we worked together to layout a web application, design the color scheme, and incorporate copy and photos from our creative team. We then developed a plan of attack for our programmers to develop the system, and set out to execute it. This all sounds good, but it introduces a lot of latency when different people are responsible for different components of a project, and one person can’t simply stay up all night to finish the project themselves (which I’ve done many times). We use Basecamp to enhance communication and make our collaboration more efficient, but there are still delays when one person becomes a bottleneck. In this case, it is actually me, since I had another project come up yesterday which prevented be from implementing the site layout for our programmers (in this case Mike) to go to work on.

We only have a team of four people: Matt, Brendan, Mike, and myself. I can only imagine what it would be like to try to manage a production team with hundreds or thousands of developers. I remember reading an article in the Communications of the ACM entitled What Road Ahead for Microsoft and Windows?, back when Windows Vista was still in alpha. It describes how Microsoft had so many developers independently working on so many different components of Windows that the OS eventually grew to 50,000,000 lines of code developed by more than 4,000 programmers. Dependencies led to the project grinding to a halt every time small changes were made, and eventually the codebase was scrapped as the team returned to a base of Windows XP to create the version of Vista that we have today.
In my experience, there is a critical mass of developers that you need to optimally solve a problem, beyond which additional staff actually slows down the project. It is the classic dilemma where too many cooks spoil the broth, which is an age old idea. However, big companies like Microsoft seem to have forgotten it. I see startups with teams of less than ten developers churn out huge amounts of well-written code with a speed unmatched by the juggernauts who employ thousands. That’s one of the many things that make startups so exciting, where teams can still work together to create amazing products without being weighed down by the bureaucracy of a large, established company.
2 Comments »