EB: IoT is taking off like crazy – what changes have you seen from the developer community in response to this take-off?
LK: Increasingly, with the advent of the Internet of Things (IoT), developers are seeing the opportunity to connect devices and sensors, in order to derive intelligence and competitive advantages from the data these connections generate. The devices, whether it is dev boards, sensors, wearables or smart phones, are all producing vast amounts of data by the millisecond, and there has been an upsurge of interest within the developer community around moulding this data into a format that is useful. Being able to join these data streams together to create real time insights is an exciting prospect.
What is striking is seeing this new energy and excitement coming from the developer community, as they have a whole new set of parameters to build within, to create scenarios that fundamentally change end user experiences. We are now seeing more traditional developers within enterprises exploring new innovations that they hadn’t previously – some of them looking to experiment on the side, and create their own new business ventures in response to the opportunities within this space.
Many have been excited by the possibility of an interconnected world of IoT, and it’s true that it’s still early days with regards to developing, but what’s exciting is that we’re just at the beginning of what is likely to be a challenging journey, and one that is full of possibilities for new innovators.
EB: As the IoT creates different demands and pressures, how has the developer skill set changed and evolved?
LK: IoT requires that devs add a whole new set of dimensions to their code and the skills required need more hardware understanding. Devs are increasingly needing to think not just about their own piece of software, but rather how it fits within the larger context of an IoT service and solution, to ensure it incorporates security and data services. Devs need to be able to envision the full end to end system and be able to identify entry points, complex comms scenarios and most importantly what to do with their data.
When it comes to writing concise and efficient code, there are new skills around analysis and visualisation of data that need to be adopted, adding a new dimension to the traditional developer role, from hardware developer to data scientist, and all the skills in between. Developers need to have more than just traditional software development skills, and IoT offers a whole new opportunity to programme hardware with embedded software.
EB: What would you say are the biggest challenges facing IoT developers today?
LK: Firstly, I see the biggest challenges here as: field gateway implementation i.e. it’s difficult to write efficient and robust software for such small devices, as high level programming languages/platforms are arguably not appropriate for such devices. Secondly, writing software for small resourced devices like sensors or field gateways requires the programs to be very memory efficient. The programs also need to be as robust as the devices will run for many months without being reset. Over such a long execution time, errors in programming can incur excessive memory usage, or programs can encounter edge case race conditions: when a sequence of commands do not execute in the order the developer intended them to, this occurs in multi-threaded or distributed systems.
Either of these scenarios, and many more, can cause the program to crash/hang. As the device is typically remote it is very hard to reset it. Therefore, the software needs to be written well, tested well, and the technology platform it is built on needs to perform well.
Liam Kelly, GM Developer Experience, Microsoft UK
EB: What would you say is the ‘must-have’ skill for all aspiring IoT developers?
LK: Today’s developers need to consider the end customer experience as a priority. They need to be able to deliver something that is personal, which maximises the capabilities of the device connectivity, and provides data to offer insights about the things, and people, they are connected to.
Developers should also aim to focus on one project that will deliver an immediate result, which they can learn from and build on again and again. It’s critical to build a flexible system that can scale quickly, and developers need to be prepared to build scalable code and architecture, so that moving from a handful of connected devices to millions is achievable.
EB: What tools do you think will be vital to the IoT developer?
LK: Cloud platform services and solutions that integrate any device, platform, language, communications protocols and data type will be key. Data services that enable you to gain quick insights into your "things" and build automated intelligent actions via machine learning and advanced analytics are also vital to the IoT developer. Data visualisation tools will also be helpful, to enable your key stakeholders to see what is happening, gain insights, and make decisions about your business in an agile way.
Find out what Liam thinks about open source, security, IoT standards and interoperability on the next page.
This article is from the CBROnline archive: some formatting and images may not be present.