Agile methodology is the software development approach based on iterative development and incremental model. Instead of in-depth planning at the beginning of the project, this methodology implies continuous requirements changing during the development process. Agile is aimed at ongoing interaction with end users (in our case, a customer is implied). Every project includes some iterations which take definite time. The goal of every iteration is to get a working product.
Agile process is supposed to promote collaboration between self-organizing teams and personal communication. Business partners along with developers should be involved in the process in order to comply the product with customers’ needs as well as business goals.
Agile methodology refers to any process which is focused on the Agile Manifesto ideas. The Manifesto was created in 2001 when the group of leading developers came together to discuss the simple development methods. As a result, “Manifesto for Agile Software development” was published.
Agile Manifesto is considered as a clearly marked difference in conventional development management. The main idea the manifesto is based on is to satisfy customers by developing valuable software. The aim can be reached with business people and developers interaction when they communicate face-to-face. People engaged in the development should be motivated and adhere to simplicity, which is believed to be the key feature of Agile process. Moreover, the team considers the ways to become more effective and adjust the process.
When there’s a valuable idea that can be implemented, the project team starts determining the scope of responsibilities and tasks. The aim of the stage is to break the idea into smaller work parts including functions and tasks, and then their priorities are defined and iterations are assigned.
The stage includes face-to-face communication between stakeholders, managers, and users to define business requirements. The team collects data about how and who is going to use the product. These requirements should be relevant, detailed and quantitatively estimated.
System and software designs are created focusing on the requirements defined at the previous stage. The team thinks over the way the product or solution will look. Moreover, the team works out testing strategy and further planning.
Implementation, coding, development.
It is related to creating and testing the tasks which have been completed already. Besides, iterations for deployment are planned. The development stage starts with iteration 0, as there are no functions available. The stage lays the groundwork for project development and performs the following tasks: completion of the contract, environment preparation, and financing.
When the process of coding is completed, it needs testing to ensure that the product fulfills customers’ needs. The following testing is conducted here: unit testing, integration testing, system testing, and acceptance testing.
After testing, the product is demonstrated to clients for using it. But deployment doesn’t mean the end of the project. When clients start using the product, they can face new problems which the project team should resolve and rerun all stages.