Applications for the Masses by the Masses: Why Engineers are an Endangered Species
Tools are going to provide more and more opportunity to create applications to people who aren’t engineers by abstracting increasing amounts of technical detail away from the creator. The purpose of tools is usually two-fold: To make things easier (usually by increasing abstraction) and to make the user more productive. Currently software developers use tools such as Eclipse or intelliJ which are very feature rich and provide access to all of the technical complexity that Java has to offer, but to use them effectively the user must go through quite a training curve and learn both the language and the tool. But tools do not have to be complex, especially when you consider something like MediaWiki, or Yahoo Pipes which allows the user take RSS feeds and filter or manipulate their output to create some completely new content, all without then need to learn a new programming language or complex tool. A trade-off exists in tools between abstraction and the number of problems it is capable of solving: the more abstract a tool is, the less the number of problems it can be capable of solving and vice versa. The takeaway form this point is that as the level of abstraction provided by tools steps up, the barrier of entry to developing software lowers and more people join in because it is just easier to do.
The last major point of the talk was about ‘High Technology’ and it’s comparison to ‘Technology for the Masses’. High tech is cutting edge and requires expertise to understand and fully make use of it. Tech for the masses focuses on use cases that are too small to be considered for development under a traditional model and are created by the users for the users. Minimum amounts of resource are required to get started and if something genuinely useful is created, more uses cases will be added over time. These two kinds of technology compliment each other very nicely because high technology expands the scope of what can be done and allows casual developers to build the small applications talked of earlier. Another important point is that it democratises the use and reach of technology by enabling others access to it. Technology for the masses drives the use of platforms and has the potential to create opportunities for monetization of simple applications (remember some facebook applications have over 1 million active users every week now). The two types of technology support each other in a symbiotic way:
High technology leads to creation of new platforms which create technology for the masses. Technology for the masses allows people to create new content and push the platform developers to use new high technology in a way that can enrich or even create further new platforms, and the cycle continues.
I realise that this has turned in to quite a long article now and I’ve tried to chop out some of the stuff that wasn’t so key to the talk but we’re done and it’s now time to review the three propositions that we started out with:
1. Software engineers are an endangered species
- They already are and always will be
2. High school and college students will take over the engineers jobs, and;
- Because engineers won't be needed to build everyday applications like they are building today
3. The engineers won't mind this happening
- Because rather than building the applications themselves, the engineers will be building platforms (meta-applications) so that 'the masses' can build applications.
To summarise, the application development model is opening up to a much broader audience and an exponentially larger number of applications can be built out now, not because there are exponentially more engineers but because engineers are building platforms that enable the masses to create applications. So software engineers of today will increasingly find themselves building platforms or platform-like software.
After the talk I had a few minutes to talk with Todd because I saw a number of similarities between the trend of allowing ‘the masses’ to create new content in a social setting and some projects that a large corporation I have worked for have undertaken. The drive at this particular company is to remove the more mundane tasks of managing content, creating simple forms and a host of other small utilities from the control of the IT department and give it to the business teams. Todd wasn’t’ surprised to hear this and said he sees what is happening in the social space as a trail-blazer for many other kinds of application development. Ultimately as executives become more aware of the ease of which simple applications are being created by a mass-user base, it seems natural that they will start to ask ‘why can’t I have my expensive engineers creating platforms for the rest of the business to then unleash their creativity on’? The truth is it has already started happening in places and I will be very surprised if demand in corporations doesn’t start to change in the direction the social platforms have gone.
Finally, I’d be really interested to hear your own thoughts on this topic because I only just read an article last week on The Register about how the end of the social networking bubble is nigh because analysis from comScore for the last quarter of 2007 showed a drop in the usage of sites facebook and MySpace. Even if it is a bubble that bursts, having heard this talk and compared it to the direction I’m seeing my company take with its IT projects, I think Todd Fast has a very valid point about this new development model and that we will see more of it happening in spaces other than social networking in future.