rss feed
blog - making technology instead of products
posted by witten on May 20, 2007
I once worked at a software startup where it was announced that the engineering team was to have a meeting across the street at the local bar. This was a little out of the ordinary, especially since we were only given a vague idea about the meeting's topic: Future directions after the current release is shipped. So at around 4 in the afternoon, a motley group of developers, testers, and managers filed into a nearly empty Cuban-themed bar with congo drums for bar stools. We sat uncomfortably around several wooden tables, sipping sugary mixed drinks and waiting for whatever announcement was coming.The announcement, as delivered by one of our own venerable managers, was as follows. The company has awesome technology that's worth millions of dollars. That was assumed as a given. However, if some employee comes up with a killer app to showcase this technology, then the killer app would have a multiplier effect, making the millions of dollars of company value into tens of millions of dollars. The implication being that since we all have some stock options, coming up with a killer app will make us even richer when the eventual and inevitable huge payout happens. Names of various inspirational killer apps were bandied about, such as MySpace and dodgeball.com. It was left as an exercise to the listener as to what the hell these existing web sites had to do with our company's technology.We squinted at each other in the afternoon sun, wondering why this announcement merited taking us all away from coding for two hours. Then, a challenge was put forth. The first person to make a killer app will be paid one thousand dollars! This proclamation was made with neither any hint of irony nor a Dr.-Evil-style pinky-to-mouth gesture. By busting our butts and producing a killer app to make the company's technology into something actually useful, and thereby lining the pockets of the owners and investors with tens of millions of dollars in value, one of us would be paid a whole thousand dollars for our trouble! And our infinitesimally small stock option grants would be worth slightly more. It sounded like quite a deal.As the inspirational ramblings by various managers wound down and the meeting degenerated into general chatting and mojito-sipping, some of us wondered aloud what the hell was going on. And it soon occurred to us: Desperation. The management realized that all this time the company had been producing cool technology rather than products that actually meet customer needs. And while developing software simply because the technology it's built on happens to be cool is a noble goal, it also has the unique property of not producing any measurable revenue. In other words, being technologically cool counts for something, but if your goal involves producing software that people will voluntarily exchange for money, then it's more important to make something that customers actually want.Management realized this, albeit a bit late in the game, and so they were desperate for something, anything that would convert their multi-year investment into an actual product that customers would pay good money for. But rather than revamp our product suite or cut out "cool" features that no customers actually wanted, they settled on the quick fix idea of a killer app. If only our developers invent something like MySpace running on top of our awesome software, our otherwise useless technology will become an actual product, and we'll be rich! And we can reward one of them with a thousand dollars as a motivational tool!The company made the classic mistake of focusing on technology rather than products. Unless you're making products like high-end audio equipment for people with too much discretionary income, customers don't care about whiz-bang technology. They care about whether the product solves a problem and makes their life easier. Whiz-bang technology might make a product that's already useful even more appealing, but technology on its own is rarely sufficient.Here's a simple one step process detailing how to make a product that's focused around the customer's needs rather than your need to make cool technology. Step one: Actually focus on the customer's needs! When coming up with a new feature, first step back and figure out which customer problem it solves. What's that? It doesn't solve, address, or have anything to do with an actual customer problem? Don't implement it!Okay, this advice of listening to your customers might sound trite, and the quite legitimate objection can be raised that sometimes customers don't know what they want. This is certainly a concern, but that doesn't excuse foisting upon your customers software that doesn't meet any of their needs. Even if a particular customer doesn't know what he or she wants, it is your job as the developer and all-around problem solver to guess whether a feature you're developing has a non-zero chance of being remotely useful to that customer. If in your esteemed opinion the feature is technologically cool but not terribly useful, well, then you have your answer.Why do so many companies fall into this trap of making technology rather than products? Simply put, because it's easy. Actually focusing on the customer and gathering requirements and distilling them down into actual features is just plain hard, especially for a group of logically minded coders. Developers by their nature deal in technology, and it takes another set of skills that many developers don't have to think in terms of what would satisfy their users. So many software companies take the easy route of focusing exclusively on the technology because it's what they know. Doing otherwise would not only require stepping outside of their comfort area but would require much more up-front effort.One of the interesting claims in the Mythical Man-Month is that turning a piece of software into an actual product takes three times the development effort of just producing the software to begin with. It is this sort of transition from a simple technology-oriented program to a shippable, customer-oriented "solution" that many companies neglect. A company might get their software to market faster by focusing on the technology rather than the customer, but the software they do ship won't make any customers happy.Fortunately, these problems have a way of correcting themselves. At the software startup I worked for with the "cool" technology, no one ever came up with the killer app and so no one claimed the thousand bucks of prize money. The company ended up missing payroll, nearly went out of business, and was eventually sold off at fire sale prices to a holding company. No one got rich, and all the stock options that were to be worth millions of dollars turned out to be more useful when printed out and used as toilet paper.4 comments
Write a comment!-
Re: making technology instead of products posted by ckhoo on May 20, 2007 05:05 PM
There is truth in that statement, but that's more coming from a traditional development lifecycle.If you follow agile approaches where you test early and test often, and I also mean user acceptance testing, then you avoid the problems of your technology not suiting customers. And yes, that means listening to customers, which I know most people suck at.I have a personal belief that just about any feature a customer says he or she wants is actually what they want. It's just how you frame it that makes all the difference. To take a very simple example, MP3 players were not hugely popular, but any geek looking at the market could see their intuitive use. It was Apple that pulled off a slick interface and a very streamlined approach (Apple Music Store + iTunes + iPods) that suited everyone, not just geeks.It sounded more like that management of the company didn't plan & budget properly. Given more time, adequate direction and better HR skills (that bounty technique is just idiotic... it calls for poor quality), they might've turned that technology into something useful.Chris -
Re: making technology instead of products posted by witten on May 20, 2007 06:44 PM
ckhoo wrote:There is truth in that statement, but that's more coming from a traditional development lifecycle. If you follow agile approaches where you test early and test often, and I also mean user acceptance testing, then you avoid the problems of your technology not suiting customers. And yes, that means listening to customers, which I know most people suck at.
Practicing true agile is definitely going to make you more responsive to customer needs than most other development methodologies. At this particular company, whatever development cycle we did practice certainly wasn't agile: Our worst release cycle was around 16 months long, and that's without any customer seeing the product in that time frame! I think the real benefit of agile development though is not just getting new features in front of customers more frequently and tightening the feedback loop, it's also that it involves an explicit focus on the customer that is so often lacking in other development processes. If you're doing the agile thing right, even when you're not in front of the customer giving a demo, you should be thinking about the customer's needs as you're writing code.Having said that, I don't think agile is absolutely necessary for being customer-centric. You can still think about what will satisfy your users even if you're not constantly doing demos for them. It's just that agile has customer-centricity as one of its core tenets. -
Re: making technology instead of products posted by dancreswell on May 21, 2007 08:51 AM
Hmmm, I wonder how much of this is about having some form of credible revenue model and a business plan as opposed to agile etc? -
Re: making technology instead of products posted by witten on May 21, 2007 09:25 AM
Having a working mechanism for generating revenue is certainly essential. I won't argue with that. :) However I maintain that even with a business plan, you can't just focus on the technology and neglect the customer's needs or you won't have customers for very long.