Agile development

‘Agile development’ is a software development methodology that emphasises close attention to user needs, fast development cycles and small development teams

Agile development is a software development process that prioritizes user needs, quick development cycles, and small development teams. It's a different approach than the traditional "waterfall" method, in which all parts are meticulously designed around a master specification. While both techniques have advantages and disadvantages, most observers believe agile development is the better methodology. Agile development ideas are increasingly being applied to think creatively about many elements of management in large organizations.

When to use it

● To respond quickly to the needs of users.
● To allow a software system to evolve as the needs of its users change.
● To make the software development process more enjoyable for the people involved.

Origins

Until the 1990s, most software development followed the waterfall, or 'cascade,' process, in which a high-level design was agreed upon with the client, then the design was broken down into modules that were specified, developed, tested, and finally assembled and given to the customer. This methodology was meticulous and exact, but it was sluggish and costly, and it prevented users from changing their minds about what they intended the system to perform.

Various groups of software engineers experimented with alternative methodologies that entailed better responsiveness to changing user needs during the 1990s. In 2001, at a meeting in Utah, these individuals published the "Agile Manifesto" to define the commonality among their various methodologies. The 'agile' approach of working gained legitimacy thanks to this manifesto. Since then, a number of specific agile methodologies, such as Scrum development, have gained popularity.

What it is

Requirements, design, implementation, verification, and maintenance were the five steps of the conventional waterfall technique for software development. Projects become more rigorous and effective as a result of this systematic approach to software development. Many consulting organizations, like Accenture and Infosys, were founded on the meticulous application of these principles. Carnegie Mellon University created the so-called "capability maturity model" as a technique of determining how rigorous a software project was.

Because many engineers were irritated by the waterfall approach's rigidity, Agile evolved as an alternative methodology. Most computer users are unsure of their specific requirements, and these requirements frequently alter. The principles of the agile movement were articulated as follows (www.agilemanifesto.org) during a well-known conference in Utah in 2001: 'By doing it and helping others do it, we're discovering better ways to develop software.' We've learned to cherish the following as a result of our work:

● Individuals and interactions take precedence over procedures and tools.
● Working software takes precedence over thorough documentation.
● Customer collaboration takes precedence over contract negotiation.
● Responding to change takes precedence over sticking to a plan.

That example, while the goods on the right have worth, we place a higher value on the items on the left.

How to use it

Agile software development is a high-level concept, nearly a philosophy, for how software should be developed. A variety of similar approaches have been developed to put this into effect, the most frequently utilized of which are known as XP and Scrum.

The development of working software is at the heart of 'XP,' or extreme programming. It disregards all other ostensibly unimportant matters, such as managerial politics and quality assurance. Release planning, iteration, and acceptance testing are the three key work processes in XP. The initial pass through the three processes collects information from users, which is then used to work out the faults in the following iteration. There may take multiple iterations of software before it has enough features to meet the needs of consumers. Users are given access to this minimally viable product once it has been produced.

Users are treated as members of the XP development team, and are encouraged to submit 'user stories' describing how they use the program and the gaps it fills. Changes are integrated at least once a day, the project is continuously monitored to determine the quantity of work completed, and programmers work in pairs. It was discovered that working in pairs is more efficient and fun than working alone or in a large group.

Scrum gets its name from a rugby team's gathered throng of forward players. The scrum methodology's main idea in software development is for the team to work quickly and collaboratively to complete the task - to release software.

In contrast to XP, scrum considers both the technical and managerial aspects of the development process.

Scrum starts with the scope and software design of a project. A scrum team has clearly defined roles. The 'product owner,' for example, represents the stakeholders and communicates consumer feedback to the team; the 'development team,' on the other hand, codes and assembles the software; and the'scrum master,' oversees the scrum process.

Team members split the work among themselves as they work through a backlog of development and coordinating chores. Following that, the development effort is organized into'sprints,' which are two to four-week work cycles. The 'daily sprint cycle' is a feature of any sprint program that involves daily update meetings to discuss what was accomplished the day before and what the goals for today might be. Members of this scrum meeting remain standing to encourage them to keep the meeting as brief as possible.

The 'burndown chart,' which shows how much work is left in the sprint, and the 'product backlog,' which is the whole list of requirements not yet in the product release, are two more essential agile ideas.

Top practical tip

Agile is all about giving software development teams more ownership over their work, which translates to more freedom to act. If you're in charge of managing an agile development project, you must be careful not to micromanage the team's actions.

Top pitfall

The developer and the user must have a close relationship in order for agile development approaches to work. For example, user stories are used to develop software in XP, but these tales are short and vague by design. As a result, as soon as a piece of development work is completed, the user should be invited to assess it and provide comments on how it might be improved. There is a risk that the development project will proceed in the incorrect direction without this close loop.

Further reading

The ‘Agile Manifesto’ website: www.agilemanifesto.org Beck, K. with Andres, C. (2004) Extreme Programming Explained: Embrace change, 2nd edition. Harlow, UK: Addison-Wesley Professional.

Schwaber, K. and Beedle, M. (2001) Agile Software Development with Scrum. Upper Saddle River, NJ: Prentice Hall.

📫 New Key Models in your inbox

Join the newsletter to get new models and announcements the moment they are shared:

ℹ️ About

A set of thinking tools and frameworks to assist you in solving problems, making decisions, and understanding systems.

Buy me a coffee to support this project! and Click here if you want to learn more about this tool!