 |
Search
IT Courses |
|
|
|
|
|
|
|
|
|
|
|
IT
dart News Letter
|
Get
ITdart.com weekly headlines before it's published on our site! Subscribe
and receive the articles delivered to your inbox!
|
|
|
Optimising Features
The problem:
While designing applications, it is very important to decide upon the level of functionality to be made available within the application. This determines the usability of the software and also has an important bearing on the development time, maintainability and complexity.
Very often, the feature set for the application is determined by factors other than the user's advantage. Moreover, while features are being finalised, future enhancements are also required to be taken into consideration. Ease of upgrading the application is determined by the initial design. The more myopic the initial design, the more difficult it will be to upgrade the system. Let's take an example of a common utility to explain the finer aspects of design decision making.
The example:
We will take a simple application and extend it further while creating a feature set for the system. Consider a very simple calculator. The base feature that is required to be provided is the adding of numbers. We have to develop a feature set for this calculator and also specify the user interface.
The immediate response:
The developer community seems to derive maximum job satisfaction from coding. Therefore, most designers (mostly the developers themselves) jump into visual layout or coding without too much thinking. Most of us fall into this category.
Thus a typical developer, if given this problem, will immediately provide the following design (adjoining image).
This interface is nice, attractive, and usable. This will work. It definitely serves the required purpose. But look at the actual number of issues that were not considered here:
No further discussion was undertaken to find out who will use this calculator and for what exact purpose. If speed of operation were a necessary feature, would a text editor where the values are directly typed in be a faster alternative? Are we summing numbers in decimal or any other number systems? Are we adding currency values or high precision values? How is rounding off to be handled? What is the maximum limit to the numbers of digits to be used by the utility? Do you require a log of sums done? If you detect a typing mistake in a number entered earlier, do you need to correct it and then sum the numbers again? Can the numbers to be summed picked up from another application like a spreadsheet? Is this a touch screen based system or will it be used on a standard desktop system? Do you require voice input for hands-off operation? Will the past sums need to be stored and output in another form like a spreadsheet or a table? Will dates or time be added? Does the output need to be converted to words? How soon is this utility required? What business advantage will this utility provide to the end-users? Windows 95 already has a calculator. Then why is this calculator with an apparently stripped down version of functionality required at all? How long will this calculator be used (i.e. application life span)? Incidentally, this is not a complete list. But it does illustrate how many areas were completely ignored while the initial design was done hurriedly. Depending upon the answers, your design could have been entirely different.
Calculator for direct entry:
If the calculator was to be used for direct entry, no number buttons are required. You just type the equation and calculate the result.
Here is how the interface would look like (adjoining image):
A more advanced version of the calculator for multipurpose use and enhanced functionality would be as shown in the image below.
This calculator provides very advanced functions like speech input, lot saving, multiple entry modes, data and time calculations and so on.
It is quite apparent from the above examples that even a seemingly simple application can actually be quite extensive and complex. If the desired level of functional analysis is not performed during the design phase, it is possible to land up with an application that is not very useful and effective.
|
|
|