What is Software? (10th Feb 2003)

I almost forgot about it. Yes, I had my own embedded developers yahoo group. Since the last 5 years it has fallen into decay and I was thinking of deleting it from the face of earth (I mean Yahoo!). I was going through the list of messages and realized that I had started my blogging career way back in 2003. I will now start with rejuvenating my old articles and publish it here. And maybe I am not going to delete that group but will just purge it of useless members. Below is my article from way back in 2003 and I think it is still relevant. Also note the use of the word “Floppy”. I know, I was still using it back then. Nowadays, “Floppy” and “CD/DVD” would attract the most hilarious article ever award!

Software is such a general term. Ask somebody of what a software can be defined as and you will start getting different answers. Answers ranging from something which runs a computer to something which can be on floppy or something which can interact with the mouse. The answer to this question depends on the ability of a user to use computer. Even among software developers, its an issue which often leads to heated debates. Many industry experts have tried to answer the question in their own ways but still its a task of software developers and people in general to figure out what a software
means. Is it only a good GUI or a perfectly working program? What about documentation? Is load testing a necessary criteria before releasing the Alpha versions into the market? What is copyrighting?

I will like to start out this issue with an important topic of what software development is and how we go about doing it. This is a topic to be discussed and I hope all of you come forward and discuss it out
in our group. Anyway, I am carrying on with whatever I understand with the term Software Development. There are a lot of good books out there explaining the software development process in detail. I will just brief out some of the important points of what a software is.

Software is a program or a set of programs which accomplishes a particular task or provides the required services. The software also comes bundled with the appropriate documentation such as user’s
manual, system’s manual, business documents, analysis and design documents,etc. Again, results of various tests that were conducted on the system such as load testing, regression testing, etc. should also be given out with the software. A list of know bugs, a copyright/licensing information, readme files, etc. should also be provided. All of this should be bundled up in an easy to use installation package which would install the software on the destination. Also usability is an important aspect of the whole
software development process.

I hope I have given a good overview of what a software is and what are its different components. In the next issues we will go about searching what is the software development process.