Posted by: Jeremy Reimer on Thu Oct 20 12:05:24 2011.
There is a theory in physics that our universe is but one of an infinite number of universes, each existing in an expanding bubble inside a faster-expanding super-space, never coming into contact with each other.
A similar thing goes on every single day at work. Each person lives in their own bubble universe of their own perceptions, feelings, emotions, and opinions regarding everybody else.
When we talk to each other, our words transmit only a tiny amount of our meaning. When we send email, or chat over MSN, or even worse, hold meetings and talk about other people behind their back, all this extra information is lost. You are working, at most, at 10 percent efficiency.
And that’s not even taking into account the fact that any information or meaning you DO manage to convey is going to be twisted and distorted by the "bubble universe" of perception and emotion that each person is living in.
This is a real problem in software development, where it is absolutely vital that everyone is on the same page and shares the same goals and vision.
Preventing this from happening is not easy. You need a close-knit team of developers who like and trust one another. You also need freedom from interference by managers, who live in their own far more distant bubble universes.
So what should managers do with their time? That will be the subject of a future blog post.
By loisrp on Wed Oct 26 03:08:47 2011
I agree that a close-knit group of developers is good. Question: does this mean that software development is inherently unscalable? Clearly not completely, because there are some pretty immense software apps out there. But I guess, even with a large app, you should have small teams building modules.
By Jeremy Reimer on Wed Oct 26 11:27:59 2011
I think most successful software companies today have very small, tightly-knit teams that work on modules. Even something as huge as Windows had (according to a former employee) about seven people working directly on the kernel. The Linux kernel team is about the same size.
The Windows 7 team--probably the largest commercial software project ever in terms of lines of code-- was about 1,000 developers (according to this reference: http://blogs.msdn.com/b/e7/archive/2008/08/18/windows_5f00_7_5f00_team.aspx)
That is further divided into 25 teams of 40 developers each. That’s about the maximum size that Microsoft found that would work. There were a lot more people involved in design, but some would argue that there were TOO many, as accounted for here: http://moishelettvin.blogspot.com/2006/11/windows-shutdown-crapfest.html
For an example of software teams that were ridiculously huge and didn’t scale at all, look no further than Nokia. The company had thousands of developers working on various mobile OS projects (albeit not all on the same project) and kept adding more and more, and they couldn’t ever get a product out.