The meaning of the word Agile is the ability to adapt and react in a quick and efficient way to the changes in the environment and demands imposed by the environment. It is a term for iterative and incremental software development method. Every time we need a solution which is more visible for customers and a solution which is more responsive for changes without compromising the quality of the solution we should use Agile methodologies.
The characteristics in Agile are, modularity, iteration, incrementation, adaptive, collaboration, and being people oriented. There are different types of agile methodologies which are used.
Scrum concentrates mostly on how to manage tasks within a team based development environment. There are three main users, the scrum master, product owner, and the development team. The scrum master is the head of the development team and he is the person who holds daily standup meetings so that the development team get a chance to clear the obstacles on their development path. The product owner is the person who is in need of the system and he or she prepares the product backlog with all the requirements of the system. The development team carries out the obligation to develop the product on time.
Lean methodology is based on the principle of “just in time” (JIT) production. Eliminating waste can be seen as an important characteristic in lean because time, money, and other resources are saved because we do not continue working with unnecessary development. The product owner can decide the requirements as late as possible and the developers can deliver as fast as possible.
In kanban the development team should visualise what they are going to do today. They must consider the workflow of the requirements and features and should choose the most important feature that needs to be developed.The amount of work in progress is limited here because every time a requirement is done the developers always choose the next most important feature to complete so that the flow is enhanced.
This is useful when there are constantly changing demands and requirements from the customers. This should promote high customer involvement and rapid feedback loops for successful development. Main aim of extreme programming is to deliver high quality software quickly and continuously. So that releases take place every 1-3 weeks with continuous testing and continuous planning.
Dynamic systems development method (DSDM)
DSDM provides an agile project delivery framework for rapid software delivery. Key principles of this is business needs, active user involvement, empowered teams, frequent delivery, integrated testing and stakeholder coordination. DSDM focuses on the useful 80% of the system which can be obtained by the critical 20% of development. Projects are prioritised using MoSCoW rules where M stands for Must Do, S stands for should do, C stand for could do and W for won’t do.
It is seen that there are many different Agile methodologies that are available. But not all can be used in order to get the maximum benefit of the software development plans. The principles and values of the organisation, the realities of the product you are going to be developing, and the status of the stakeholders must be understood by companies and other individuals in order to make their products successful.