How to Design: Think Top Down

I have been interviewing people on software design. I cant even remember in how many interviews candidates jump into designing the data layer as soon as the requirements of the software are provided. Only a magician can do this right.

(Thanks to http://weheartit.com for the image)

A normal engineer needs to think top down. The data layer is the foundation of the system.  Go to the foundation in the very end.

You start with a requirements and start defining functional blocks of your product. Think of it like different parts of machine, say if I were to design a car, i would think of the engine, the AC, the body, the seating etc as the “functional blocks” which are directly derived from the requirements.

These components need to be able to interact with each other to make the software you need.  You can call this a  “High Level Functional Components Diagram”.

Once you have this diagram ready, ONLY then you should get into the design of each of these components.

Take a look at this nice article on a structured design thinking and different perspectives which are important in a design process – http://bit.ly/aXGVAd

Is it really so hard to understand this 1 simple thing ?

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s