This is the second in a series of stories previewing sessions of importance to cloud application developers at...
the Cloud Expo conference, which takes place June 7 to 9, 2016, at the Javits Center in New York.
Anders Wallgren is the CTO at Electric Cloud, a San Jose, Calif., maker of DevOps continuous delivery automation software. His session, "Connected Teams, Connected Code and the Connected Device: The Challenges of IoT Software Delivery," is scheduled for Wednesday, June 8, at 8:30 a.m. In it, he looks at challenges related to the development of software for the Internet of Things (IoT), especially IoT firmware. He spoke with SearchCloudApplications about some of these issues.
How is IoT changing software development?
Anders Wallgren: IoT brings together three very different types of software that we once worked on separately: back-end server and database applications, IoT firmware embedded in the device, and mobile apps that interact with and control the device. These can't be separate anymore.
How do you unite these three dissimilar aspects into a single, cohesive system?
Wallgren: You need an end-to-end vision for what you want to do. For example, my Nest thermostat is in a location where it was unable to detect when I was home, so it would turn off the furnace. With updated IoT firmware, it now communicates with my phone and knows I'm home based on the phone's geolocation. We will see more IoT devices leveraging each other to make the overall ecosystem perform better.
You still have three development teams all using different tools, but it's the IoT firmware developers who are seeing the most change?
Wallgren: That's right. You need that unified, single vision, but you still have completely different technology stacks and developer skill sets. The firmware team is impacted the most by IoT. IoT firmware developers have to focus more about memory usage and deal with lifecycle issues they never faced before. The mobile apps development people probably know little about writing firmware, but they have different issues -- handling very frequent updates that may require automated testing and delivery. Continuous delivery has become the way that developers of embedded software do delivery. We see that with Electric Cloud customers that are working with network devices, phones and chipsets.
How must developers adapt to thrive in this environment?
Wallgren: The most important thing for any software organization is to understand its cycle types. What is the process and timeline from software check-in to the time that it goes live? Over the years, we tended to specialize -- quality assurance, operations [and] architectural groups. That led to silos and the bad old days of developers tossing software over the transom to the QA team and being rid of it. With today's rapid development cycles, five-year plans are completely obsolete.
Anders Wallgrenchief technical officer, Electric Cloud
Decades ago, software could run for years without an update. Today, for many businesses, it's daily. How does IT deal with that?
Wallgren: One answer is to transform into a DevOps organization, even though that is a daunting challenge. It's worth it. One study showed that high-performing DevOps organizations can be 10 times to 50 times better at developing, testing, deploying and delivering to customers frequently, and still have the ability to quickly roll back, if necessary. It is a competitive advantage that requires a change in mindset, and support at the grassroots and management levels. This is a lot easier for a greenfield company that has no legacy software.
Finally, what technical skills do developers need to have for IoT?
Wallgren: Microservices. Even for smaller companies and products, organizations are looking at microservices, so you can work on each one independently. That speeds and simplifies development. It also makes you freer to choose whichever tool you prefer for the job at hand. If Python is your thing, great. Java is fine, if you need a more stable platform. What we're seeing is languages settling into natural niches, with a better matchup of tool to task. We are seeing very quick adoption of [Apple's] Swift for mobile development in iOS.
An open source framework for delivering automotive firmware updates
A shining example: Light bulbs get a security-related firmware update
Can IoT medical devices ever be fully secure?