06 March 2009

Top-down vs Bottom-up in design

Programmers and technical oriented people often make the mistake of designing a new feature bottom-up. That is to start with the technical lower bits and then piece everything together in the end. When transforming a design to code I think that a bottom-up approach often is very good, since each piece can be tested before pieced together. But when designing I think that the top-down approach in most cases are better.

If you are adding a nice cool feature, for example the user should be able to configure an avatar in a profile on a website, start with the GUI! How should the GUI look like? When starting with the GUI it is easier to capture all the demands a product owner has. After the GUI has been made, then it is time to start thinking on about how it should be implemented in the database, for example to add a column to a table or create a new table.

The only time (I can think of right now) when the database table design must be first is when there is some hidden requirement that the database cannot be changed freely.

Read more on Top-down design on Wikipedia

No comments:

Post a Comment