A software development process, also known as a software development life-cycle (SDLC), is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. Some people consider a life-cycle model a more general term and a software development process a more specific term. For example, there are many specific software development processes that 'fit' the spiral life-cycle model.
Software development is that set of actions required in efficiently transforming a user's needs into an effective software solution. It defines the activities required for building the software, incorporating the methods and practices to be adopted. It also includes the activities essential for planning the project, tracking its progress and managing the complexities while building the software. The objectives of software process management are to produce products according to plan while simultaneously improving the organization's capability to produce better products. So the process required for a software development project includes the following:
- A structured framework of organized activities needed to create a software development process for the life cycle of a product.
- A detailed description of the activities required to manage the development of a software product, from requirements analysis definition through implementation and maintenance.
- Supporting documents including requirements definition, systems analysis, design documents, user manuals, training documents, installation manuals, error guides, etc.
Dozens of process models are available for software projects to utilize—waterfall model, spiral model, throwaway prototyping, incremental development, operational prototyping, extreme programming, etc. to name just a few. There is no such thing as a process model that works for all projects in an organization. Every project must select a process that makes the most sense for it. The selection should be based on corporate culture, risk willingness, application area, volatility of requirements, and the extent to which requirements are well understood.
Study the project's characteristics and select a process model that make the most sense. For example, when building a prototype, you should follow a process that minimizes protocol, facilitates rapid development and does not worry about quality audits and documentation. When building a life critical product, the opposite is true; i.e., you should choose a development process that has procedures, quality audits, performance reviews and best practices that ensure the development of a bug free product.