Blogs

Taking an agile approach to product development for the Internet of Things

Market Manager, IoT and Continuous Engineering, IBM

As a consumer, the Internet of Things—even in its present infancy—is wonderful. My car, my TV, even my watch gained a lot of new and cool functionality. Booking travel and using public transport networks got slicker and easier than ever. Even my power utility gives me more accurate billing than it did previously, thanks to smart meters.

But all this good stuff comes at a cost if you’re developing the things that make up the Internet of Things. Consumer—and business customer—expectations have been hyped extensively. The next big thing has to be delivered ever faster than ever to stay ahead of the competition.

With daily updates from the app store, we’ve all become used to the idea that software-based products are constantly improved to fix bugs, add new features and follow trends. And don’t even think about delivering a defective update; expectations of quality have never been higher. If you operate in the consumer world, social media is there to punish your brand should you make a misstep. What’s more, a connected product isn’t a self-contained thing; it has to work with other parts of the Internet of Things, which are also constantly being updated and improved.

As a result, product development for the Internet of Things needs to be fast, deliver high quality and be truly responsive to change. Continuous engineering is an approach that transforms product development to meet these challenges through a focus on three key practices: 

  • Verifying work continuously to rapidly expose problems, minimize rework and maximize the probability of delivering the right product
  • Reusing engineering assets of all kinds to save time and effort
  • Accessing information across silos and making effective use of insight to influence development

But continuous engineering practices have to be implemented to deliver results, and traditional waterfall development that focuses on big design up front and big integration at the end just doesn’t cut it in the world of Internet of Things development. Upfront design is rendered obsolete by constant change, and late-stage integration often means unpleasant surprises that can derail the project.

Now, software developers have, for some time, had a word for fast, high-quality and responsive—agile. What can being agile offer for product development, and how can product development be agile? An agile approach has a number of characteristics that make it attractive to product developers: 

  • Promoting ongoing collaboration with customers and openness to change for delivering enhanced project outcomes aligned to customer needs
  • Incrementally delivering the working parts of the product to give high certainty of progress
  • Detecting errors and defects early to reduce the chance of late-stage rework and cost and time overruns
  • Emphasizing the elimination of unnecessary work to achieve sustainable, high productivity

Agile product development has the potential to deliver at every level in an organization. At a business level, it can help improve competitiveness and stakeholder satisfaction by delivering high-quality products rapidly with reduced cost. At a project-management level, it can improve predictability and responsiveness to change. And at a practitioner level, it can free engineers and developers to focus on innovation and rewarding work instead of rework and late-phase bug fixing.

The IBM Internet of Things Continuous Engineering Solution provides the tooling, process resources and services to adopt an agile product development approach. Check out the new solution or get a free copy of Continuous Engineering for Dummies to find out how to efficiently manage the product development cycle from start to finish.