Quality-Aware development is NOT a development methodology, but a 3-part supplement to whatever you are doing now or intend to do.

The first part is an initial quality sprint that includes:

  1.  Select relevant quality attributes including their supporting attributes from your quality knowledge base
  2.  For each selected attribute:
  • identify its required level
  • identify its challenges (e.g. using threat analysis), mitigations, and supports
  • assess its feasibility
  • define its measurable goal
  • specify and review its achievement and verification strategies

    3. Analyze each pair of potentially conflicting quality goals to identify and resolve the real conflicts so that adequate architectures can be identified.

    4. Acquire and verify a library of crosscutting support components e.g. exception handlers. [Acquisition entails both reuse and development.]

    The second part are tasks to be added to each development iteration:

    For each iteration-relevant quality goal:

    1. Reassess its achievement and verification strategies and update as needed
    2. Carry out its achievement strategy, clearly identifying quality support code
    3. Verify its achievement and change as needed

    The third part is collecting the quality learnings during a project retrospective and recording them in the enterprise base of quality knowledge and/or in the development standards.