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 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 –

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

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