Ryan's Blog

Like Twitter, but longer


On Software Design

I'm reading the chapter in Code Complete about design (http://cc2e.com/page.aspx?hid=141).  

Three points have struck a chord with me:

  1. Design is about tradeoffs
    What are our priorities? 
  2. Design involves restrictions
    What are we limiting? 
  3. Design is emergent
    Can we set out some guiding principles and let the design grow from there?

My current thinking is the priority in application design is a fast application.

We limit features based on their effect on our performance.

We build in a modular way so we can easily turn features on and off.