In the past software methodologies tried to make software projects flow like factory production lines. The ideal project was meant to flow rigidly through requirements, software design, coding and testing to delivery. More recent agile and iterative development methods have a better rate of success and customer satisfaction.
Software Process Types
There are two main types of Software Process - the traditional Waterfall process type and the more modern Agile software processes.
What kinds of Software Process Exist?
Software processes fall into two broad camps:-
See also the Pros and Cons of the different
See also the Pros and Cons of the different process types.
The Waterfall software development model treats the process of creating software as one-time-through series of steps in the order – requirements analysis, design, implementation/ coding, test and release.
Waterfall Process Flow
One key aspect of the waterfall method is that there are no working deliverables until the very end of the project. By this time, it is often too late to change features which are not as useful as they might be.
With a Waterfall process, as soon as the requirements are agreed, you are committed. The customer sees no aspect of their system working until the project is complete and there is little or no opportunity for objective evaluation of the product during its development.
Agile methods adopt an iterative approach and involve the customer more closely in the development of a product than a Waterfall development.
Agile or Iterative Process Flow
The development team and customers agree a set of requirements and a project schedule upfront. The development is planned as a series of separate phases (also called iterations or sprints) allowing incremental delivery of product features.
Another key aspect of agile software development is ongoing involvement of the customer in the development. At SliQTools we pride ourselves on keeping customers aware of progress and involving customers in the planning process. This doesn’t just mean that at the end of a sprint, the customer has a chance to make comments on the partial delivery. Rather, the intention is that the customer is consulted whenever it is not clear how a particular feature should be implemented. The intention is to reduce the possibility of misunderstanding or mistakes in the requirement as soon as possible in the development process.
Agile processes were developed in response to the poor rate of success in developing software using a Waterfall process. The level of customer satisfaction with products developed under a Waterfall process tends to be low.