Internet of Things and Agile Development
The Rise of Internet of Things
From smart cities to smart card payments to smart traffic management systems, everything these days seemed to be empowered and connected with software. Truly, consumer and enterprise products have evolved from purely mechanical to the new realm of smart products and services.
These combined trends of connectivity and intelligence is the phenomenon called Internet of Things (IoT). In some ways, the IoT opens up a whole new ecosystem of connecting software controlled products with sensors to each other and across multiple distribution networks.
What is Internet of Things?
IoT is the ability to connect all those connected devices to the cloud where analytics can make sense of all the data they generate. This process enables a number of major benefits:
- The data can provide rapid operational performance feedback loop which yield detailed and complete insights into product performance and user experience
- The data can yield new functionality and value — Think of the real-time traffic congestion data your vehicle navigation system uses, derived from the GPS sensors in smartphones
In an IoT world, it has enabled products to be more interconnected through wireless connections such as Wi-Fi or Bluetooth which many products are no longer standalone devices, and the functionality and value they provide often depend on the wider operating system and networks. In addition, products have become more orchestrated to enable more closed loop iterative activity and information driving product revisions are increasing been derived from real-time environment.
Customers increasingly expect the product they buy to be painlessly upgraded throughout its life through new software delivered through the network. This can only intensify the increase in product complexity and the demands for faster delivery and higher quality to scale infrastructure growth and reliability.
Product development for IoT
The challenge for embedded software from what I observed is that it is highly dependent on the operating environment. The system in which it runs might be hardware specific, have real-time operating constraints, limited processing and or battery power.
These characteristics may change when the product hardware is changed. Hence, the solution is to apply agile driving product development to start delivering the development responsiveness that the IoT demands while managing complexity and improving quality and cycle times.
Applying Agile development to IoT
Agile development has potential benefits for a broad range of stakeholders and listed below are my proposed:
- Agile can help meet commercial objectives by delivering higher quality products faster at reduced costs
- At an operational and project management level, agile can help improve project management by increasing the predictability of delivery and the responsiveness of a development organisation to necessary change
- Agile can increase satisfaction by giving developers greater autonomy and direct measures of progress in their work and by reducing rework which allows more time to focus on innovation
Future of IoT and Agile Development
With the proliferation of more complex IoT products and services, I foresee the need for bigger development teams, integration with third party technology and supply chain management into an integrated operating system. Therefore, product developers and architects has to keep ahead of their competition with agile development to propel faster design and product development sprint cycles.
The multitude of connected devices and services will also translate to more information flows and organisations will need to understand the importance of agile development in delivering benefits from across all levels of organisation and implementing them with support from all those levels.