In: Computer Science
A Software process is a set of activities needed to perform in order to develop a software, the entire developement cycle of software is what we call as 'Software Development Life Cycle(SDLC) '. The activities that are primarily involved are -
1)Software Specification
2)Software Design and Implementation
3)Software Verification and Validation
4)Software Maintenance or Evolution
There are different software process the important being - Waterfall Model, incremental Development, Iterative Development, Agile.In real software development life is the choice of process solely depends on the type of requirement for small-medium sized project Agile is prefered, for large projects where requirement is ambiguous Spiral is followed, then Incremental and Iterative for those projects where there is a structured process with a detailed and accurate description of the system.Waterfall is the most conventional however least followed as it is not at all customer centric required crystal clear requirements in crtical systems.
Mostly Agile is followed , since its an amalgamation of incremental and iterative approach in which the changes or increments are small and new releases are made available to the customers in a short span of time. The 'Cutomers' play a key role in the proposal of new requirement changes.A number of agile methods are bieng incorpated such as Scrum,Crystal, Agile Modelling, etc.,
So as to why Agile is prefered over Iterative or Incremental is because - each increment in the incremental approach builds a complete feature of the software, while in iterative, it builds small portions of all the features while agile builds a small portion of each feature one by one and then both gradually adding features and increasing their completeness.
The concept map for agile and iterative are shown below-