ACRUMEN: The Six Key Aspects of Software Quality

By Dave Aronson

Elevator Pitch

Do you write high quality software? Without a good definition of software quality, you can’t even know! ACRUMEN is a new definition I’ve invented, based on six aspects. I’ll explain why we need such a thing, what it is, how to use it, why each aspect is important, and how to achieve each one.

Description

Do you produce high quality software? Without a good definition of software quality, you can’t really know, let alone say yes!

This talk introduces ACRUMEN, a brief, simple, low-jargon, technology-agnostic, yet fairly comprehensive, definition of software quality I’ve invented, based on six one-word aspects. (Yes, six, even though ACRUMEN has seven letters. Come to the talk to see what the other one stands for!) The basic explanation is so short, it literally fits on the back of a business card – without small print!

I will explain why we need such a thing, what ACRUMEN is, and how to use it. Then I will explore each aspect in turn, including further nuances and immediately useful tips on how to achieve each one.

You will come away better equipped to analyze the quality of anybody’s software, give precise feedback on its shortcomings, and most importantly, improve the quality of your own software.

The aspects and tips are timeless and technology-agnostic, useful with languages from the dinosaur days to tomorrow and beyond, and by developers from fresh-faced novices to grizzled graybeards. Even the non-technical will gain a better appreciation of the struggles of developers, and a better vocabulary with which to give us feedback.

Notes

This is aimed mainly at intermediates because they’ve realized how important, yet fuzzy, software quality is, and maybe that it extends beyond mere code quality. If a junior’s already there, or at least ready to hear this stuff, this would still be suitable for them. Not much prior knowledge is needed, just basic concepts of software development. I do reference some concepts that some people might be unfamiliar with, but in each case I either explain it, or don’t use it in much detail, so they don’t need to already understand it. Seniors, however, may have already developed (no pun intended) their own approach to quality, and/or heard or figured out many of the tips… but may still be struggling to put it into words, so as to teach it to any juniors and intermediates they oversee, mentor, etc.

Why I’m the best to speak on this: there are very few people speaking on anything like this. This is the first attempt I’ve seen to boil down the entire field of software quality (at least, as far as I see it), including points of view other than the developers, to a small number of briefly definable key aspects, especially with concrete advice for steps we can take to achieve them. Of course I’m the best to speak on this particular definition, as I invented it! ;-)

I’ve given this talk before at several conferences. The latest video is at https://www.youtube.com/watch?v=V-pYlihc6hM (from Little Rock TechFest 2019 – which doesn’t record sessions, so this is just from my phone on a tripod, sorry for the bad A/V quality).

To help you make up your minds: the basic concept is that software should be Appropriate, Correct, Robust, Usable, Maintainable, and Efficient. You can find further explanation, and some more video links, at https://www.codosaur.us/ACRUMEN .

A rough agenda of the talk: - Why do we need a new definition? - What’s in this one? - FAQs: How do we use it, how can we quantify it, and is ACRUMEN always the right order? - Explore nuances and tips for each aspect in turn - Conclusion

I could do this as either a regular conference session, or a plenary keynote.