Saturday, 16 May 2015

Programmable Society

Computers have always intrigued and fascinated me. Since an early age I have enjoyed pulling them apart and putting them back together once more. I also enjoy programming them which is now what I do for a living. If you have kids then I recommend you introduce them to programming. Building software is a great career option and will get even better as the century goes on. We are entering a new phase in computers; the programmable society. Business = Data + Algorithms. Not just for software companies but all business will depend on this concept. Software will continue to be everywhere and embedded in every sector and every company. If you can program there are literally no limits as to where you can work.

So what does it mean to become a Software Developer? It potentially involves working from home, flexible hours, freebies (drinks, snacks, phones and so on), lots of varied jobs to choose from, always learning lots of new things, working in different sectors and interesting business applications, working with smart people and many other benefits. All the perks are only going to get better. Software Developers are going to be the new rock stars of business. Salaries have been rising very sharply, not only due to the Governments monetary policies but down to the fact that shortages are already becoming more pronounced all around the Globe. All the time new applications for software take root, so you need more people. Existing applications require to be maintained and eventually re-written, requiring yet more people.

If we consider where computers have come in the past 60 years it is truly remarkable. A true example of anarchy in action, chaos theory. Back then computers could be counted on one hand and were in the hands of large corporations or Governments. Most people didn't interact with them at all. Applications were simple and few. Since then we have had the microchip revolution with Moores law enabling processing power in peoples pockets that is more powerful then bygone supercomputers. If ours cars had dropped in price as dramatically as computers we could pick up our car from the showroom for under a dollar. We all use computers everyday, we run our lives on them. Holidays, TV, our Social lives, photo collections, travel directions, our nutrition and health. Buying our homes, our cars and our coffee makers - its a booming industry. Devices are now obtained for pittance meaning we all have become used to owning several of them each. Our phones are computing marvels, computers are in our glasses, our cars, our watches, our TVs, our heating systems; there are no limits and we are only getting started. Soon they will be so small and embedded in our contact lenses or skin, we won't even see them.

Now think about business today, think about your own company you work for? Now think does it rely on computers? Not only do all our companies now rely on computers but new businesses are forming that are really turning old business on its head. Uber in essence offers a taxi service. Only they don't own any cars, drivers or call centers. Their business model is data and algorithms - its software. A multi-billion dollar company has little staff, little physical assets, they just give consumers and small entrepreneurs a service that enables them to hook up by knowing which drivers are where and which fare payers need a lift.

Facebook is essentially a content publishing service. People put content up and share it with others. Facebook own no content, no writers, little physical assets and little staff, yet are worth hundreds of billions of dollars. Again their business is nothing more than data and algorithms. Airbnb has a similar story and many other recent startups - too many to name and they are growing at an ever increasing rate. We will witness exponential growth and innovation in this sector, there are no limits. The playing field in the software industry keeps getting flatter meaning startups are increasingly done by no more than kids with an idea and bags of enthusiasm.

I recently attended the AWS london conference as part of my work whereby Amazon talk about their on demand compute services (the keynote can be found here). As part of the keynote there was a talk from a 20 something year old on how he and his friends started gosquared, a company that provides analysis on how users use a companies application (again using nothing more than data and algorithms). As was noted in the past they would have needed at least 5-10 million dollars just to get this off the ground from an operations point of view. They were 14 years old at the time who would have never got access to money like that. AWS enabled them to use a platform based on usage but as they grew, could scale to meet their needs allowing them to focus on their core application. This low cost to startup is seen time and again with dynamic startups and its getting cheaper all the time. Many of the software used - databases, source control, message technology - all of it is free to use. The heavy lifting software is now all free, allowing great products to be created. The only cost to start a software company these days is time. Hardware will be handled by the experts, be that Google, Amazon or some other company who are able to squeeze every watt of energy out their appliances to maximize efficiency. More people will contribute more and more to open source software making the heavy lifting frameworks with no upfront costs allowing people to focus on the business logic of their applications.

So what happens if a company starts and needs capital? Not only is the industry full of Angel Investors and Venture Capitalists but there now exists crowd-funding and soon micro-lending. People are raising money from hundreds of thousands of users who want some application to meet their needs. Once we have micro-lending with crypto-currencies this is going to get even easier. People will be able to bootstrap company's with millions of people contributing, allowing people with similar interests but very different geographic locations to fund such endeavors. We will all have the capability to be an Venture Capitalist. That is a truly revolutionary concept.

We have moved from the industrial economy and then to the information economy. Now we are transitioning to the ideas economy, one where people become enabled to be more creative and pursue their own interests. The vast decentralisation will also bring about hypergrowth, technology will keep getting ever more sophisticated and more pervasive all around our lives. Take Ubers business model of allowing anyone to become a taxi driver. Softwares only limit is the creativity of the human mind. Ubers model will constantly evolve over decades requiring more and more software to be maintained and new code to be written. Currently the system uses human drivers but eventually it will be self driving cars; taxi-bots. Then you will need algorithms to mange these cars to obtain optimum efficiency. The cars will become self autonomous, fixing themselves based on the fares they obtain. There will be less need for car parking in busy urban areas as people will just use cars as on demand services as the costs are slashed more and more. Smart traffic systems will need computers to determine how many cars are on the road at certain times, dynamically changing traffic light systems for example. In fact at that point the cars will talk to each other determining how best to optimise traffic flow, yet more data and algorithms. On top of all this there will be my kids generations ideas and their kids; all will come up with some brilliant novel ideas and thus require more and more software. My generation is more dynamic and entrepreneurial than my parents who had unions and so on. My kids will be yet more dynamic with self employment continuing to explode.

Software is after everyones jobs its not just taxi drivers or other blue collar jobs, white collar jobs will also come under attack. Smart contracts will replace many legal and financial positions, offering the ability to have programs uphold legal contracts. Smart Property will mean your house, your car will all be held on decentralised ledgers, again with software determining the legal status of them.The Internet of Things is only just starting and soon your fridge will be smart enough to order your groceries. Cryto-currencies will completely disrupt the finance sector and will remove a whole host of jobs.

An entrepreneurial revolution is underway, our children and grandchildren will be far more dynamic and comfortable with risk then we ever were. Software will play a prominent role in this and encourage many to go it alone. Formal qualifications will become less relevant as the Century moves on. University Degrees are continually being watered down, its only a matter of time until a generation starts to abandon them. It will not be what you know but what can you do that matters. People will pursue things that interest them like never before in history; lines between work and play will become ever more blurred and in a good way. Already we have seen the abandonment of the 9-5 culture in Software but some companies are now taking it to the next logical level. Netflix now mandates no holiday to its employees. Instead they can take holiday whenever they want and for however long they wish, in fact they encourage it. Their culture is not what hours you put in, but what value you actually produce. They run regular hackathons where they allow employees to do what they want, even if its not related to their business, encouraging creative thinking and providing a stimulating environment to attract the best and brightest. Middle managers are virtually no where to be seen, instead engineers are encouraged to be self starters and to have the enthusiasm to deliver autonomously. Process is also looked down on, instead trusting people to do the right thing and put them in power. This won't be right for every company right now but will become more prominent over the decades especially as younger, more dynamic people enter the field.

Every sector will be run by computers. Your recruitment will be done every more by computers and its only a matter of time until someone creates an automated system. Finance and legal will fall to algorithms. Anything manual is due to be automated. Already MacDonalds are looking to replace people with automated robots that can make and serve burgers. Our road networks will be run by computers. Our microwaves, TVs, Fridges, watches, phones and appliances will become computerised ever more. We will organise our lives ever more with the help of computer, Siri and Google Now are just the early prototypes. Computers will recommend our entertainment to consume be that music or films or events. It will tell us great holidays we could take, who to be friends with and who to marry and spend our lives with. It will continue to help us raise our children, to help communities come together more. It will help us to all keep in touch, I know my parents both love the fact they can see pictures of their Grandchildren grow up even though they are hundreds of miles away and we are just getting started. The Internet is the greatest educational resource we could have, if I never see another innovation I'm just elated that I got to live in a time of its existence. When my kids ask what we did before there was the Internet I will say "We got bored, information was scarce and as kids we would argue over trivial facts when now all you have to do is talk to your phone which gives you the information". You health will become run by software. Software will exist that enables custom organs, limbs, tailored to your individual needs. Tools to predict future events will become ever more sophisticated enabling elections to be called, to deal with future consumer trends, what people may want to buy or information they may wish to consume; we are still in the early game for all of this.

So if you are a parent and you are reading this then get your kids into code. Tell them how important software will be in their lives. If they end up showing no interest then at least they were exposed to it, programming is not for everyone. Throughout my life in IT I have been told I shouldn't bother. "They are going to automate software", "India, China or Eastern Europe will take all your jobs", "We will eventually make all the applications we need" - I've heard all the excuses over 15 years now and none have come to pass. My salary over the past 10 years since I have entered the field has continued to rise, Over this period I have averaged 30% plus pay rises each year by moving jobs, despite the fact for many workers pay has stalled. In fact for the majority of those years the country has been either close to, or in recession. I haven't even done this by following a corporate path, climbing the ladder or crossing the 't's and dotting the 'i's, I never could I'm too free minded to bother. I've essentially kept the same job title over that time and been knee deep in the code. I don't talk about code I write it. We all won't need to code. We will still have sales people, HR, Creative Marketing and a whole host of jobs that will be hard to automate - such as the guys who fit my tires to my car recently (until they come up with a dexterous enough robot). But we should all code more. As a society we will collectively have to write a whole lot more code over the course of the 21st Century.