Software development, like most of engineering, and maybe like most of organized human production, has two sort of obvious approaches to solving a given problem. One is to start from the top and work down. Maybe the top is the higher level of abstraction. Maybe the top is the user interface. In some sense, the “top” is seen as the generic, “high-level”, gestalt view of the world. The style of development that begins from this point is known quite universally and unsurprisingly as “top-down”.
By contrast, of course, one can start with the fundamental technology. Begin at the atomic, and build up progressively more complex, integrated structures. The bottom is not necessarily lower-class, though management will often treat it that way – visionaries live up top, and grunt labour does nuts and bolts work at the bottom. The bottom can actually be a lot of fun, and it’s certainly a valid approach in many cases to start there. I hope, dear reader, that your minds shall not find it particularly taxing to understand that this methodology is
It was not until my second or third year with IBM, that I first encountered the term “bottoms-up development” in an email. I thought it was a rather humourous typo – obviously someone had confused the drinking cheer with the development methodology on a hungover Monday morning and typed the wrong thing. Nothing could be further from the truth. It was a manager, and since then I’ve seen several managers do the same. They just actually don’t know there’s anything wrong. And every time they say it, it’s like reading “Mary could of done that” a thousand times over.
I’m not trying to be a grammar nazi, much less a buzzword ninja, and I understand that it may seem petty. But managers, if you’re reading this, let me be frank: saying this discredits you. It makes you sound like a goober, and even if your team gets along well with you, it solidifies for them the line between them, the technical professionals, and you, the goober.
I do hope it goes without saying that the utterly miraculous reverse-propagated “tops-down” needs to go as well. That is all.
Scotch photo courtesy of: ghz