Share via


My Philosophy on Software Design

I like to think of software design as cracking a code.  You keep working on the design over and over until you've finally cracked the code and an elegant design emerges.  I believe the solution exists out "there" and I just have to find it.  Albeit there is more than one solution but some are more elegant than others.  The act of searching for it is software design. 

I've been working on a design the past few days both at work and sometimes at home while in bed (my brain just doesn't like to take a break sometimes).  Last Saturday morning, I think I finally cracked the code.

Comments

  • Anonymous
    November 01, 2004
    :-)))

    It's sound like searching for physics' "The Theory of Everything"
  • Anonymous
    November 01, 2004
    Are you speaking of designing small, isolated sections or a larger system design? What are you thoughts on big design up front vs. little design all the time?
  • Anonymous
    November 01, 2004
    The comment has been removed
  • Anonymous
    November 01, 2004
    Define "cracking a code". If you define this as coding different approaches until you find the most elegant/performance/understandable then it's wrong. If you define it as thinking about the algorithms+data structures, writing sample test cases (and do an API usability study if you design an API), and do this process iteratively until you meet criteria list above, then this IMO is correct approach.