We know that for some people hardware devices plus Agile just doesn’t sum up. Agile may even feel a bit odd for hardware development, with all the tools and processes behind it. The problem is, hardware is often deprived of iterative development and therefore its release may be overwhelmingly stressful (and exciting for sure) for the company.
The solution for this problem of lack of agility is IoT.
Let’s be honest: in a modern world, for most IT projects, classic waterfall methodologies are simply too obsolete. There are actually multiple reasons behind this. Today's market requires flexibility, testing, and ongoing feedback culture that traditional frameworks do not offer.
On the other hand, we’ve got hardware-featured projects. It has always been an issue to implement all of the good (and not so old) Agile rules into them no matter if you use Scrum, Kanban, Extreme Programming or any other framework. Even though Kanban was originally introduced as manufacturing management tool (it was invited by Taiichi Ohno of Toyota), we need to realize that building and IoT hardware is way different from manufacturing parts or cars. It is somewhere in between of this and the way software is being made these days so how to make it an Agile IoT development?
(By the way, if you’re into IoT and would like to hear from us about new projects and updates from IoT world, just leave your email below.)
While a project is still in its prototyping phase, lying around on developers' desks, it doesn’t seem to differ a lot from a regular software-only job (apart of ordering new hardware revisions which may take a bit of time for example).
The problem occurs once your work is finished. The product leaves the lab, reaches the factory, retail and the customers, and… That’s there the “not-so-fun part” begins.
Once hardware device is physically delivered to the customer, it gets extremely difficult to fix any potential issues in its software (firmware). Not everyone has time or knowledge how to connect the gear to their computer, download a package from the internet and perform the upgrade. Not everyone wants to do it. This is strongly against the spirit of continuous development and adaptiveness to users' feedback, which is recognized as grounds of agile product management.
IoT technologies brought a new technological possibility of performing. It’s so-called Over The Air deployment to hardware devices. It means that any IoT hardware can be easily flashed with new code remotely with no need for users or serviceman to be engaged. How great is that?
Multiple existing platforms support OTA technology, including most popular ones like ESP8266, Raspberry Pi and all Particle’s modules. The last are the only ones to provide this feature out of the box, without additional effort. Wojtek Siudzinski co-founder of Issue Stand, currently Particle’s senior software engineer paid our attention by describing it on "Talks by Intel, Particle and Nordic Semiconductor” event by HwPioneers, which we proudly took part in.
Since every IoT hardware is connected to the world wide network (usually the Internet) it gets much easier go interact with users remotely, providing better level of service and gathering their feedback.
Find blow the 5 examples how the IoT technology and its advantages translate into improvement in existing hardware businesses, make products more robust and user-friendly without big engineering effort.
Hardware producers often struggle with time and resource consuming testing procedures. IoT technologies with the ability to program devices over the air, on long distances will not only make manufacturers more confident when releasing their devices. It most of all allows them to instantly fix all reported bugs in all their units around the world, reducing costs of maintenance services drastically.
Not only it will reduce the costs. It also helps to minimize the risk of reducing trustworthiness of their brand or giving it a bad reputation. Consumers will always appreciate a quick answer for their needs and issues.
Since software companies started to deliver their products iteratively, it became cheaper, more predictable and more dynamic process. Developers prefer to work with smaller chunks of works. Managers like to see continuously deployed improvements. Finally, users love to be given new features every month or two.
As far as this approach wouldn't be possible in the hardware itself, software that comes with it is now a completely different story. Advantages brought by an ability to easily connect devices to the internet will let your development team improve embedded software over time with more and more features.
It improves creditability of the brand, speeds up the development process and brings new business opportunities. Multiple software licenses are based on renewable subscriptions, giving access to advanced features and new ones coming into the product over following iterations.
Now it is also possible in IoT hardware, as users will gain direct profit from the product being continuously upgraded and corrected.
It's very hard to predict how users will interact with a product. No matter if it's a complex, very specific industrial standard device, or consumer-end simple and easy to use item. It's almost impossible to predict all the ways people will use it and all issues they may have for example navigating through the interface.
Example metrics to track may be:
Those and many more simple methods of tracking user activities may be adapted from what is being done in web applications and help to improve User Experience of the product over following iterations (see point 2).
*The more business and engineering parties know about their users, the better products can be created which directly reflects in brand's reputation on the market.
Before any project is released for customers, it requires swift and efficient development process. How to help your QA teams to quickly identify any issues? By having a test bench with the freshest version of software being always flashed into the hardware. Then, provided an instant feedback, software engineers can correct this problem easily still remembering the structure of the faulty task.
staging environment delivery is often described as an essential part of Agile development process. It has been proven that it brings both productivity and software's quality to the next level. Agile IoT can help developers to easily set automated deployment tools and ensure that QA team is always testing the newest software version.
Last but not the least is customer live support. Thankfully, IoT is bringing all devices to live, real-time internet interaction. Therefore support teams will be able to do much more than ever before.
Imagine that: A guy (let’s call him John) buys a brand new dishwasher. After one week it stops working and he sees a red light on his device. As he lost the manuals, John calls customer support to find out what’s going on. Luckily, he doesn’t need to describe his issue as the dishwasher sends all relevant information to the cloud and a consultant can quickly define the problem and suggest a suitable solution. Moreover, John can control his expenses and water usage and gets notified every time he needs to open the water valve.
So far a lot of time on both support specialists and customer-end has been wasted on asking and answering multiple questions, getting lost in the complex interface, devices not being plugged into the power supply or simply the translation loss. Now, in the age of IoT, every support engineer will be able to directly monitor a state of the problematic device, set it to different work mode, debug and even upgrade it's firmware if needed.
These advantage of Agile IoT approach may help to bring significant savings in the area of user support and service. Accompanied by remote bug fixing and iterative development ability becomes a powerful feature to help consumer support deliver a much better quality of service.
In most cases “third wave of the internet” (how IoT is being called) will not redefine your business forcing you to rebuild the company from scratch. However, it offers multiple new possibilities to improve its quality, help to implement fresh and better methodologies as well as tighten the relationship with your customers.
In the time when IoT hardware is cheap and accessible and software getting more and more popular, it’s worth to take a closer look at this trend and give yourself a chance to improve.
If you enjoyed this article, you can read more on IoT-related topics on our blog.