| Apr. 24th, 2007 @ 11:31 am Reasonable design of software |
|---|
Current Mood:  calm
The concept of "good design" of software is too abstract to be actually realized. For companies that ship software and are legally accountable for it, the idea of "good design" translates to "reasonable design". Let me explain.
** What good characteristics do you wish to have in your software? General answers that you'd get are: - simple - easy-to-use - robust - available - secure - solves the problem (inherent property, generally assumed) - economical - maintainable - etc., etc., etc..
Given the real life constraints, like go-to-market pressure, revisions, people change, maintainability, it is very difficult (almost impossible) to maximize all the above mentioned properties in finite time. What needs to be done is to strike a balance between all of them, and come up with an optimal solution. For eg., a banking and financial software should be available and secure to the max, but can be okay to be a bit unfriendly, a software game should be user-friendly, but is okay if it is a bit expensive (it is a luxury), and so on.
This optimal balance is what I call a "reasonable design" choice, where, the software meets the needs of all its stakeholders (designers, developers, marketing folks, end-users, etc.)
Will try to expand this article as time permits. |