Over the weekend, I saw James Shore give a talk on software design at the ALT.NET Seattle 2011 Conference. Below are my notes, with only slight editing from how I took them. Overall, I really liked what he had to say.
In the early days, good software design had a lot to do with efficient resource usage…memory and processor…but these days those resources are plentiful. Today, the scare resource isn’t computer time, it’s developer time.
Both experience and research show that most developer time is used for updating, modifying and maintaining existing code, not writing new code.
James’ Assertion: well-designed software is the software that costs the least amount of developer time to create, modify and maintain at a minimum acceptable performance level.
Since overall, we spend more time on modification and maintenance, then that should have more weight…should be the real measure of good design. (Frameworks help us create fast, but modification is often harder; libraries are better because they’re more flexible down the road.)