Software is what connects the hardware in the computer to the humans or the users (live-ware). In the early days, programs were written using machine code (using ones and zeros). The technology slowly evolved from machine codes to assembly languages (which used symbols rather than ones and zeros) to the human friendly languages we find today.
Writing programs in machine code and assembly language was hard and messy. It took a long time to do the coding part and once it was done debugging was a nightmare. With the introduction of human friendly software techniques, the time spent on writing the code, debugging and maintaining went down drastically. Now the developers can easily understand what the code says because it is written in plain English (or any other type of humanly used language). Developers did not have to look at thousands and thousands of lines of ones and zeros or symbols to figure out the problem. With better compliers and editing software, the task of debugging and maintaining become much easier than ever thought possible.
The main target of a developer is to develop software which are efficient, reliable and compatible. This triangle of faith has to be fulfilled if a customer is to be fully satisfied with the software. If the software is not efficient, then the software is not up to the expected standard. Even if the software does what is expected, it will be of very small importance if it takes a long time to complete the task. The software should be able to execute fast, use all the systems and hardware components effectively, understand the users request, process all information and filter the unnecessary parts and provide the required output in a timely fashion.
Reliability is the other important part of the triangle of faith. Software should be able to take the constant pounding of user demand and provide the required output efficiently no matter what. Reliability comes second to nothing. Good software should give out the proper output every time it is requested to do so. Providing the proper solution for 99.99% of the time is just not good enough, it has to be a 100% when it comes to reliability. Many organizations rely on software and millions of dollars could be lost if the software is not reliable. There is absolutely no chance for error when reliability is concerned.
The last link is compatibility. Software should be compatible with all other software in the system, hardware peripherals and all types of users. Software may conflict with the interests of each other, but well written software should be able to put out these differences and function according to the users needs as much as possible. The software should be able to use the system hardware to its fullest so that the users may benefit form hardware upgrades. If the software is not compatible with new hardware devices, then there is no point upgrading hardware peripherals. The main reason for hardware upgrades is to make sure that the entire system works faster and more efficiently than before. Different users will have different needs from the software. The software should be able to identify these needs and cater accordingly. For an example, a user like a manager would use the system for a different reason than a user at maintenance or marketing.
The main idea is that good software should be able to run effectively, reliably and should be as compatible as much as possible with the surrounding environment. The demand for these three qualities are growing higher and higher, and in the near future software will be so efficient, reliable and compatible we should be able to ask one to run for mayor!
Summery: This article highlights the importance of good software, focusing on three criteria which are of utmost importance - efficiency, reliability and compatibility.
|