Encyclopedia: Software Development

The software development process. How custom software is built.

Proposed software is defined and a software requirements document is created. This document is normally drafted from a series of interviews conducted to elicit the business rules and user requirements. If existing software is to be replaced, the existing software is evaluated and software and processing deficiencies are identified. This is normally done by interviewing users of the software and consulting with software support personnel. The results of the software evaluation are then added to the new software development requirements. In particular, the new software design must address the functional requirements and any deficiencies in the existing software application, with specific proposals for improvement of the software functionality. The software design document is completed and plans are laid out concerning the physical construction, hardware, operating systems, programming, communications, database design, and security issues (the software development plan).

The custom software is developed in accordance with the software development plan. The new components and custom programs are tested and installed. Software users must be trained in its use, and all aspects of specific and performance must be tested and verified. If necessary, software modifications, adjustments or enhancements should be made at this stage. Following acceptance, the custom business software is put into production. This can be done in various ways. The new system can phased in, according to application or location, and the old software gradually replaced. In some cases, it may be more cost-effective to shut down the old system and implement the new software all at once. This decision can also be influenced by any special interface or software integration requirements. Users of the software should be kept up-to-date concerning the latest software modifications and procedural changes.

Reasons for using software development life cycle management:

Implementing a reliable software solution within a predictable time-frame using a specific set of resources requires a proven approach. Both the product and the work required to implement it are complex. The effectiveness of the product and the process can both be made more reliable by using a defined set of principles, models, disciplines, concepts, guidelines and practices that have been demonstrated to work.

In addition to providing a framework in which to manage the custom software development process, a life-cycle methodology also reduces business risk by providing a method of improving the likelihood that all necessary business requirements are identified and addressed appropriately in the application. Business risk is further reduced through the use of a defined management process through its provision of a consistent mechanism for estimating the scope and complexity of specific implementation tasks.