Sometimes it isn’t clear when designing a new application just which of a multitude of possible approaches to the design represents the “best” approach. Sometimes it may not just be the application design itself, but also choosing the “right” tool to accomplish the task(s) to be executed. Sometimes it may be deciding something as different as whether to create the application as a web application or client application. Once some basic design choices are made, like web or client, the designer may also then be presented with multiple possibilities for accomplishing the task at hand. Choosing the best approach for accomplishing the task isn’t always clear.
Of course, there are those projects which are mandated to be web or client, design tools may be mandated, and of course there are the talents of the design/programming team to consider – which sometimes will restrict design to a particular method. However, in my experience, there may often be many choices to accomplish a given task – that is to say, choices in how to produce a certain end result.
In reading a new ITKE blog Taming the Wild, Wild Web I thought of a common example of what I am referring to. One can choose to code a web page, for instance, using in-line HTML and specifying literally everything to be included on a page — OR — they can choose to incorporate CSS for example to accomplish the “look and feel” desired. While an argument can be made that using CSS has many advantages — IF one has limited time and little knowledge of how to use CSS well the developer isn’t going to stop and learn CSS and then do the page. (…at least that’s my opinion!).
There will always be pros and cons about a particular method to accomplish a programmed task. Many times the “best” approach to accomplishing the task will be the method best known to the developer. At other times the “best” approach may be the one that executes most efficiently – and at yet other times the best approach may simply be the approach that produces the desired end-result for the user, on-time and on-budget.