Defining Aspects of Software Quality
Defining the aspects that define software quality, and how we can achieve them.
There have been many attempts to define software quality. However, most have had assorted problems, such as being long, abstruse, or proprietary, not caring about the needs of non-developers, or being less about the software than about the process or byproducts.
The facilitator, Dave Aronson, is a software engineer with over thirty years of experience in a wide variety of languages, systems, domains, techniques, and so on. Recently, he invented a brief definition of software quality, based on six one-word aspects, summed up in a short acronym: ACRUMEN. (Yes, six, despite ACRUMEN having seven letters. Come to the session to see what the other one stands for!) The basic explanation, including several words of detail for each aspect, is so short that it literally fits on the back of a standard-sized business card -- *without* small print!
We will begin with ACRUMEN as a starting point, devoting the first half of the session to it. For each of its aspects, there will be some exploration, hints how to achieve it, and a brief exercise based on one of the hints -- not necessarily involving coding. This will be followed by a brief discussion of how to apply the ACRUMEN definition as a whole.
After a break, we will start departing from the ACRUMEN starting point, and discuss topics such as:
- any other aspects of software quality that we may know of or think up,
- better ways to use a list of aspects to evaluate or compare software,
- any remaining questions, problems, etc. about ACRUMEN,
- and anything else relevant.
If we do identify other aspects, at least to consider, we may similarly explore its nuances, list some tips to achieve it, devise and perform an exercise, and if needed, come up with a new acronym.
All participants (including Dave!) should come away with:
- a clearer understanding of software quality,
- an easily remembered set of aspects by which to critique software, and
- immediately useful practical advice on how to achieve each aspect.
The only required knowledge is the basics of how to develop software. Extensive experience is not required; in fact, juniors will probably get more out of it than seniors, as seniors may already have developed their own approach to software quality, and may know many of the tips. However, discussion from the seniors will be particularly valuable to the outcome.
Benefits of participating
- Increased understanding of software quality, including aspects many developers have long ignored.
- Increased ability to achieve software quality.
- Increased ability to critique the quality of software, giving more precise feedback on its shortcomings.
I will give out mnemonic cheat-sheets with a basic explanation of ACRUMEN, perfectly sized to demonstrate that it can easily fit on the back of a business card. (In other words, my business card, with the ACRUMEN explanation on the back.) However, note that the discussion may result in ACRUMEN being replaced with something even better!
Presentation of the basic concepts, exercises (some in pairs), and discussion of any further ideas, including possibly creating and performing additional exercises.
Minutes 0-5: Intro to Dave, why he wasn't satisfied with existing definitions, and ACRUMEN
5-65: Roughly ten minutes on each ACRUMEN aspect, including:
- Two minutes of further explanation/exploration
- Three minutes of tips how to achieve it
- Five minute exercise to practice one major tip
65-75: How to use ACRUMEN itself, including pitfalls
75-75: BREAK (i.e., not counting the break in this timeline)
75-135: Discussion, including points such as:
- What other aspects have I omitted?
- If any, new acronym? :-)
- Other problems, such as vagueness, redundancy, inconsistency, etc.?
- More good basic tips to achieve each?
- Better ways to use it, to compare different software?
135-150: Wrapup, including Q&A, comments, etc.
- Certainly a list of aspects, possibly changed from ACRUMEN
- Possibly a new good acronym :-)
- Whatever presentation visuals we can with available materials
- I could certainly put results on a web page, *later*, and send a link to all who give me their email address
- Dave Aronson