Software Development Process

The software  development process is either a structured or iterative approach to creating and maintaining a system used in information technology. It can be applied to networks and online services, but is most often used in software development.

Some software  development process models have as few as five stages, while others have as many as ten. A typical software  development process used for developing a software application might include the following stages:

Planning - The most fundamental part of the software  development process is planning. This includes steps like determining a need for a specific program, who will be the end users, what the development will cost, and how long it will take.

Defining - In this stage, the general development plan is funneled into specific criteria. The specific requirements of the program are defined. At this stage, the development team may also decide what programming language should be used to build the program.

Designing - This process involves creating the user interface and determining how the program will function. For larger applications, it is common to create a design document specification (DDS), which may need to be reviewed and approved before the actual development begins.

Building - The building stage typically comprises the bulk of the software development process. It includes programming the source code, creating the graphics, and compiling the assets into an executable program. Small projects may involve a single programmer, while larger projects may include multiple teams working together. For example, one team might design the user interface, while another team writes the source code. For multiplatform applications, individual teams may be assigned to different platforms.

Testing - The all-important testing phase allows the developer to catch unknown issues and fix any bugs that arise in the program. Some testing may be done internally, while a beta version of the software might be provided to a select group of users for public testing.

Implementation or Deployment - Once a program has passed the testing phase, it is ready for deployment. In this stage, the software is released for in-house use or to the public. .

Maintenance - After a software application has been released, there may still be additional bugs or feature requests submitted by users. The development team must maintain the software by fixing bugs and adding new features. Commercial software programs often include some level of technical support. 

Evaluation -  Evaluation step is an extension of the Maintenance stage, and may be referred to in some circles as Post-implementation Review. This is where the system that was developed, as well as the entire process, is evaluated. Some of the questions that need to be answered include: does the newly implemented system meet the initial business requirements and objectives? Is the system reliable and fault-tolerant? Does the system function according to the approved functional requirements? In addition to evaluating the software that was released, it is important to assess the effectiveness of the development process. If there are any aspects of the entire process, or certain stages, that management is not satisfied with, this is the time to improve. Evaluation and assessment is a difficult issue. However, the company must reflect on the process and address weaknesses.

Disposal - Plans are developed for discarding system information, hardware and software in making the transition to a new system. The purpose here is to properly move, archive, discard or destroy information, hardware and software that is being replaced, in a manner that prevents any possibility of unauthorized disclosure of sensitive data. The disposal activities ensure proper migration to a new system. Particular emphasis is given to proper preservation and archival of data processed by the previous system. All of this should be done in accordance with the organization's security requirements

The reason the above stages are referred to as a cycle is because these stages are repeated each time a new major version of the software is released. While the maintenance stage may encompass minor updates, most software companies stay in business by regularly releasing paid updates (version 2, version 3, etc). Before embarking on a new major version, the development team must first create a plan (stage 1) and then continue through the other stages of the software  development process.

© G.E. Russell & Associates 2015