The Dangers of Re-Use: How MashUps Can Stifle Innovation

We are in the age of the amateur. Joe Highschool can now make a flickr+youtube+googlemaps mashup in a day or two, and if you read popular technology blogs, this kind of *innovation* is heralded as the way of the future. Average Joes will do extraordinary things, which is why everything must be free an open, lest it stifle innovation. I must be a strange guy indeed, because 99.7% of the time, these mash-ups strike me as useless and uninteresting. Most mashups reflect the mediocrity of the minds thats created them. They are unoriginal and uncreative. But before I talk more about that, I want to share a story from my engineering days.

I used to design FPGAs, which are written in a special programming language that is designed for hardware. Like any good coder, I embraced design re-use as a fast and efficient way to get things done. But re-use has downfalls, like the fact that you are using chunks of circuits that seem to work fine, but you have no real understanding of what happens deep down inside. Build enough circuits out of re-used code, and it's possible to advance in a career without ever really learning to program things from scratch.

One day we found a problem in the lab with a chip that had recently been designed. It turned out to have a timing error – a specific signal that had to get somewhere within a specific time period just wasn't making it. We scratched our heads, reviewed our code, and ran simulations for days. Then someone had the audacity to question an old memory circuit that we dropped in when we started the design.

The other engineers said it was blasphemy. That memory circuit had been used on a dozen different chips over the last 8 years. So many, in fact, that no one really knew exactly how the circuit worked. Sure enough, upon closer investigation, this particular design exploited an issue in the circuit that created a timing quirk never seen before. We saved a day by using that circuit instead of designing it ourselves. We lost a week tracking down the issue caused by that circuit. Lesson learned? Re-use is fine as long as you understand what you are doing.

And that brings me to mashups and innovation. I just don't think mixing twitter and flickr and geo-coded tags is all that big of a deal. It's not that using other services is wrong, it's that people aren't learning enough about the underlying technology. Schools teach you how to multiply before they let you use a calculator. There's a reason for that. Maybe I'm wrong, but my perception is that websites, in particular Web2.0 sites, are getting worse and worse the closer they come to building themselves. There is a place for building on what others have done, but there is also a place for rewriting their stuff and making it much better.

Real innovation comes from understanding a system to the point that you can see how to improve it. Creativity in any field requires a familiarity with the core concepts that only comes from putting in the time and doing the detail work necessary to be able to question why things were done a certain way.

So what is the point of all this? It's not that re-use is wrong or mashups or bad, just that they need to be kept in perspective. Don't be afraid to dig in a little deeper. Don't be afraid to take the harder path from time to time. Most importantly, don't confuse imitation with innovation.

  • Before starting my own business I worked with one of the big 5 consultancies and I was continually amazed at how little their “expert technical team” really understood about how the tools they used worked. For example the “web” team didn’t know what HTTP was and had never heard of CGI…

    There’s a lot to be said for reuse, but as you say you still need to understand what you are reusing.

  • Excellent points Rob. I encountered the same issues years ago when working on VMS and UNIX teams where scripts were heavily used. When junior developers joined the team and were learning VMS and UNIX shells, some people would simply give the juniors a list of scripts to run. Sure, useful in some instances, but when you’re mentoring a junior developer and want them to become skilled in using command shells, there’s no substitute for getting one’s hands on the actual shell commands; the commands “masked” by the scripts. I would insist that junior developers spend time understanding at least the basic shell commands before running all those nifty scripts. This would accelerate their learning of the shells and give them a quicker ability to write their own scripts and comprehend the internals of some of the scripts they were using. Yes, perspective is the key and knowing when it’s important to understand the “stuff” under the hood.

  • Maybe I missed something but how exactly do mashups stifle innovation? Because the man in the street can make one without formal training? Isn’t the tone of that argument somewhat elitist (a la Andrew Keen), that is if you don’t understand the technology to a deep level, you can never hope to achieve anything with it? That’s the take-away message I received anyway.

    I would argue that it’s not the resulting mashup that is the innovation, rather the ideas behind it such as open APIs, information streams like RSS and enabling/aggregating tools like Pipes. The potential is there, even if it isn’t always obvious in the application.

    I’ve responded to this on my own site if anyone is interested but I’m prepared to concede that I may well be on my own on this one.

  • Rob:

    I have to point out the obvious: you yourself have fallen into the trap of re-use and mashup, as related in your post. “Do as I say, and not as I do” usually only works on 3 year olds. I cross-posted on your piece to The Innovators Network is a non-profit dedicated to bringing technology to startups, small businesses, non-profits, venture capitalists and intellectual property experts. Please visit us and help grow our community!

    Best wishes for continued success,

    Anthony Kuhn
    Innovators Network