Tuesday, December 24, 2024

levels of software quality

This post defines discrete levels of software quality. There are many dimensions of what "software quality" means, so the discrete levels described here are an oversimplification. The attribute clusters below are typically observed together.


software quality level 1

"Worked for me at one point."
  • Code does not compile
  • No documentation
  • Required dependencies not included
  • Purpose of code is unclear
  • Hard coded numerical values
  • Code is wrong - severe design and implementation flaws
  • No tests

software quality level 2

"Good enough."
  • Code compiles successfully, but with warnings
  • Has bugs
  • Inefficient
  • Purpose of code isn't documented
  • Documentation limited to inline comments

software quality level 3

Best practices are enacted.
  • Code compiles and runs without errors
  • Documentation:
    • Inline documentation follows a style guide, e.g. https://google.github.io/styleguide/
    • README file contains
      • purpose of project
      • how to install
        • requirements
      • quick start guide
      • description of features
      • roadmap
    • Additional documentation like Doxygen, Sphinx
  • Containerized (e.g., Docker, Podman, Apptainer/Singularity)
  • Code is formatted consistently
  • 1 or more tests
  • Type hints for Python

software quality level 4

Other developers point to this project as an example of what to aspire to.

  • code is designed to be intuitive
  • no dead code present
  • complete test coverage
  • documentation is written in an easy-to-read style and has no grammatical errors

No comments:

Post a Comment