Developers love to obsess over minutia. It's a trait that makes us good at what we do. Unfortunately, the same ability that allows us to sit stationary for hours while wrestling with detailed applications of logic can also mean that bigger pictures escape us. Any manager seeking business case justification for work that a programmer insists "would be cool" knows what I'm talking about.
Here are three 'big-picture' thought cases. They are, by no means, a checklist for "future-proofing" anything. However, they serve as exercises for software discussion beyond just bug counts and shipping dates.
The Future is Malleable and On Demand (because anything less will not be tolerated)
My son will turn three next month. It has been fascinating watching as his mind develops expectations of 'normal'. In the process he absolutely, positively, doesn't understand broadcast TV. Not being able to pause, resume, or fast-forward is strange. The fact that a show isn't on when he has time to watch it is bizarre. He doesn't have 'TV Favorites' (PBS's excellent Word Girl) and 'Web Favorites' (Ask a Ninja) — its all just content. And if he sees a character that in other environments he can interact with - for example, Mario — he expects to be able to interact with it in all spaces.
It's been said before but its worth repeating: my parents generation (and a good chunk of my generation) watch TV. My son's generation will make TV (and podcasts, and blogs, and mashups, etc). Is your application on-demand or on a schedule? Is your application read/write or read only?
The old UPS tagline "Moving at the Speed of Business" is an oxymoron
Large companies are known for their bureaucracies. A dearth of process is to provide oversight and accountability in the absence of trust and ensure that the organization has the codifiable knowledge to continue if a person leaves. But it also means that a lot of people spend a lot of their time telling a lot of other people what they all ready know and how they all ready knew it (a lot).
If I see a cultural meme blooming I want to be able to form a business around it not next year, not next month, but the next day. We're so close: between domain registration, unzip 'n flip software like Wordpress, 3rd party fulfillment, web services like Google Apps for document storage, email, and collaboration, Blinksale for invoicing, Toggl for time tracking, Campaign Monitor for communication, and Google Analytics for metrics there's no reason why I shouldn't be able to scaffold an enterprise overnight. And, because of the low sunk costs, close up shop and try something else just as quickly - business stability isn't about how much concrete you lay over sand but how quickly you can find bedrock.
Despite all the wonderful speed advantages these services provide they become mute when it becomes necessary to interface with those 'moving at the speed of business': customer budget cycles that push any new purchases out next quarter (or, more likely, new year), merchant account reviews, government filings for the right to exist, trademark research and registration, etc. Even the 2-3 days that it takes to transfer funds from PayPal to a conventional bank blow my mind — they aren't lugging bags of good doubloons from one building to another; they're flipping bits in an ephemeral ledger. Electrons travel at the speed of light — so should the connections between these institutions. Our inability to react in real time to the changing world around us is a disadvantage.
Does you application move at the speed of an idea or at the speed of convention? Are there ways to bypass waiting on other systems if there is an expected result 99% of the time?
Future competitive advantage will be largely based upon the speed with which we can make sense of stuff
My childhood exists in my memories and assorted pictures at my parent's house in the wilds of South Dakota. My son's childhood is played out in multi-media narratives on a number of photo and video sharing services for dozens of family and friends in near real time (carefully monitored and privacy protected, of course). We are in an exploding age of content made possible by cheap storage, cheap capture, and cheap distribution. The ability to find what we want when we want it is where the value lies. Search is tremendously important and really, Google's $600 a share price for their market dominance is a bargain.
But search is only half the battle - comprehending the increasing amount of available data is even more important. We can have fifty-seven different types of mushrooms available at our local grocery store but without knowing how to cook them they're pretty useless.
Does you application help create meaning? Is it aiding people to draw conclusions? Or does it just spew forth pretty charts because it makes the user look busy?
Originally published on the Vox Pop Design Blog, November 29th, 2007.