Monday, September 18, 2006

Growing Software Code Base Offers Greater Role for Application

The following arcticle was featured on VDC's website this week:

Software engineering continues to emerge as an increasingly important part of the embedded development process. The complexity of the software development process and the amount of software code per device are growing. As a result, the need to effectively manage device software over the course of the product life cycle, as well as across a company’s product portfolio, is also increasing. At the same time, the majority of embedded device manufacturers are still managing their software using informal methods.

For these reasons, Venture Development Corporation (VDC) sees an emerging role for application life-cycle management (ALM) tools in the embedded development space. VDC defines ALM tools as part of one or more of the following types of software:

Requirements Management Tools – These tools provide the ability to define and organize project requirements and compare/track the fulfillment of these requirements within software.

Source/Change/Configuration Management Tools – These tools systematically organize revisions and changes to software, allowing developers to manage and trace the configuration of the software over time.

Software Modeling or Model Driven Development Tools – These tools allow developers to represent software visually or at a point of organization above the source code level to model software.

Automated Testing Tools – These tools allow engineers to systematically test their software.

Project/Portfolio/Asset/Document Management Tools – These tools help to manage project scheduling, documentation, and resource allocation.

In the IT space, the value of commercial tools of these types, provided by companies such as Borland and IBM/Rational, is commonly granted. However, within the embedded space, historically smaller code bases, smaller teams, and a greater focus on the hardware has resulted in the use of more informal methods of accomplishing these tasks. Some exceptions to this rule have been in the military/aerospace, automotive, and medical device markets where average project lengths are substantially longer and the quality of the code has implications for the safety of these devices. However, within other embedded markets, the growing significance of software (VDC estimates that lines of software code per embedded project are growing at an average rate of 46% per year) is also impacting the way device manufacturers are thinking about the need for more robust ALM tools.

Over the last several years, VDC’s surveys of embedded developers have noted some interesting findings on the current use of ALM tools. Some key issues include:

• Within the embedded market, engineers using informal requirements management solutions outnumber those using formal tools. In VDC’s most recent survey of embedded developers, more than 31% reported using informal means (such as MS Word and MS Excel) to track requirements, while approximately 12% indicated that they used a formal requirements management solution.

• A majority of embedded developers are using open source and in-house source/change/configuration (SCC) management tools rather than those from commercial suppliers. With these solutions used in nearly two-thirds of embedded development projects, SCC management tools are among the most widely used type of ALM tool, and are one of the most firmly engrained technologies as a result of their longer heritage.

• Significant numbers of developers expect to be using model driven development methodologies, such as UML (Universal Modeling Language), in the future. In VDC’s most recent study on the embedded market, nearly twice the number of developers indicated that they expect to be using UML within two years as compared to those reporting that they currently use this type of model-based development approach.

• VDC believes that most developers see the value of a tightly integrated set of ALM tools. However, there is less consensus regarding the degree of efficiency that this type of integration enables, and whether the potential gains outweigh the costs of solution integration, current tool investment, and staff retraining.

• Roughly 44% of embedded developers are currently using project management tools. A majority of embedded developers using a project management solution use Microsoft Project.

As the need for ALM tools increases, one of the key questions is what the implications are for commercial suppliers of these tools. In key markets such as military/aerospace, there is already real demand for a sophisticated and integrated set of ALM solutions, and companies are very aware of these requirements in terms of tools budgeting and planning. In other market sectors (such as the growing consumer electronics industry) it is less clear that companies are willing to spend significant amounts on commercial ALM tools, in lieu of finding cheaper alternatives.

Development tools vendors must continue to improve their solutions and support greater integration with leading tools in the ALM suite. Meanwhile, embedded developers and device companies should consider the adoption of more robust software management tools and practices, in order to limit the additional effort required to cope with their growing code bases. VDC believes that whether they are built in-house, obtained from a commercial supplier, or acquired from the open source community, ALM tools will play an ever-important role in assisting developers to effectively manage their software, control costs, and deliver products to market in a timely manner.