Blogs

The Full Stack is getting higher for developers with IoT

September 5, 2016

Posted by: George Malim

Ian Hughes, 451 Research

Ian Hughes, an IoT Analyst at 451 Research discusses the complexities faced by software developers in an increasingly fractured technical landscape.

The 1980s programmer/developer

I started programming, self-taught through magazine listings and experimentation in the 1980’s, at home on a ZX81, later at school and university. Companies hired and trained programmers, based on small sets of preferred languages, COBOL, PL/1 and C. Design methodologies evolved to try and allow for specification of software projects at a higher architectural level. User interfaces were few and far between, mostly created in panel editors left for junior developers to put onto the green screen monitors.

The 1990s programmer/developer

We saw a drive towards object orientated languages and event processing systems. Legacy languages were still needed but Smalltalk and C++, with their added engineering rigor, became fashionable in the mid 90’s. The desktop personal computer arrived and started to bring windowed systems, richer user interfaces, which divided the profession into ‘client’ or ‘server’ developers. Programmers were still programmers though, learning the methodologies of Rumbaugh, Booch, Jacobson et al. Engineering relied on more frameworks, middleware and class libraries.

The 2000s programmer/developer

The web disrupted the programming industry status quo. Firstly, with a new set of protocols, markup languages, browser plugins and server interactions and the number of potential users ramped up from hundreds to millions. Very little tool support existed to deal with how to present a Web page, the interactions on it or connecting to a backend. The user interfaces became critical, they provided a brand touchpoint, required graphic and audio design skills, information design and blending with the traditional technical side of projects. Secondly the Web provided a vehicle for many more people to engage with software engineering and to share ideas. The magazine listings of my youth were now amplified as living projects with open source collaborations enabling lots and lots of projects, prerequisites and constant change.

The 2010s programmer/developer

The wild west of the web gradually started to be tamed and engineering rigor returned with the advent of cloud hosting. Companies not looking for programmers but for Full Stack developers. People who know a little about a lot of parts. The Full Stack trend began with the Web, needing to know HTML, CSS, PHP, Java, JavaScript, HTTP protocols, MySQL/ NoSQL etc. combined with library management systems, security requirements, testing and also be able to create for mobile platforms, touch interfaces and hooking up to Facebook, Twitter and any other social media platform. Agile development added yet more things to be expert in. Forever patching runtimes bringing its own challenges too, no more launch and forget.

Today’s programmer/developer

The Internet of Things (IoT) is making that Full Stack a lot higher and more difficult to balance. IoT brings physical computing to the mix. If any developer thinks users mess up their wonderful pristine development, wait until devices being impacted by temperature, sunlight, atmospheric conditions and water start delivering constant streams of data across a multitude of communication mechanisms to server-less computing based cloud processes. Each of the millions of devices or products are remote, together they provide a large attack surface for hacker intrusion. Early IoT was about simple sensors and actuators, now IoT end points are rich compute platforms too, they connect to larger edge servers that collate and gather data for the backhaul to a cloud server. Understanding what function needs to be deployed where, in a complex distributed feedback loop, is difficult. Developers have to consider the new system components such as machine learning and self-organising interactions of Blockchain between devices. User interfaces alter dramatically with Virtual and Augmented Reality (VR & AR) and new types of device to interact with. Organisational silos are crossed as data from one IoT system feeds an Artificial Intelligence (AI) from another. Operation Technology departments start to cross over with Information Technology groups. IoT blurs many boundaries.

Future programmers/developers

At 451 Research we cover and keep up with the multitude platforms and protocols that make up the IoT industry. There is an industry gap for methodologies, and then design tools, to evolve with common patterns and use cases. Starter kits of hardware with backend connections are common appealing to Full Stack developers in the enterprise. Proof of concepts rush to plug things in, which is the IoT expression of the Minimal Viable Product.

It may sound all doom, gloom and scarily confusing, but as I tell the next generation when I give talks, there is huge opportunity to flourish and build on the skills and aspirations they have. Full Stack is an appreciation of breadth and a willingness to go with the flow, to adapt. IoT is a great enabler for those who may not be equipped to be a traditional programmer. Equally those with that skill can find intricate niches and create wonderful things.