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 (or rather, yet another one), 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
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 (this is most of the time) - 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 (as prompted by PaperCall) 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! ;-)