What To Keep In Mind When Developing IoT Apps
The business case and ease of use for the end user.
Join the DZone community and get the full member experience.Join For Free
To gather insights for DZone's 2016 Internet of Things (IoT) Research Guide, scheduled for release in June, 2016, we spoke to 18 executives, from 16 companies, who develop IoT devices or help clients do so.
Here's who we talked to:
Craig McNeil, Managing Director of IoT, Accenture | Prathap Dendi, General Manager, AppDynamics | Aaron Lint, Vice President of Research, Arxan | Suraj Kumar, General Manager, Digital as a Service, Axway | Rod McLane and Justin Ruiz, Marketing, Ayla Networks | Paul Hanson, CEO, bbotx, Inc. | Mikko Jarva, CTO, Comptel | Brad Bush, COO, and Jeanette Cajide, VP of Corporate Development, Dialexa | Scott Hilton, Executive Vice President Products, Dyn | Anders Wallgren, CTO, Electric Cloud | Mathieu Baissac, Vice President Product Manager, Flexera | Darren Guccione, CEO, Keeper Security | Tony Paine, CEO, Kepware | Johan den Haan, CTO, Mendix | Joan Wrabetz, CTO, Quali | Tom Hunt, CEO, Windspring
Here’s what they told us when we asked, “What are the keys for developers to consider when developing a viable IoT device?”
- Be concerned with users' ability to understand it. It they don't understand it, they won't use it and all your work will be for naught.
- Have an automated, repeatable process of development, testing, correction, testing and delivery.
- Scalability – have a plan to manage naming and configuration from five to 500 to 5,000 to 5,000,000 users. While security isn’t the first item on the agenda, it needs to be addressed. Design applications must resilient to outages and slowdowns, the vagaries of performance and availability of the internet. Provide a system level view.
- Ensure the password is no fewer than eight characters and a combination of letters, numbers and characters. Allow users to turn on two-factor authentication. There are no security mandates. It’s a free for all right now. We need security mandates and certifications.
- Every situation is different. Put sensors in everything. You cannot possibly foresee the potential benefits you’ll be able to provide by collecting the data and improving the client or end user’s experience.
- API management and analytics are the underlying core technologies that enable business value and real world solutions for IoT. Devices need to be secure, integrated with services and the data from the devices analyzed, all of this is driven by API management and analytics.
- Big data platform devices have to focus on use cases. We need more and different use cases, practical examples of how IoT and big data are solving real business problems and providing ROI. There’s a lack of innovation and use cases. We need to bring a more holistic vision and willingness to invest to the c-suite.
- Keep up with where the business of IoT is going with IDC. Internal management needs to be able to keep track of what customers have the rights to. Backend components give customers the ability to configure and manage these things. Get into wage and consumption licenses (i.e., software).
- Mix of software programming with a high comfort level with hardware. Electrical and computing engineers make the be IoT application developers because of their perspective.
- Have sound development fundamentals. Know the intention of the device, what other devices it will interact with, and how will people use the information from the device. Know the goal. Take a holistic view of the potential uses of the solutions.
- Need to have embedded software engineers with UX, objective C and Java developers. Understand the IoT platform and the developer codebase. The actual devices need embedded engineers. We bought Symbian for their 1,000 engineers. Also understand attributes of what the device will do. Ask if it needs to be industrially secure, what security is needed, communication protocols, computing cycles, storage, and analytics.
- API and IP addresses are similar to apps and mobile embedded systems. Sensors talking to sensors and databases. Software is moving to microservices which is how to develop for sensor networks and big data integration. Over time we will have different file systems and storage.
- Hybrid networking communication and C-style programming. Everything old is new again. Developers are not as familiar spotting familiar things like overflows, retargeting, metering.
- Companies we are working with need engineers with a broad system view to solve problems (network perspective). Understand how data flows between, across devices, and to the cloud. We’re going from stand alone to end-to-end systems. More breadth is required.
- Small footprint devices are growing in importance. Write efficient code with small resource utilization. We do this with C and C++ which results in small overhead. IoT is a good blend of writing embedded software. Development changes in IoT design – 1) connected system to the physical and backend to meet end-to-end product requirements. What’s the data plan, what security is needed, what are the patch policies? Test and quality side are slightly different relying on meters for the test strategist. Think about how to set up the testing infrastructure, how to get hardware and software teams to start testing earlier. It’s been done in the past and we need to scale up to reuse best practices.
- Security, simplicity and clarity. If you don’t build something the shop foreman can use, it’s just SCADA (remote monitoring and control).
- Attention to detail. DevOps, continuous delivery, Agile, quality assurance, operations, and developers are all different but need to pay attention to development, testing, and breaking code into microservices. Get better at your craft, focus on your craft, always be learning.
- Need for good architecture that addresses security, naming, and scaling. Develop good practices around telemetry and the availability of the network. Apps need to be resilient to the vagaries of the internet. Provide telemetry to enable network operations to provide better insight.
- 1) Think about the consumer problem you are trying to solve. 2) Understand that IoT is going to IoE (internet of experience). Plenty of platforms are already out there. Think about how to build an experience for your user. Have a broader perspective. Know machine learning and data science. The complexity of what you build will be part of machine learning models. 3) New interaction patterns with your users where notification becomes more interactive and proactive.
- Application and data integration skills are key to development of IoT systems and applications. Be it M2M interaction or device to business service or application interaction, integration is a key skill. Mobile application development is critical as most IoT applications will be deployed on mobile devices such as phones, tablets wearables, and more.
- Think about how to make devices versus power uses to fit the use case. Understand the business problem and the use case. Know that IoT, the cloud, and big data will all will become more integrated more connected.
What do you think developers need to keep in mind when developing IoT devices and applications?
Opinions expressed by DZone contributors are their own.