The architects of our technology-driven world are programmers, coders, developers, software engineers – call them by your moniker of choice. But how do the people behind our apps actually refer to themselves – and has the ‘programmer’ of yesteryear become today’s ‘developer of things’?
Desktop to mobile to IoT
There was a time, some point just after the new millennium began, perhaps, when software application development professionals were forced to face a new reality: where once they may have considered themselves to be hardcore developers of ‘applications’, the rise of mobile and the popularization of the term ‘app’ meant that many had to rethink their place in the industry.
“I am a developer, therefore I am a mobile developer,” was the mantra that coders were encouraged to embrace.
Today we know that nobody really questions the reality of this proposition. That is to say, we know that almost all applications are accessed on mobile devices. Even corporate-level business control dashboards such as enterprise resource planning (ERP) systems come with a tablet version.
The phrases ‘mobile-first’ and ‘mobile-optimized’ really did start to mean something. Both expressions have stuck.
So, then, to the Internet of Things (IoT) and the ubiquity of connected devices in their infinite variety: are programmers ready to embrace the expression: “I am a developer, therefore I am an Internet of Things developer”?
Smarter than the average bear
Harsh Upreti is product manager of API products at code-testing specialist company SmartBear. He claims that the whole IT landscape is changing, thanks to IoT, not least the format, frequency and methodology of information data flows between devices. It’s becoming increasingly hard to define whether a device is a client or a server and peer-to-peer multicast communications are taking root.
“This trend [means that] real-time information on our smart-phones is now reaching the stage when each and every device is capable of providing real-time updates to each other within milliseconds,” said Upreti.
But all this connectivity creates new challenges. Upreti points out that lines are increasingly blurred between the capabilities of devices.
“This also means that the way developers write and testers test APIs has also changed. Earlier, for client and server tête-à-tête, HTTP was the go-to protocol along with standards like REST,” said Upret.
Traditional versus today
The issues here are very much IoT-specific. That is to say, the actual nature of data and the way it is transferred has changed with the IoT. Our information flows used to be slower, less time-stamp sensitive, less continuous, less geolocation-tagged and less in need of schema-categorization (so that we can place data with defined schema into defined database fields and so that we can clean up the data lake and know what piece of data should go where.)
“As a ‘traditional’ API developer or tester, you may choose to work at one or all layers and integrations. But it’s important for you to understand the key concepts of how each protocol works and the exact job it enables. Even if you work at the HTTP layer, it helps to have a context of how the IoT data has been generated. Also, recognize the importance of data like timestamps and format issues like scientific and mathematical notations, as the sensor data being transmitted could require high precision to the ninth or the tenth decimal place,” said SmartBear’s Upreti.
The IoT pipes are continuously flowing with information and critical decisions on the frequency of that data (as well as uploads to cloud) must now be made in code and tested appropriately. So the IoT has changed the coding landscape and, as of now, arguably, many developers will not be working to iron out the idiomatic intricacies of testing device communication nuances for the new layer that we are building here.
That time will come, very soon, but that time is not quite now, and not for every programmer/developer, as we stand in 2017.
For now, it’s a case of, “I am a developer, therefore I am an enterprise software developer with an innate appreciation for mobile-first, mobile-optimized application performance and interfaces, plus I realize that IoT applications and data will now start to impact the software I am building so we should look to architect these new streams in now as soon as possible.”
Yeah, we know – it’s not as catchy, but we’ll get there.