Basic Characteristics Of A Good Software Application

This is an English translation to an article that I’ve written two years ago. It was published in the Computer Report which is the monthly magazine of  Iran informatics society.

This article concerns about the role of simplicity of a software application and it’s effect on user’s expectations.

It looks difficult to define a good software system because of different manners and highly contrasted approaches of users. However, I am just looking for an overall definition without drilling down into the details. I think this approach makes us enable to define how good a software application could be.

A Good Software Application
A Good software application satisfies it’s users. User satisfaction is related to the size and scale of the application. It almost is a reversely proportion. Because a large, complex and expensive application that claims more services increases the user’s expectations.
There are complex situations that may happen when a user interacts with an application. Obviously complex scenarios and multiple options make it difficult to satisfy user. To clarify this matter, I’ve just used three samples:

First Comparison, Application Servers
I’ve worked with IBM Websphere some years ago. I believe it doesn’t have more competitive advantages over something light and simple such as Apache Tomcat in a real world. IBM WebSphere is expensive, lazy, heavy to load and needs much more configuration steps to be ready and finally it is slower than Apache Tomcat which is a free product. Of course WebSphere has many features, However they aren’t necessary for many projects.

Second Comparison, Databases
Everybody knows that Oracle database is an advanced and reliable database. It is pretty well-known. However, it needs a lot of knowledge and resources to get started. It uses a complex object oriented SQL language! It provides advanced recovery procedures. It is much faster than it’s competitors such as IBM DB2 and MS-SQLServer based on my experience. In one word, Oracle database is just brilliant. However you have to pay much more than it’s real value to use Oracle database in compare with MySQL which is free and fast starting, simple to use and more friendly to developers. Oracle’s database serves lot of services that increases your expectations. In contrast, MySQL just servers the functionalities that you really need and nothing more. I myself have worked with DB2, Oracle and SQLServer among the years and I believe MySQL is a key product that increases the chance of success of the projects in compare with those giant complex heavy tools.

Third Comparison, Wordprocessors
The last example is the most interesting one. OpenOffice is a multi-platform, multilingual office suiteand an open-source project which is compatible with all other major office suites. It is free to download with a lot of features. But, in Ubuntu Linux I used to write by nano or Geany which are pretty faster and simpler to use. In Mac OS X users almost prefer to use TextMate or TextEdit. Even NeoOffice that is another implementation of OpenOffice is more easier to apply than OpenOffice, itself. I believe this is because NeoOffice becomes more similar to Mac applications which are all about simplification of doing things. Mac knows how to hide extra options and features to provide simpler interface for hardware and software. I think convention over configuration which is using widely by modern frameworks is just somehow hiding extra options that confuses user.

Simple Guidelines To Develop Better Application
I’ve defined two formulas to show the relation of user satisfaction and application size and price. These are not mathematical aspects and I just want to show the relation of parameters.

First formula shows how application size and it’s cost are effective on user’s expectations:

User expectations is directly proportion to (Amount Of Features * Application Cost)

And second formula defines how it is important to minimize user expectations, to increase user’s satisfaction without paying much:

User satisfaction is directly proportion to (User Satisfied Expectations/Entire User Expectations)

Note: User satisfaction is inversely proportion to amount of features and services (application size) which the producer claims and the cost of those services.

The followings are simple guidelines for developing a good application:

  • A good application is not necessarily the bigger one.
  • A simple application has more chance to satisfy it’s users over a complex one.
  • Cheaper application almost satisfy user easier than an expensive one.
  • Reducing features or at least hiding them helps to reduce user expectations.

User chooses better application by experience. So let him have cool experience with your application.

This entry was posted in Open Source, Software Engineering, Software Market Demands. Bookmark the permalink.

Leave a Reply