In this article, I will explain why follow Agile Framework instead of Waterfall. Later I will explain the different methodologies of Agile Framework.
Enterprises following agile development process helps their team to cut risks and to mitigate uncertainty. This has led to cut development time and delivering of relevant high quality product to the current market.
Agile Methodology is becoming popular and catching up with the IT industry because of the following reasons:
1. It helps teams embrace rapid changes & increase adaptability with customers easily.
2. It helps teams to mitigate risks at early stages of product life-cycle.
3. Customers see the visible progress as they are able feel of working software.
4. Customers give feedback at every stage of the product life cycle, since they are part of the product development.
5. Early adaptation of feedback leads to a system that meets the needs of various stakeholders.
6. Complexity of the features are properly prioritized and easily managed by the team.
7. Team has chance to learn from mistakes during each iteration of development.
Using the Agile methodologies helps team to avoid pitfalls of traditional approach such as
1. Stabilization of Product and Releases are too long.
2. Unable to carry out Frequent Code changes
3. Unable to do rework development.
4. Requirements are not clear as client is not involved in every iteration of development.
5. The time difference between requirements taken and product released time was very long, This elapsed time made product irrelevant as market has changed rapidly.
For all the above reasons IT teams are embracing Agile Methodologies and develop new rapidly changing products.
The Different methodologies of Agile Framework are as follows:
1. DSDM : Dynamic System Development Methodology is an agile framework for software projects, it was used to fine tune the traditional approaches. The most recent version of DSDM is called DSDM Atern. The name Atern is a shortening of Arctic Tern – a collaborative bird that can travel vast distances and epitomizes many facets of the method which are natural ways of working e.g. prioritization and collaboration. DSDM addresses the most common failures of information systems projects, including exceeding budgets, missing deadlines, and lack of user involvement and top-management commitment
2. Scrum: Scrum is most popular agile framework in the world, Scrum uses iterative and incremental development model. Scrum concentrates particularly on how to manage tasks within a team-based development environment. Scrum provides the simple framework of basic tenets to solve problems and deliver good results – more valuable software faster.
3. XP : Extreme Programming is a type of agile software development, it advocates frequent “releases” in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. The methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to “extreme” levels. Extreme Programming is a software-development discipline that organizes people to produce higher-quality software more productively. XP addresses the analysis, development and test phases with novel approaches that make a substantial difference to the quality of the end product.
4. TDD: Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the least amount of code to pass that test, and finally refractors the new code to acceptable standards.
5. Lean: Lean is a production practice that considers the expenditure of resources for any goal other than the creation of value for the end customer to be wasteful, and thus a target for elimination. Working from the perspective of the customer who consumes a product or service, “value” is defined as any action or process that a customer would be willing to pay for. Lean is centered on preserving value with less work.
6. Kanban: Kanban is a system to control the logistical chain from a production point of view, and is not an inventory control system. Kanban was developed by Taiichi Ohno, at Toyota, to find a system to improve and keep up a high level of production. Kanban is one method through which JIT is achieved. Kanban became an effective tool in support of running a production system as a whole, and it proved to be an excellent way for promoting improvement.
To close Agile Framework helps teams to benefit like
1. Faster Time to Market.
2. Reduce Uncertainty & Risk.
3. Increase ROI by focusing on Customer Value.
And all the teams who want to carry out Agile can choose one of the above methodologies depending upon their team flexibility and adaptability.
In my next blog article I will explain about Agile Values and Principles.