Let’s see if I can read The Mythical Man Month today. Perfect read for a chill Monday
Tweeting tidbits in this thread 👇
Large software projects suffer from division of labor and thus management’s biggest job is maintaining cohesion
“The programmer, like the poet, works only slightly removed from pure thought-stuff”
All programmers are optimists.
Because the medium is pure thought-stuff we assume each task will only take as long as it ought to take.
Cost of communication grows as n(n-1)/2
Coincidentally also how the value of a social network grows as a function of users
Even with well partitioned tasks, if communication is required, increasing team size may lead to communication cost trumping time savings from parallelism
The maximum number of people who can effectively work on a software priject is equal to the number of independent parts
When you have 200 people managed by 25 rockstars, you’re better off firing the 175 and put managers back to work.
But they can only work so fast and it might take them decades to build truly lrge systems
TMMM suggests a surgical team model where 1 superstar programmer is supported by a team.
Big kahuna designs the system and writes the main code, their team does the supporting tedious work of testing, polishing, etc.
Of course such teams still can’t do everything, but if next level communication is limited to The Surgeons you have cut down communication overhead by a factor of 7.
(Imho many roles on that diagram no longer apply, but the core idea is sound)
When you design your first system you know you’re green so you are very careful.
On your second system you’re an expert and include all the bells and whistles.
Don’t. It’s a trap