Clarity

Clarity™ is a software engineering process that helps software teams maximize production and quality with minimum staff.

The Clarity process document was delivered to NASA as part of several NASA projects, and is part of the public domain.

Organizations may use any or all parts of Clarity as appropriate to enhance their software development process.

SwRI offers Clarity training courses and consulting support.

Developing software in today’s world can be a challenging activity. Demand for Software Engineers is high; Development is susceptible to inefficiency, risk and quality issues; and Maintenance challenges are expanding as software grows and software engineers move between companies.

The Space Data Systems (SDS) software engineering organization produced 33 production software products over a 20-year period with a staff averaging 6 software engineers and testers. The Clarity software engineering process was created during that time. With Clarity, SDS raised its average effectiveness for the past six years to 95%, meaning that SDS spent 95% of its time creating new functions or expanding existing functions, as opposed to fixing bugs.

Clarity maximizes software staff effectiveness by implementing enough process by the right person at the right time to minimize software rework – the “Goldilocks” approach to software process management. Through a system of product-independent checklists and forms, Clarity focuses on mitigating error propagation through the software lifecycle process, leveraging the Software Lead as the process executor, and leaving software developers and testers to do what they do best – produce quality software products.

Effectiveness

With Clarity, the Space Data Systems (SDS) organization raised its average effectiveness for the past six years to 95%, meaning that SDS spent 95% of its time creating new functions or expanding existing functions, as opposed to fixing bugs.

Dual Coverage

Clarity is responsible for the Space Data Systems (SDS) organization’s dual-coverage, or “maintainability,” rating of 95%. This means that there are at least two people with sufficient skill to support 95% of the 107 application technologies and staff skills used on software projects maintained by SDS.

Clarity™ maximizes staff effectiveness and product quality by implementing the “Goldilocks” measure of process allocation and timeliness – just the right amount of process by the right person at the right time. This minimizes software rework and maximizes the use of team members’ time. To accomplish this, Clarity is based on ten components.

Software Tasks are the central component in Clarity. As a mini-software development lifecycle of their own, they provide built-in checks and balances to mitigate error propagation through each phase of the development.

Error propagation from phase to phase of the software development lifecycle is time-consuming and costly, but the real issue is that unmitigated error propagation across multiple phases of the software lifecycle has exponential effects on cost and schedule.

Clarity mitigates these effects by assigning and tracking software development activities in a Software Task form. The form provides a simple but effective system of checks and balances to mitigate error propagation. It also makes it easy for software developers and testers to focus on their work, supports the software lead as they management asks, generates synergies when combined with feature branching, and provides the foundation for many useful metrics.

Insight – Through the use of the Software Task, a great deal of Insight is available at the tactical level (software task status, hours completed versus hours estimated, form detail), as well as the strategic level (global view of software task statuses and completion details across a single or multiple projects)

Efficiency – Efficiencies are attained by allow team members to focus on their specialized skills and through a system of checks and balances that mitigate error propagation in the software engineering lifecycle

Sustainable Quality – Sustainable Quality is enhanced by the processes built-in checks and balances, standards, checklists, and special emphasis on training and testing.

Maintainability – Standards and metrics enhance code Maintainability, including a “dual coverage” metric that correlates staff skills and experience with software engineering technologies against the use of those technologies in software products.

Continuous Improvement – A combination of data from software tasks, metrics, and other sources identify opportunities for Continuous Improvement.

Product Independence – Clarity can be implemented for free using a variety of standard office tools or other applications, making it a Product-Independent process.

CMMI-2 – Clarity is a Capability Maturity Model Integration (CMMI) level 2-aligned software engineering process. The Clarity process document includes a cross-referenced matrix that indexes Clarity processes, tools, and records to appropriate CMMI level 2 Process Areas. Clarity was originally designed to be compliant with CMMI v1.3, and is being tweaked for compliance with CMMI v2.0.