CMMI, Six Sigma, and Agile: What to Use and When for Embedded Software Development
2007-01-4183
10/30/2007
- Event
- Content
- This paper discusses the leading approaches to developing high-quality embedded software: Capability Maturity Model Integration® (CMMI), Six Sigma processes, and Agile software development methods. Organizations often struggle with deciding which approach they should use. Their decisions can have strategic consequences in terms of talent acquisition, organizational structure, resource allocation, and project management. Real life examples of embedded software development projects will be used to illustrate how, depending on the circumstances of the project, CMMI, Six Sigma, and Agile approaches each have a role to play in achieving embedded software excellence. CMMI is ideal for a well defined project, similar to the process an orchestra might use to prepare for a concert when given the sheet music. Six Sigma fits an existing project with running changes or a smaller project that needs to minimize risk in its development, similar to making a specific improvement to one section (e.g. trombones) in the orchestra. Agile is ideal for an unstructured, unknown requirements environment where requirements are discovered throughout development, similar to an improvisational jazz performance. Recommendations are provided that help guide the reader on how to make the process fit the project versus having the project fit the process.
- Pages
- 12
- Citation
- Stevens, R., and Lenz, J., "CMMI, Six Sigma, and Agile: What to Use and When for Embedded Software Development," SAE Technical Paper 2007-01-4183, 2007, https://doi.org/10.4271/2007-01-4183.