November 25, 2006

Dilemma of Software Design

Filed under: Software Design — khangharoth @ 2:23 am

What is Good Software Design and what are the measuring guidelines
for this ?

In fact how can one be sure that the system is well designed and always ready for that dreaded word CHANGE , and what is the limit of being paranoid and Overkill.

After all like any other task it also consumes resources like Time and Human labor (for sophistication we can use term Man Hours , but personally i hate this term as if Software programming is Seventh standard Work -Time problem)
anyway we come back to our current discussion Design.

So what separates Good from Bad and how to measure the impact on overall system when we choose one over the Other. There are Masters out their who have tried to tame this beast .
So in their language Good Design has

  1. Good design is innovative.
  2. Good design enhances the usefulness of a product.
  3. Good design is aesthetic.
  4. Good design displays the logical structure of a product; its form follows its function.
  5. Good design is unobtrusive.
  6. Good design is honest.
  7. Good design is enduring.
  8. Good design is consistent right to the details.
  9. Good design is ecologically conscious.
  10. Good design is minimal design.


Everything is fine although not fine but for time being lets concentrate on number 10
” Good design is minimal design” ,well with this one statement we are back to
square one! I hope you can appreciate the whole irony and it’s not funny either.

I would like to share my views about Design and as i am not Master so keep your mind
open, I can err!

1. Designing is not a Task that had to be done in beginning or end of Software Lifecycle
but it is Rhythm of development and so it needs attention everyday.

2. Whenever their is choice between mind-Blowing and Simple Algo ,
For God sake choose Simple one.

3. Software is like a beast and it will try its level best to not to be tamed.
So always keep hunter and keep refactoring of your code.

4. Size does matter! It sucks; keep your classes’ and methods small.

5. Classes should have only one reason to change and that reason
should be chalked out as early as possible.

6. Allocate extra time in Project Plan for Nomenclature of your classes ,
methods ,variables etc.It may sound funny but if not followed
we end up laughing on ourselves.

7) Algo optimization is million time better than code optimization.

8) Whenever in doubt scream Fire-Fire so that others can come for rescue.

9) While Designing Look Top-Down rather than Bottom-Up ,many of you may
not agree on this but this is what i feel .You got to know “What problem we are solving “,
then “What are the components in action” and ” How these components interact among
themselves” and than “Design Individual components”.

10) Have faith in God and keep praying, it seriously helps!

I have absolutely no idea how much it will help you as i am still as confused as I was in beginning of all this.


1 Comment »

  1. Google is the best search engine

    Comment by John Castellaneta — January 19, 2007 @ 12:33 am | Reply

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Create a free website or blog at

%d bloggers like this: