ACRUMEN: What IS Software Quality Anyway?!

By Dave Aronson

Elevator Pitch

Without a good definition of software quality, you’ll have a tough time achieving it! ACRUMEN is my definition, based on six one-word aspects. I’ll explain why we need a definition, what this one says, how to apply it, why each aspect is important, and how to achieve each one.

Description

Without a good definition of software quality, you’ll have a tough time achieving it! This talk introduces ACRUMEN, my simple yet fairly comprehensive definition, that you can use with any tech stack, for free. It stands for the idea that software should be Appropriate, Correct, Robust, Usable, Maintainable, and Efficient. (Come to the talk to see what the N stands for!) I will explain why we need a definition, and how to apply this one, then 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, teach the next generation of developers how to produce high-quality software, and most importantly, improve the quality of your own software.

Notes

This is aimed mainly at intermediates because they’ve realized how important, yet fuzzy, software quality is, while juniors usually haven’t yet, and seniors have usually already developed their own approach to quality. However, juniors can already understand the ideas when pointed out, and seniors can still benefit from a different point of view, plus they may still be struggling to put their approach into words so as to teach it to any juniors and intermediates they oversee or mentor. Even non-techies will benefit from having a more precise vocabulary to tell us exactly how our software sucks.

I’ve given this talk before at several conferences and Meetups. The latest video is at https://www.youtube.com/watch?v=5iJGC01ApSc (from Frontrunners DC 2023).

There is deliberately zero code in this, to emphasize that “code quality” is just a part of the overall picture of “software quality” that I am addressing – and that the concepts are completely technology-agnostic (unlike some other definitions).

Agenda: - 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 would like to do this as an inspirational/motivational plenary keynote, but could also do it as a regular conference session.

I’m the best to speak on this because very few are people speaking on anything like this, trying to boil down the entire idea of software quality, including points of view other than the developers, to something so easily understood and remembered. I found another one that covers mainly the same ground, but I think mine covers it better and more memorably. My talk also gives concrete advice for steps we can take to achieve these aspects. And of course I’m the best to speak on this particular definition, as I invented it! ;-)