Identify the problem.
Determine the the ideal solution.

Tonight a friend of mine and I were studying for a test and going off on tangents of our religious beliefs about software design. Incidentally we touched on a great life lesson.

Identify the problem. Determine the ideal solution.

Too often we (especially in the student world where the professors want to fill our heads with theories rather than teach us how to get ahead in life) start from the bottom up - designing code having an idea of the functions we're going to fulfill, but not really grasping the problem holistically. Then by the time we get around to creating the user interface we have a bunch of code that isn't convenient to use.

Too often in the database class I TA for I find that the students have been so focused on creating the database tables (perceived practical end result) that they never consider the actual use and viewing of the application and data (actual practical end result).

If you start by identifying the problem and then drawing out what the ideal solution looks like and what the ideal workflow is (also considering the occasional workflows such as monthly reports or emergency procedures), then you know what interface to provide to the lower level code and which functions will be most useful to create and how to group them.

Life is similar. If you jump to a practical or immediate solution because that's what you're familiar with or because you think that an ideal solution would be somehow impractical then you're short-selling yourself. Once you identify what the ideal solution is you may in fact find that it takes less effort to create than a more "practical" solution.

By AJ ONeal

If you loved this and want more like it, sign up!

Did I make your day?
Buy me a coffeeBuy me a coffee  

(you can learn about the bigger picture I'm working towards on my patreon page )