4
Developers creating software for today’s complex military embed- ded systems are under increasing pressure to control costs and shorten development cycles. At the same time, they are expected to produce high-quality, bug-free software while responding rapidly to changes during every phase of the project’s life cycle. Most teams developing military embedded sys- tems follow the waterfall model developed in the 1970s, which takes a step-by-step approach. Developers move from one phase to the next – from requirements capture and analysis to design, coding, and testing – in a strict sequential fashion. Proponents of the waterfall approach often regard some of the relative newcomers to the scene – such as agile software development with its emphasis on many rapid iterations – as being too unstructured for developing complex military systems. But as Figure 1 indicates, the waterfall approach can have the opposite effect by creating a series of silos. This is one of the reasons that software devel- opment and life-cycle managers at many of today’s military embedded systems organiza- tions are investigating the agile approach. They are drawn by the potential for greater flexibility that will allow them to control costs and shorten development cycles while still delivering highly reliable systems. Agile development methods (Figure 2) have an excellent track record for handling small, co- located projects. But the big question is: How do you adapt the practice to deal with large, complex projects, especially if your develop- ers are scattered across multiple sites and the project has constantly changing requirements? Agile life-cycle management and traceability Change and configuration management solutions are nec- essary for organizations that want to successfully deliver large-scale agile development projects. These solutions are particularly important for complex projects that are distrib- Agile software development of military embedded systems By Dominic Tavassoli Although agile software development methods work well for small projects where developers are only a cubicle away, can they be successfully applied to large military systems? The answer is yes, but only with some serious support from robust change and configuration management tools. Figure 1 Managing the technology life cycle Figure 2 Military Embedded Systems ©2007 OpenSystems Publishing. Not for Distribution.

Agile software development of military embedded systemsmil-embedded.com/pdfs/Telelogic.May07.pdf · large-scale agile development projects. These solutions are particularly important

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Agile software development of military embedded systemsmil-embedded.com/pdfs/Telelogic.May07.pdf · large-scale agile development projects. These solutions are particularly important

Developers creating software for today’s complex military embed-ded systems are under increasing pressure to control costs and shorten development cycles. At the same time, they are expected to produce high-quality, bug-free software while responding rapidly to changes during every phase of the project’s life cycle.

Most teams developing military embedded sys-tems follow the waterfall model developed in the 1970s, which takes a step-by-step approach. Developers move from one phase to the next – from requirements capture and analysis to design, coding, and testing – in a strict sequential fashion. Proponents of the waterfall approach often regard some of the relative newcomers to the scene – such as agile software development with its emphasis on many rapid iterations – as being too unstructured for developing complex military systems. But as Figure 1 indicates, the waterfall approach can have the opposite effect by creating a series of silos.

This is one of the reasons that software devel-opment and life-cycle managers at many of today’s military embedded systems organiza-tions are investigating the agile approach. They are drawn by the potential for greater flexibility that will allow them to control costs and shorten development cycles while still delivering highly reliable systems.

Agile development methods (Figure 2) have an excellent track record for handling small, co-located projects. But the big question is: How do you adapt the practice to deal with large, complex projects, especially if your develop-ers are scattered across multiple sites and the project has constantly changing requirements?

Agile life-cycle management and traceabilityChange and configuration management solutions are nec-essary for organizations that want to successfully deliver large-scale agile development projects. These solutions are particularly important for complex projects that are distrib-

Agile software development of military embedded systems By Dominic Tavassoli

Although agile software development methods work well for small projects where developers are only a cubicle away, can they be successfully applied to large military systems? The answer is yes, but only with some serious support from robust change and configuration management tools.

Figure 1

Managing the technology life cycle

Figure 2

For Single Print Only

Military Embedded Systems ©2007 OpenSystems Publishing. Not for Distribution.

Page 2: Agile software development of military embedded systemsmil-embedded.com/pdfs/Telelogic.May07.pdf · large-scale agile development projects. These solutions are particularly important

uted geographically and organizationally, require extensive documentation and traceability, and have continually chang- ing requirements. Table 1 lists the benefits of implementing an agile development approach, while Table 2 illustrates factors in handling agile development challenges.

Change and configuration information needs to be captured in a central, scalable repository, ideally with a configurable workflow and a Web interface to ensure that objectives and priorities are recorded and analyzed in a consistent, repeatable process.

To start the process, agreement must be reached regarding priorities, and features and fixes assigned to releases. To limit overhead and guarantee trace-ability, enterprise change manage-ment is integrated with configuration management by linking tasks to the change requests. Developer tasks are stored in the CM repository. This provides a consistent mechanism for communicating among team members rather than relying on a mix of e-mails, phone calls, sticky notes, and water-cooler conversations. The developer simply selects the task in his to-do list, and all work is automatically grouped

in a consistent change set. To deliver changes to the rest of the team, the developer simply checks in the task. This provides full traceability while minimizing overhead as depicted in Figure 3.

Advanced change and configuration management systems, such as Telelogic Synergy, provide invaluable functionality for agile teams, enabling them to switch to an urgent assignment or quickly check compatibility with changes made by coworkers.

Roundtrip traceabilityTypically, traceability is accomplished using a top-down approach. Best practices and tools are used to link code to features and requirements as soon as they are created. However, for most quality, audit, and test validation procedures, this approach falls short. It does not analyze what was actually produced to confirm that the expected requirements, fixes, or requests have been delivered as planned – at least not before the costly testing phases. This can prompt unnecessary and costly regression testing.

Round-trip traceability solves this problem by taking both a top-down and bottom-up approach. Because it provides complete visibility into the software development life cycle, this practice enables development team members and their customers to quickly assess the impact of a system change and to report and monitor development to ensure continuous improvement – essential criteria for implementing Capability Matu-rity Model Integration (CMMI) and International Standards Organization (ISO) improvement programs.

The process starts top-down by link-ing requirements and implementation

Realizing agile life-cycle benefitsAccording to the Agile Alliance (www.agilealliance.org), agile software development “emphasizes close collaboration between the programmer team and business experts; face-to-face communication (as more efficient than written documentation); frequent delivery of new deployable business value; tight, self-organizing teams; and ways to craft the code and the team such that the inevitable requirements churn was not a crisis.”

The benefits of agile life-cycle management can be achieved on military embedded systems with help from a combination of task-based configuration management, enterprise change manage-ment, and agile requirements management solutions that follow the fundamental premises of agile software development. Out-of-the-box agile processes and templates greatly increase the likelihood that the development process will move along quickly and smoothly, despite challenges presented by scalability, geographic distribution of human resources, project criticality, and compli-ance requirements.

Table 2

Table 1

For Single Print Only

Military Embedded Systems ©2007 OpenSystems Publishing. Not for Distribution.

Page 3: Agile software development of military embedded systemsmil-embedded.com/pdfs/Telelogic.May07.pdf · large-scale agile development projects. These solutions are particularly important

requests to code, documentation, or test artifacts as the implementation proceeds. Once the team and the customer have allocated features and bug fixes to releases, the developers then work on implementa-tion, assembly, and delivery. This ensures that requirements changes are managed properly and traced to change requests – and eventually to software code.

The bottom-up approach complements the top-down approach. Bottom-up traceability not only allows development teams to confirm the integrity of their configurations, but also allows test and quality assurance engineers to ensure that the delivered code conforms to approved requirements. Applied at every stage of incremental testing, this approach allows the team to confirm that requirements are being met. It works hand-in-hand with iterative development processes and test-driven development environments dependent on demonstrating features early in the life cycle. This lowers the costs of changes.

Other aspects of the bottom-up approach include:

➔Build verification to catch problems early, including a baseline compare with the CM system as well as advanced build analysis and reporting

➔Feature verification at every stage of the process➔Requirements verification to improve customer satisfaction➔ Improved visibility and predictability across the entire

development life cycle

By enabling round-trip traceability, devel-opment teams can perform complete impact assessment of a change and provide visibil-ity and enhanced predictability for project management. It provides the rigor that enables developers to experience the full benefits of agile software development for even the most complex embedded systems.

Causal analysis and resolutionAnother major best practice supporting agile software development is causal analysis and resolution. This identifies the causes of defects and other problems and takes action to prevent their future occurrence. Integrated life cycle solutions ensure that issues uncovered during the requirements phase in a CMMI develop-ment process are identified and resolved by this best practice.

To implement causal analysis and resolu-tion, one needs to capture defect data in a consistent, centralized fashion. This is best done with an Enterprise Change Manage-

ment (ECM) solution that provides a repeatable, documented, and reliable pro cess for capturing both defect data and change requests of all types. The collected data can be used to ensure that future project teams learn from past mistakes. Figure 4 shows the enterprise change request life cycle.

Managing and coordinating the agile projectAgile development leverages constant and frequent communica-tion as a key success factor. This can be challenging if the team is distributed across sites, countries, and time zones.

However, when teams work with task-based configuration man-agement, all activity is automatically logged in a central reposi-tory. Agile teams can view real-time reports regarding tasks that have been completed, are in progress, or are in the queue. The change request status in the life cycle can also be displayed in an actionable Web-based interface. The team can make online deci-sions during the meeting, instead of later. Information available is shown in Table 3.

Figure 4 Traceability from change request to task to impacted objects

Figure 3

Managing the technology life cycle

[Figure 5 - Enterprise Change Request Lifecycle]

Figure 4

Table 3

For Single Print Only

Military Embedded Systems ©2007 OpenSystems Publishing. Not for Distribution.

Page 4: Agile software development of military embedded systemsmil-embedded.com/pdfs/Telelogic.May07.pdf · large-scale agile development projects. These solutions are particularly important

These capabilities dispel one of the myths about agile develop-ment – that its low level of documentation makes it unsuitable for critical projects or meeting compliance requirements. If the team works with appropriate solutions, the levels of reporting and metrics automatically ensure that the team is in complete control of the process and is generating all the backup documentation required.

Agile development stresses the importance of dialog with the cus-tomer, and capturing good re-quirements in the form of stories and use cases. Once the agile team and the customer have allo-cated features and bug fixes to releases, the next step is to cre-ate requests for the development team, covering implementation, build, assembly, and delivery. This bidirectional traceability and impact assessment helps agile teams adapt to changes in priori-ties, and ensures that they deliver the right product, at the right place, at the right time.

Dominic Tavassoli is Director of Product Mar-keting, Change and Configuration Management Applications, at Telelogic, where his job duties focus on RM, CM applications, and application life-cycle management. His primary responsibil-

ity is ensuring that current and new software releases are in line with market needs and determining how all the best of breed products can be used together to support the manage-ment of the application development life cycle. He has more than 15 years of experience managing and adapting advanced software products and solutions in the defense, automotive, financial, and commercial industries. Dominic graduated magna cum laude from Louis-Le-Grand and the Ecole Centrale in France, with an engineering degree in systems and software engineering.

Telelogic9401 Jeronimo Road • Irvine, CA 92618

[email protected]

For Single Print Only

Military Embedded Systems ©2007 OpenSystems Publishing. Not for Distribution.