software = science + art + people
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!
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. [...]