Agile SDLC — Software Development Life Cycle #2
--
This is the second part of my previous article aiming to clarify different concepts, processes, stages, best practices around SDLC.
Agile is a culture expressed by values and principles.
Agile is a culture expressed by values and principles. Whilst it is not correct to talk about Agile methodology, over the last 20 years Agile has been related to frameworks, practices, methods.
Agile has a different approach and outlook for each project from the traditional methods of waterfall and prototype and thus helps to address the needs of contemporary projects and is in sync with the current level of development. In Agile, continuous iterations and testing take place during the entire Software Development Life Cycle (SDLC) of a product.
The most popular Agile methods include Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (DSDM) (1995). These are now collectively referred to as Agile Methodologies, after the Agile Manifesto was published in 2001. See Agile Manifesto.
While there are many differences between these methodologies, they are based on some common principles, such as short development iterations, minimal design upfront, emergent design and architecture, collective code ownership and ability for anyone to change any part of the code, direct communication and minimal or no documentation (the code is the documentation), and gradual building of test cases.
In the SDLC context, the Agile model is a combination of iterative and incremental process models with focus on process adaptability and customer satisfaction by rapid delivery of working software products. Agile methods usually break the product into small incremental builds. These builds are provided in iterations. Each iteration typically lasts from about 1 to 4 weeks. Every iteration involves autonomous, cross functional teams working on different phases (e.g. Planning, Requirements Analysis, Design, Coding, Testing).
Software development is complex and requires multidimensional growth. Having a single model like waterfall or prototype for development is not enough for the product requirements and…