I’ve been thinking lately about where software has gone in the last few years, and where it might go in the next. I tried to identify some major trends and transitions, and I wrote them down as a matter of habit. If you’re interested, here they are.
Stand-alone to social: Applications are no longer solitary experiences (think Word or Excel). Software no longer serves just a single purpose, it is also a collaboration space around that function.
Pretty Much done
Desktop centered to mobile centered, with tablets as something of a grey area there. I think it’s a given now that most software targets mobile platforms first and foremost. In fact, I think I’d jump through hoops to figure out a mobile interface now before resorting to one that requires a fat client. Even a lot of heavy HTML5 mobile sites are too slow, but the devices are catching up. Premise-based to cloud-based: Most software has at least a cloud component now. Most mobile apps I install on my phone have their guts hosted in the cloud, even if the UI runs natively on the phone itself. Enterprises still lag here because of security concerns, but I think they will eventually cave. I actually predict a sort of hybrid enterprise, simply because there are so many legacy apps that can’t be easily converted.
Still In Progress
Tailored information: Software experiences are being tailored to the user’s tastes and profiles. Pandora does this extremely well, for example. Information feeds are routinely customized using user-provided information such as social graphs, user profiles, pick lists, etc. Real-time updates: As large-scale, distributed information systems become accessible to developers (see Twitter), real-time information is becoming a core feature of more and more software. The popularity of native mobile apps makes interface robustness less of an issue, but in any case Websockets are almost ready for prime-time. Massive amounts of data: As the number of devices connected to the Net balloons along with the number of users, the data produced every day grows exponentially faster. That data is slowly be harnessed, and the platforms needed to crunch it–such as cloud clusters and Big Data engines–are finally maturing.
All-purpose to specific: The all purpose development tools of yesterday are slowly being replaced by more complex solutions that provide finer-grained control. For example, relational databases are a kind of all-purpose data storage and lookup tool. NoSQL requires much more attention to detail and planning ahead, as you must finely tune the schema to your application. Relational databases do not require this, the underlying engine can be adapted to whatever it is you need to do. Data visualization libraries are another area where very specialized tools provide greatly improved functionality from the previous all-purpose charting and graphing tools. Abstract to tactile: user interaction is shifting away from abstracted devices such as keyboards and mice and toward analogies based on the real world. Gestures, body movement and interactive environments are all artifacts of this. Touch-based hardware is the first wave of this and has been incredibly popular, but I can’t wait until I have my mobile Kinect camera allowing me to NOT touch my tiny little phone screen. Mining the wisdom of crowds: The big data part will finally allow the wisdom of crowds to be harnessed. Or, should I say, the sentiment of crowds–I have my doubts about the theory of crowds being correct, technically. But the sentiment of crowds is definitely useful–supposedly people are making bank mining Twitter for stock predictions etc. And… people do tend to think alike, so it’s relatively easy to predict how people will react to things using all of this data (no matter how much of a special unique individual I like to think I am, there is a cluster of lots of people who are extremely similar). Manual user input transitioning to automated information discovery: Today’s software requires a lot of user input to divine things like preferences and tastes, this will shift to automated discovery using data provided by public and private information feeds (like Twitter feeds or email histories). Someday, Pandora will be able to create stations for you simply by looking at your feeds.
And here’s a bonus I’ve been thinking about lately:
Legal implications of data and data pedigree: As governments and corporations increasingly use data to automate information discovery which is used to fuel policy and law enforcement decisions, data accuracy and sourcing will be extremely critical. Wrong information could and probably will result in mistaken identities, beauracratic nightmares, erroneous arrests, and could very well be a matter of life and death (thinking of drone attacks on suspected terrorist hideouts, for example). Data pedigree and history will become very important. I suspect there will regulations around this requiring some sort of data verification mechanism or some other nonsense.
Am I wrong about anything? Have I missed anything?