I can't remember who created this list, but this is what
i was taught in college. This is a very generic list of
qualities, but one that should be reflected upon often:
- correctness
- does the software behave as specified?
- reliability
- can we depend upon this software?
- robustness
- how well does software behave beyond
what it is required to do?
- performance
- is the software efficient? scalable?
- user friendliness
- human-computer interaction
- verifiability
- test test test!!
- maintainability
- be sure that whomever takes over your code does not
know where you live
- resuability
- can others use this wheel for their needs?
- portability
- does it run on other platforms? will a lot of changes be
required to do so?
- understandability
- can others understand your code? did you try to ensure
that others can understand it?
- interoperability
- how well does this software work with other
software?
- productivity
- measurement of the development process, not necessarily
how productive the software itself is
- timeliness
- ability to meet your deadline
- visibility
- is the documentation clear to internal and external
users of the software?
jeffa
L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)