Engagement Model - Mind Spark Technologies
One of the basic notions of the software development process is SDLC models which stand for Software Development Life Cycle models. SDLC – is a continuous process, which starts from the moment, when it’s made a decision to launch the project, and it ends at the moment of its full remove from the exploitation. There is no one single SDLC model. They are divided into main groups, each with its features and weaknesses.
Evolving from the first and oldest “waterfall” SDLC model, their variety significantly expanded. The SDLC models diversity is predetermined by the wide number of product types – starting with a web application development to complex medical software. And if you take one of the SDLC models mentioned below as the basis – in any case, it should be adjusted to the features of the product, project, and company. The most used, popular and important SDLC models are given below:
BASIC STAGES OF SOFTWARE DEVELOPMENT LIFE CYCLE
Waterfall ModelWaterfall – is a cascade SDLC model, in which development process looks like the flow, moving step by step through the phases of analysis, projecting, realization, testing, implementation, and support. This SDLC model includes gradual execution of every stage completely. This process is strictly documented and predefined with features expected to every phase of this software development life cycle model.
Use cases for the Waterfall SDLC model:
- The requirements are precisely documented
- Product definition is stable
- The technologies stack is predefined which makes it not dynamic
- No ambiguous requirements
- The project is short
Iterative SLDC ModelThe Iterative SDLC model does not need the full list of requirements before the project starts. The development process may start with the requirements to the functional part, which can be expanded later. The process is repetitive, allowing making new versions of the product for every cycle. Every iteration (which last from two to six weeks) includes the development of a separate component of the system, and after that, this component is added to the functional developed earlier. Speaking with math terminology, the iterative model is a realization of the sequential approximation method; that means a gradual closeness to the planned final product shape.
Use cases for the Iterative SDLC model:
- The requirements to the final product are strictly predefined
- Applied to the large-scale projects
- The main task is predefined, but the details may advance with the time
Agile SDLC ModelIn the agile methodology after every development iteration, the customer is able to see the result and understand if he is satisfied with it or he is not. This is one of the advantages of the agile software development life cycle model. One of its disadvantages is that with the absence of defined requirements it is difficult to estimate the resources and development cost. Extreme programming is one of the practical use of the agile model. The basis of such model consists of short weekly meetings – Sprints which are the part of the Scrum approach.
Use cases for the Agile SDLC model:
- The users’ needs change dynamically
- Less price for the changes implemented because of the many iterations
- TUnlike the Waterfall model, it requires only initial planning to start the project