Monday, 25 June 2012

The Commandments for Developing Good Software

Like their theological counterparts, software developers follow certain unwritten technical commandments when doing their work. These commandments are the result of long experience and hard work.
The software commandments can be summarized as: the software developer must start development with software requirements. He or she must interact with end users as often as possible; they must not permit unwarranted changes in requirements; upfront investing in software architecture is not desirable. The software developer must not confuse products with standards; talent should be recognized and retained. The developer must understand object-oriented technology and design web-centric applications and reusable components. Planning must be made for changes and last of all, developers must implement and adhere to production acceptance process.
Requirements of the software must be understood before developing it. It is imperative to define the requirements of a software system to make the end product a success. It must accomplish what it set out to do. It is to be remembered that unlike humans, computers need precise instructions to produce precise results. In fact, as per human psychology, one question lead to another and the question count exponentially increases. To counter this problem, exact and encompassing instructions must be incorporated during the development of software. A large number of development projects start with a good set of functionality requirements. But the problem is that, in many cases, performance and other environmental requirements are left out. The RAM or disk space required to run the software must be considered. The minimum display size should also be considered. With the advent of Java programming, environmental issues have come to the fore. Java programs can run anywhere- from smartcards to workstations and even in mainframes. Keep in mind, however, that a Java applet that looks nice on a big monitor screen may not look much on a small PDA screen. Budget is also another undeniable important factor.
The end user is very important and communication should be maintained with them at all times. Developers generally do not use the software they create. This onus goes to the end-users, customers and clients. The development team should pay attention to people who use the functionalities. Communication between software developers and end-users is important as requirements must be clearly understood.
Unwarranted changes in requirements are very disruptive. Some of the changes are accepted by the programmer not for valid functional reasons- but to simply please the user. Many a time, the software could be fully functional, but the programmer may want to add a feature just to improve it a little. Again, many changes are due to the developer's stickler for perfection- the software must be perfect in the developer's eyes. To prevent such unwarranted changes, a few methods should be adopted. Foremost among them is to document all the requirements of the user. This allows the user to review the completed requirements document and agree to its completed status.
Software developers including Java programmer Sydney compatriots must also adjust for budget and schedule impacts before allowing requirements to change in the future.

No comments:

Post a Comment