I’m going to be lazy and use parts of Wikipedia’s summary of The Mythical Man-Month. And make a few assertions as to why we may need to revisit the whole shebang. Yup, another very provisional post. More musing than thinking.
The Mythical Man-Month: When we develop for the web, are there really any more large teams working on monolithic projects? I guess that’s possible in some consultant-riven (yes riven not driven) public sector projects, but I’d rather not believe these are common. With social software, is there really an increasing communications overhead as you add people? Or is it a value-generating network effect, a real Power law? Does an opensource community working on an infrastructure component actually generate negative output at the margin? Which is the myth, The Mythical Mythical Man-Month or the (ostensibly) Mythical Wisdom of Crowds? Is democratised innovation a myth?
The Second-System effect: When you deliver little and often and you have active feedback and feedforward loops, is there really a second-system effect? Did Google or Skype or eBay or Amazon experience second-system effects? Or maybe they just missed that out, like the 13th floor.
Progress Tracking: If web development is about incremental daily delivery, are we reaching the stage where the cost of tracking exceeds the cost of delivery? Are projects becoming better, one day at a time? Can they? If Beta is now a recognised state, where is it on the progress map? Have we not already moved to a world where we work with constrained development team sizes and prioritised, dynamically allocated and re-allocated resources and deliveries? Where team size is a constant and delivery dates vary as needed? Where dates and real and politics are virtual? Where Prediction Markets define future progress.
Conceptual integrity: Is it really possible to separate architecture from engineering any more, and if so to what extent? Haven’t we already moved to a point where conceptual integrity is required at an ecosystem level, not at a system level?
The Manual: Hang on a second, let me get out my manuals for Skype and Google and eBay and Amazon and Firefox. Oops. Brooks meant reference and systems manuals, not “user” manuals. Let me get out my manuals for all the Writable Web applications we use where I work. Oops.
The Pilot System: That must mean Beta. The Google Beta. Is it really throw-away? How do you throw away a web app? No don’t answer that one, send me a postcard.
Formal documents: See The Manual.
Project estimation. Let me see. It will take one team day to deliver one team day worth of value, with deliveries prioritised according to market stimuli. When does a project start, when does it end? In today’s world, are these terms nothing more than tools to represent our actions in ledgers? And will we need that kind of representation if we stopped “capitalising” things?
Communication. See opensource movement. Global. Scalable teams. Social-software enabled.
The surgical team. See hacker.
Code freeze and system versioning. OK Mr Brooks, you win that one. Let’s keep it. Maybe we should call it community mores and values and modus operandi?
Specialised tools. OK we’ll concede them as well, except that we are now talking about opposable thumbs and machine tools and Because Of infrastructure.
Lowering software development costs: I love this one. I quote from Wikipedia: “Another technique Brooks mentions is not to develop software at all, but to simply buy it “off the shelf” when possible.” It’s now called opensource.
I’m only half-serious, but serious enough.
Generation M is not going to worry about the Mythical Man Month. They know the world revolves around the sun. How many people at Google and eBay and Amazon have read the book? [I’d really like to know].
Time to rewrite it. Because otherwise we face a different problem. We need to educate those that control and manage and check and monitor what developers do, otherwise a Little Mythical Man-Monthing can be a Very Dangerous Thing.
2 thoughts on “Four Pillars: Time to rethink Frederick Brooks?”