Developing a Software is one Thing, Selling it is Another Story

As a developer plans to build a software for both the general public or a specific need, it designs its product using specifications, a design template or sometimes even on the basis of oral instructions. Once done, it is tested under optimal or almost unreal conditions.

Things start to get complicated when either:

1. The user begins to change the computer hardware 2. The software is installed on another machine 3. The user updates or simply upgrades his version of the operating system. 4. The initial context changes5. Or generally, the environment has changed.

It is true that it is impossible to build a software that can fully resist the alterations of the environment in constant development. But a good designer/developer will minimize to a certain level the disruption of its product during its expected life cycle.

Note one very important point. Our goal is not build a software without bugs. The bugs do exist and will probably always exist in softwares. But what we need is to build a workable finished product.

Remember the bug in 2000 in which softwares used two digits to store the year. On year 2000, these same softwares might be confused between the years 1900 and 2000 for example.

Not to be confused with a software developed on a PC with the latest technology for maximum performance. This software could not run on 90% of PCs on the market because it requires a huge amount of resources.

All this is fine but I'd like specific examples you might say.

EXAMPLE 1:

One day, a software publisher has delivered software to manage access to the company. He installed the software and after several attempts without success, he asked me to install Microsoft Office XP instead of Office 2003 and remove the English and keep only the French on the system so that his software works properly. I told him that it's his software that must run and be adapted to the system and not the reverse. I can not change my configuration because of software among other or dedicate one machine for his specific tool. That was absurd!

This is not a bug, it's a bad design/build!

EXAMPLE 2:

Someone develops business management software. It incorporates the maximum possible functionality, good user interface, good performance. Once completed, customers ask how to import the history of their management (sales, invoicing, deliveries ... etc. ..) they have in Excel or in an old DOS software.

Ooooops!

EXAMPLE 3:

A small company developing a utility for sending emails to a clients list and management of advertisements. Once done, they realized that this service is free for a while on some well known websites.

This is to say that building a software is only a step in the process of producing a software.

A software must necessarily go through a series of tests.

• Checking the compatibility with different versions of the operating system (Windows XP, 2000, VISTA. ... etc.) • Test the functionalities of the software with or without service packs and updates. • Test the performance of software on different hardware (CPU, RAM, disk, BIOS, video accelerator cards. ... Etc.) • Check the appropriate functionality in single-user, networked, under Active Directory ... etc. • Test the software on computers running (not fresh machines) that already contain other software installed to ensure that no conflict exists. • There is a big difference between a branded and a clone PC. Make sure to test it on laptops as well as on the Desktop and clone PCs.

Other recommendations:

• Try to put yourself in the user position as possible. • Comment your software as possible, do not say "I'll do itas soon as I finished the bulk of development", you won't! • Respect the essential foundations of development. It will take more time, but you gain much in the end. • Manage your versions properly (there are even tools to help manage source versions) • Avoid hardware dependency and low-level system functions. Especially if you have no guarantee that these features will be supported in the future. • Give importance to the generation of software installation. Over a quarter of problems arise during the installation of the software.

And do not forget the most popular softwares are not necessarily the most efficient!

About Author / Additional Info: K.Marouf
I am a computer systems engineer working as project chief manager at COSIDER Algeria. I develop softwares, maintain computers, train people and all what is related to handy jobs.

Does this article violate or infringe
on your copyright ?
It is a violation of our terms for authors to submit content which
they did not write and claim it as their own. If this article infringes
on your copyrights, then use our Contact us form with the detailed proof
of infringement along with the offending article's title, URL and writer
name. If you do not hear back from us then contact us again in another
10 days. Thank you.

Important Disclaimer: All articles on this website are for general information only and is not a professional or experts advice. We do not own any responsibility for correctness or authenticity of the information
presented in this article, or any loss or injury resulting from it. We do not endorse these articles, we are neither affiliated with the authors of these articles nor responsible for their content. Please see
our disclaimer section for complete terms.