If you work in IT sector, you must have heard about Agile methodology. The term Agile has become a buzzword, and lots of software developers have become obsessed with it. In short, Agile means a number of principles and practices which create a certain ideology for software development. There are quite a few methods of software development, but they all share the same principles which were put forward back in 2001 in Agile Manifesto. They are the following:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Agile methodology overview
Agile methods concentrate on short-cycle, incremental and iterative software development. Agile environment is very flexible and adaptable to change. Software pieces are developed continuously and submitted to the customer for feedback. With the customer’s ideas in mind, software pieces are adapted to the new requirements. At the end of the process, you get a final product developed in collaboration among different teams and the customer who took an integral part in the development process. In short, Agile methodology is visualized well on the overview diagram: https://lh6.googleusercontent.com/o_QZmtpH3XrDabJmS6CUQfOySx7dMGlWT0hKH-HL3OfMWazMHDyMffRRR1GZd2aPMpXqjnwmrto1eCQQ_BSbRui11820xRA0qeu2YZ9CqNUeWHqdwToSk5fdRVQT4vXy9A
There are several most popular Agile development methods to consider using:
- SCRUM. This software development method relies upon ‘sprints’ – incremental iterations which last 2-4 weeks. Development environment is rapidly changing. The process is conducted in a close coordination with the customer who voices his proposals as to the overall vision and functionality of the final product on the stage of development.
- Extreme Programming (XP). This is a radical software development method, with software engineering process lying at the heart of it. Development is conducted in short iterations, with constant delivery of software bites. Testing is conducted alongside development.
- Dynamic Systems Development Method (DSDM). This is the original Agile approach which existed before the term Agile was coined. DSDM runs as long as the project is being conducted, resources are stretched over the length of the project, and requirements can be changed.
- Crystal. This is an ultra-light software development approach which involves a team up to 8 developers. It suits well for non-complex, novel, and mutable projects.
Agile methodology allows you to create a productive management chain for complex projects. Agile projects are very flexible and adaptive to change. With the high level of involvement of all the stakeholders, you will get a quality product at the end of the development process.