One of my favorite stories about [Steve Jobs] is about the moment when the Apple design team presented him with the first version of the iPod. He looked at it for a while, turned it over and over, weighed it in his hand and then said: “It’s too big.” The engineers protested that it was a miracle of state-of-the-art miniaturization – 1,000 songs packed into that tiny space.
Jobs walked over to the fish tank in the corner of his office and dropped the prototype into the water. He then pointed to the bubbles that floated from it to the surface and said: “That means there’s still some space in it. It’s too big.”[ref]Steve Jobs: Stanford commencement address, June 2005[/ref]
If this story were about anyone other than Steve Jobs, we’d all shake our heads and decry the executive’s insanity. Jobs, however, is another story entirely. His reputation is such that we’d expect exactly this kind of behavior and instead term it genius.
Exacting standards and outside-the-box thinking are a bit cliche when it comes to startups. Understanding technical limitations and knowing where to draw the line is the status quo when it comes to technology.
So how can technology startups continue to innovate?
Set Goals
Sometimes, innovation requires setting an impossible goal and working hard to reach it despite being told about its impossibility.
One of my past jobs was at a medical software company. Our flagship product was a Windows-based clinical management system. To stay relevant, we were focusing on patient care as well and wanted a web-based, cross-browser, cross-platform application patients could use to interface with their physicians.
The first run was, admittedly, limited.
We had a .Net website that worked great for viewing patient information. Unfortunately client charts were static JPEGs (rendered remotely by the desktop software) and the in-browser applet to download patient information from blood glucose meters was built in ActiveX. Things worked great, assuming you used specific versions of Internet Explorer and understood enough about charts to not care about dynamic filtering.
Our boss set two seemingly impossible goals: make the charts interactive, and make the meter download applet work on Mac.
A co-worker took the charts initiative and, over the period of a year, rebuilt the system from scratch using Java. Data was still pulled remotely from the desktop application but was rendered in real-time using Java, thus allowing both patients and physicians to filter data dynamically and re-render charts on demand.
The device download was a bit trickier.
Building the Impossible
My task was to build an in-browser application that allowed patients to download data from devices connected to their machine’s USB or serial ports. It had to work on Windows and Mac. It had to work on Internet Explorer, Google Chrome, Safari, and Firefox. It had to be built in such a way that we could deploy updates for new devices without requiring customers to update software on their machine (most of our customers were not tech savvy).
I argued a lot that the goal was an impossible one.
My boss didn’t care.
I beat my head against the wall for months before I found a solution. An open source library exists that allows for the easy cross-compilation of a browser plugin into both an ActiveX (Internet Explorer) and an NPAPI (everyone else) extension.
I used the FireBreath library to write a simple C++ app that exposed the API of a machine’s peripheral ports (namely USB and serial) to a custom API layer built in JavaScript. Visitors hitting the site would be prompted to install a simple plugin – once – that allowed us to interface with their blood glucose meter from within the browser.
As new meters came online, we simply scripted “drivers” for them in JavaScript and made them available on the site. The FireBreath plugin itself never needed to be updated since it merely passed data from point A to B.
Our boss’s exacting standards and insane product requests paid off.
Are You Nuts?
If you’re not trying to build the impossible, you’re not trying hard enough.
Innovation is born when you try to accomplish something everyone tells you cannot be done. If you, instead, acquiesce to the status quo you give up any power you once had to change the status quo.
Asking for the impossible gives us products and software we’ve never imagined. Had Jobs given up on the impossible, we wouldn’t have the iPhone, the iPad, the Macbook Air. Had my boss given up on the impossible, his customers would still be tied to IE only for website access.
Asking for the impossible will first brand you as insane. Refuse to give up on the impossible, and your title will transition from “insane” to “visionary.”
Look at how you approach projects today: are you shooting for the moon, or comfortable with the status quo?