Friday, June 10, 2005

Code Complete 2: Design in construction

I downloaded chapter 5 in the new version of the famous Code Complete. It had many good point, amongst which I found the following most interesting:
  • "Once you understand that all other technical goals in software are secondary to managing complexity, many design considerations become straightforward."
  • Abstractions and encapsulations are just sub-themes to managing complexity.
  • We need to manage complexity because our brain capacity is limited: "Hiding complexity so that your brain doesn't have to deal with it unless you're specifically concerned with it."
  • Two reasons why we hide details: to hide complexity and to hide sources of change.
  • "A study of great designers found that one attribute they had in common was their ability to anticipate change."
  • "One of the most effective guidelines is not to get stuck on a single approach [in design]."
  • Reviews: "If the goal is quality assurance, I tend to recommend the most structured review practice, formal inspections ... But if the goal is to foster creativity and to increase the number of design alternative generated, not just to find errors, less structured approaches work better."
  • "Design is a wicked problem ... a wicked problem [is] one that could be clearly defined only by solving it, or solving part of it".
I have to mention that I found the reading of the chapter rather boring though, it is too wordy, as is often the case with North American technical literature.

No comments: