In my first post about what constitutes “good code,” I claimed we were dealing with a complex question. This is why I distrust short answers.
So many competing concerns must be balanced to achieve goodness:
- Testability
- Maintainability
- Short-term revenue pressures
- Long-term strategic value
- Performance (many aspects)
- Scalability (up, down, across)
- Ease of use
- Supportability
- Conceptual integrity
- Alignment with the skills, temperament, interests, and tools of the team that owns it
- Cost vs. benefit (for some problems, quick and dirty is definitely “right”)
- Simplicity (separation of concerns)
More items undoubtedly belong on the list. Quite a balancing act!
Image may be NSFW.
Clik here to view.
Clik here to view.

Someone’s got this “balance” thing down! Photo credit: joãokẽdal (Flickr).
Action Item
Pick a module, application, or subsystem that you know well, and grade its code according to how much its coders emphasize a few different dimensions (e.g., performance, testability, scalability, ease of use). Do you like the balance? Are any attributes being neglected?
Image may be NSFW.
Clik here to view.

Clik here to view.
