The blogosphere is replete with references to an interesting post by Michael Mace, “Mobile Applications, RIP“. Michael believes that the age of custom mobile application stacks is dead. Instead, he posits, the mobile web is surging in importance, despite its being inelegant and inferior technologically. He points out that
“A platform that is technically flawed but has a good business model will always beat a platform that is elegant but has a poor business model.”
In principle, I agree with him, but his choice of language and approach to the issue suggest that technology comes first. As he says “A platform (subject) … has a … business model (object).” I don’t mean to sound like a third-grade English teacher, but this is an important distinction. Platforms don’t have business models (or at least they shouldn’t). Business models have platforms.
For the past 14 years I have been managing teams of very capable engineers. I myself do a lot of the software design, and for some projects, the coding. It is very easy to think technology first, because that is often the way things are built. Engineers naturally want to make their software elegant.
But elegant architectures do not necessarily make money. And there is real danger that by starting to plan or build the technology before nailing down the business issues, you’ll build the wrong thing. Of course, given today’s frantic and competitive technology markets, the technology and the strategy usually evolve concurrently. The problem is that the during such concurrent development, the technology is often the most concrete thing you have. It is easy to relegate the business strategy and consumer needs to a secondary role.
The “technology first” attitude is at the heart of more startup failures than I could ever list. Never let the engineers (the crazy people) run the startup (the asylum).
But what can we do to minimize the risk that the technology takes on a greater importance than the business objectives? Here are some suggestions:
[Fellow engineers, fear not. Some day I'll write a post about the ignorance of non-engineer managers ignoring the technology realities, and pushing out a product that is not ready, and will never be any good.]
Readers, do you have any other suggestions about how to ensure business objectives remain paramount?