On the web, you can often encounter such terms as Agile teams or agile software development. The farther you go, the less you know. A person unfamiliar with such methods of work, looking for further information on Agile, can get scared of terminology, and many new terms that at first glance might sound complicated. As part of the introduction to Agile, we will try to clear up some of them to show that Agile is not as black as it is painted.
What is Agile – the Agile Alliance definition
When looking for information on Agile methodologies in project management, it is worth referring to the source, i.e., the definition of Agile Alliance, an organization based on the Agile Manifesto for Software development principles (don't worry, you will soon learn what it is too). “Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment.”
The roots of Agile date back to 2000, when a group of programmers sought new ways of working in an increasingly dynamic IT environment. A group of 17 people met on an informal trip in a ski resort in Utah, during which the idea of so-called lightweight methods for software development, now known as Agile project management, was created from the presented assumptions.
- Agile Manifesto
Agile Manifesto for Software Development is a declaration made in 2001 during the abovementioned trip. A document presents 12 principles of agile software development, based on the following assumptions – the signatories stated that in projects they put:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer cooperation over contract negotiation
- Responding to change by following a plan
- Behavior-driven development
BDD is the agile software development approach, the popularity of which is growing. It is a process of product development based on the expected behavior of the application, aimed at meeting specific requirements.
- Backlog / Product Backlog
Product Backlog consists of prioritized planned activities and tasks that are necessary to create an application.
- Continuous Development
Teams working agile are focused on continuous development. Both product development (by delivering it in small parts) and self-development, by insight into their work and making improvements.
In agile projects, estimation simply means specifying the effort (and thus the time) necessary to work on a given issue.
- Extreme Programming
It is one of the Agile frameworks that develops the idea of “Responding to change over following a plan”. It's a framework created by Kent Beck, one of the signatories of the Agile Manifesto. In XP, the product is being developed in short cycles, e.g., 1-week iterations.
Iteration is a short, fixed cycle in which the team delivers little functionality as part of a whole. The length of iteration depends on the needs of the team, product, or framework. In Scrum, for example, iterations are called Sprints and usually last 1-2 weeks.
Kanban is one of the simplest agile frameworks that uses visualization to monitor the workflow. For this purpose, Kanban boards are used which are divided into sections, e.g., to do, in progress, and complete. The main point is to limit the tasks in progress to close the tasks, and not focus on managing those that require attention.
It is a product that has enough qualities of the target product to attract early adopters. In other words, the development team does not have to create the entire application from the beginning to the end to present its most important functionalities to the client and gain feedback.
Scrum is a simple framework for the implementation of projects, which assumes iterative work on the product and its continuous development. Its principles include transparency, inspection, and adaptation. In Scrum, self-organizing teams work in a spirit of trust, openness, and respect for each other and communicate often. The most important assumptions of Scrum are gathered in the Scrum Guide, and the role of the Scrum Master (it is the responsibility within a team) is to make sure that these principles are understood and respected.
- Test-driven development
This is a method of software development, which was also developed by Kent Beck. In a nutshell, it is about repeating the cycle of Red – Green – Refactor, and the team starts by writing tests for functionality that has not yet been built (Red phase).
According to Agile Alliance, it is a small group of people who have the necessary competencies to create a product (both technical competencies and business knowledge). For example, in the Scrum framework, teams consist of 3-9 people, to maintain high efficiency and good communication.
- User story
Creating a User Story is a way of describing requirements, containing elements such as the role of the end user, their need, and business justification. User stories have a formula, e.g. As a Business Consultant (role), I want to have an insight into corporate dashboards (need) to better plan my activities (purpose).
This is a metric showing the speed with which the team meets the requirements from the backlog. After the iteration, the team compares the estimation made with the real time needed to close given tasks (based on effects) – this way, they can estimate more accurately in the future.
The above issues are only a small part of the terms related to the Agile methodology. In fact, if you want to use one of the Agile frameworks, you need to get familiar with more definitions, which initially may sound unclear, but over time (as you practice) their use comes naturally. We hope that we have encouraged you to learn more about agile methods of project management and use them in your projects.