Codecraft

software = science + art + people

Good Code Is Balanced

2012-08-27

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:

More items undoubtedly belong on the list. Quite a balancing act!

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?


Comments

  • Metrics, Plumb Lines, and System Thinking « Codecraft, 2012-11-12:

    [...] I’m also a big believer in balance, as I’ve written about before. Good software balances many considerations. [...]

  • 3 Commandments of Performance Optimization « Codecraft, 2013-01-08:

    [...] On the other hand, it is possible to be too passionate about performance; optimizing the performance of the dev team (by decreasing coding and testing time) is often a better business choice than optimizing execution speed in ways that make code more complex and harder to verify. I have encountered performance zealots disqualifying a perfectly good design on the grounds that it’s not performant enough in a use case that only 2 customers on the entire planet would ever care about. Not smart. As I’ve said many times, good code is balanced. [...]

  • Earned Pragmatism « Codecraft, 2013-01-18:

    [...] you can be a pragmatist, you have to understand what’s possible, what’s good and bad about each alternative, and why certain considerations might trump others given a certain business context and time [...]

  • Smart Geeks Think Like Cheerleaders « Codecraft, 2013-02-05:

    [...] We champion the ideal implementation, programming language, product schedule, or architecture—so much so that we lose momentum or balance. [...]