We’ve all heard the often-used phrase “software is eating the world,” and we are now seeing evidence of it everywhere in our daily lives. We have become more reliant on our smart phones and commonly use thermostats, medical devices, televisions, and cars that are loaded with previously unimaginable software features. This explosion of new, smart products and devices is not only changing the consumer landscape, but it’s also having a profound impact on the engineers responsible for creating these new innovative technologies. But things are happening at such a breakneck speed, it’s difficult for engineers to identify and adopt the right methodologies and tools to develop new products in the face of increasing time-to-market pressures.
There are a number of factors making things more challenging for engineers. In most instances, software for a given product is an order of magnitude more complicated than it was ten years ago. For example, embedded device software has evolved from fairly rudimentary firmware to highly complex applications with mind-boggling amounts of code. The rise of the Internet of Things also introduced a host of interconnectivity criteria to allow these new products to share and exchange information. In addition, most applications are now constantly being updated, creating blurred lines between the beginning and end of the development lifecycle. Finally, product teams today are often globally dispersed with knowledge centers and areas of expertise located across multiple time zones.
It becomes easy to see why the endeavor of delivering a product in today’s environment is more difficult than ever before. According to the research firm VDC, nearly half of all embedded systems projects underway are far behind schedule. The reason cited was an inability to manage increasing complexity. Engineers today are searching for ways to ensure the product that is delivered is, in fact, the one that was initially conceived. With so many layers of complexity, this quickly becomes a vexing problem.
The Search for New Tools to Manage Complexity
In many instances, the tools and methodologies in place for product delivery have not kept pace with the speed and innovation of the products they were designed to manage. Another research group, the Project Management Institute, identified poor requirements management as a major cause of project failure. The organization found that only one-half of companies were able manage their requirements effectively. A debate over requirements management (RM) was popular in the 1990s and continued into the 2000s. Over the course of that time, products and product development changed dramatically, moving toward the complexity mentioned above. This has resulted in a growing resurgence in RM as companies struggle to bring their most innovative products to market.
The rise of sophisticated software applications and embedded systems means companies now need to manage tens of thousands of requirements for a single product. Over the last two decades, we learned how RM can be used to reduce failure rates. It can be as simple as taking RM more seriously and using better RM as a means to align teams and business direction. Modern RM goes beyond the core competencies of well written, clear requirements. Rather, it is about using technology to incorporate traceability and collaboration to provide more context around the hundreds of decisions made for every requirement. Each decision along the way can then be accessed by stakeholders from conception, to development, testing and, ultimately delivery. This is using RM in an iterative and collaborative manner.
Yet, many companies continue to take a disjointed approach to RM, using disparate tools selected by various groups across the organization. This makes it difficult to establish a common vision for the overall engineering group and to ensure every decision is accruing to the broader vision for the product. Other companies use traditional RM technologies introduced around the turn of the century. These solutions were ground-breaking when they were first developed, but there has been little investment in improving these systems, especially when one considers that software innovation has skyrocketed. These systems are somewhat useful for initially defining requirements and recording them in a static ‘reference’ specification. However, they haven’t kept pace with the engineering demands of today’s applications and products.
Traditional RM is like using a conventional library where an individual can check out a particular textbook, when today’s engineers need the dynamic qualities of the Internet with a whole universe of information that is constantly updated at their disposal. In order to be effective, RM should be a living, breathing process that can evolve and is directly connected to the work being done by engineers every day.
Collaboration Plays a Critical Role
Many engineers risk failure because they use antiquated systems that are unable to manage, communicate, and track requirements for their most critical products. Companies need modern RM systems designed with today’s workforce in mind. The universe of product delivery stakeholders has grown in recent years to include third party consultants, customers, partners and other business decision makers. Modern RM systems offer an integrated approach that allows everyone to find subject matter experts, view status updates and make better, more informed decisions.
In an effort to create a common vision for each team and stakeholder involved in the product, many engineers are striving to take a more product-centric approach which focuses on the ultimate experience the product is intended to provide. This is a sharp contrast to a project-centric approach where engineers are only concerned with building a discreet feature set. Modern RM can play a central role in establishing a broader shared vision of the overall project by both providing context and connecting engineers and their work at every stage of the delivery lifecycle.
Derwyn Harris is Co-founder and Product Manager at Jama Software where he helps some of the world’s leading companies deliver innovative products in less time. He is an engineer, consultant and trainer, with broad experience deploying complex software-integration projects of all sizes. Derwyn is passionate about standards and about his customers, constantly seeking to understand development trends and how they impact customers’ success. He writes and presents frequently to business analysts, product managers and executives seeking to effect change in their organizations. For more information, visit www.jamasoftware.com.