Agile Methodologies: Why Does Agility Work?
Since the origin of Plain Concepts, we have been committed to agile methodologies, both internally and by helping clients to incorporate them into their way of working. It is in our DNA to focus on technical excellence, doing things right, and delivering value to the client.
- 1 What Are Agile Methodologies?
- 2 The Origin of Agile Methodologies
- 3 The Advantages of Agile Methodologies
- 4 The Most Common Agile Methodologies
What Are Agile Methodologies?
Agile methodologies are work tools that make the execution of high-value projects more efficient, productive and flexible for users. Their main objective is to develop quality products that respond to changing customer needs. The projects are adapted to the day-to-day work and to the emergencies that may arise.
In this article, we will analyze the main characteristics of the agile philosophy and we will see why it is more efficient than other methodologies.
The Origin of Agile Methodologies
The Agile Manifesto
The origin of Agile dates back to 2001, when relevant members of the software community met in Utah (United States) to share and discuss the best practices of each company, resulting in the «Agile Manifesto», a set of principles that shift the focus from traditional project management to focus on continuous value delivery. This set of principles is based on creation, result analysis, and continuous improvement. Something that is constant and fast, with short delivery cycles that seek effectiveness.
This current emerged as an alternative or solution to the problems presented by traditional management, which became a bureaucratic, slow process that did not adapt to changes and ended, most of the time, in software deliveries that no longer met the customer’s needs.
Agile is a work system that originated in software development, but which, thanks to its effectiveness, has been transferred to different departments and companies over the course of two decades.
The 12 Principles of the Agile Manifesto
The «Agile Manifesto» is based on 12 principles for better software development:
- Satisfy the customer through early and continuous delivery of valuable software.
- Accept that requirements change, even late in development. Agile processes leverage change to provide a competitive advantage to the customer.
- Deliver functional software frequently, between two weeks and two months, with preference given to the shortest possible time period.
- Collaboration between business managers and developers during the project.
- Projects are developed around motivated individuals. Give them the environment and support they need, and entrust them with the execution of the work.
- A face-to-face conversation is the most efficient and effective method of communicating information to the development team and between team members.
- Working software is the primary measure of progress.
- Agile processes promote sustained development. Developers, developers, and users must maintain a steady pace indefinitely.
- Continuous attention to technical excellence and good design improves agility.
- Simplicity, or the art of maximizing the amount of work not done.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to be more effective and then adjusts and refines its behavior accordingly.
The Values of the Agile Manifesto
At Plain Concepts, one of the things we like most about agile methodologies are their values and very clear ideas that allow us to make decisions more quickly and efficiently in a given situation or problem.
- Value individuals more than processes and tools.
The main success factor in a project is the motivation of a team to do it. Without people with knowledge and the right attitude, results will not be produced. Processes should be a support to guide the work and tools should help to improve efficiency. However, employees are the most important thing. Motivated and happy people produce much more.
- Value working software more than comprehensive documentation.
What the software does and how well it does it is the measure of project progress.
This value does not mean that nothing should be documented, but it recommends that we only focus on what is useful at any given moment. Not all projects and development teams need the same type of documentation.
- Value collaboration with the client more than contractual negotiation.
In agile development, the client-supplier collaboration relationship must come before contractual agreements: we collaborate closely with the former to seek the achievement of objectives that maximize the value delivered.
- Value responding to change more than following a plan.
Traditional project management disciplines are based on planning and control to avoid deviations from the plan. However, one of the main values of agile management is based on adapting to change.
The Advantages of Agile Methodologies
Working with agile methodologies has many advantages for the company in general and for employees in particular:
Flexibility And Adaptation To Change
Applying agile methodologies means making projects more manageable: you can break them down into smaller tasks and, for example, change the delivery date if other emergencies arise.
In agile methodologies, the development of a project is an iterative and incremental process. At the end of each cycle, the team can check if the development is optimal or if changes need to be made. In this way, errors are resolved long before reaching the final product, or overspending of the budget is monitored.
Collaboration And Transparency With The Customer
We end this tour of the advantages of agile methodologies by talking about how these work tools increase trust between the company and the client. The latter sees the development of the project at all times and exchanges opinions with the development team in order to move forward. Thanks to continuous feedback, the quality of the final product are higher.
The Most Common Agile Methodologies
There are different agile methodologies. At Plain Concepts, for example, we use Kanban and Scrum. But there are others, which we also explain.
Scrum is the methodology we use the most at Plain Concepts because from our experience:
- It adapts well to continuous value delivery.
- It minimizes productivity losses due to context changes.
- It allows us to establish clear objectives with our clients.
Scrum is based on dividing the project into sprints with the objective of making regular and partial deliveries of the final product.
The Scrum methodology makes it possible to tackle complex projects that require flexibility and speed, which are essential when it comes to executing changes and obtaining results.
The strategy is oriented to manage risks and changes that may occur in too long developments, through frequent meetings to ensure that the fulfillment of the established objectives is moving in the right direction.
The liturgies (meetings) are the fundamental pillar of the methodology. In them we differentiate between:
- Planning meetings. Only what will be included in the next sprint is reviewed and assessed.
- Dailies. Daily meetings to discuss progress and next steps of each team member.
- Review meetings. The outcome of the sprint is inspected and decisions are made to address the next sprint. Scrum is based on an empirical process in which, in each iteration, new information is added from users, customers, and the market… This is used to adapt and prioritize the next tasks.
- Retrospective. This last one is the most important of all since it is performed after a sprint to analyze results and propose improvements in the project’s progress.
The key aspects of Scrum are flexibility, competitiveness, and productivity.
The agile Kanban methodology works when there is a continuous flow of work requests and we move in an environment of highly changing or difficult to establish priorities in advance. It is focused on improving that flow or process from the time the project is commissioned to the time it is delivered.
Simplistically, the Kanban strategy consists of dividing project tasks into states; the most common task states are:
- In progress
This model makes it possible to control the repetition of tasks or to avoid not executing any of the tasks necessary to obtain the final product or services.
The advantages provided by this methodology are
- Task planning
- Improved work performance of the team
- Visual metrics
- Continuous flow of deliveries
WIP o Work in Progress en Kanban
A limit can be set on the number of tasks in each state at the same time. The WIP or Work in Progress sets the number of jobs in these states so that there are no bottlenecks, the pace is maintained and the development team is not saturated.
WIP sets small tasks and the goal of finishing them: when one is finished, the next one is started. A person does not have two tasks open at the same time, in order to concentrate on only one.
In addition, by minimizing work in progress and focusing on finishing tasks, context switches are avoided, which leads to shorter turnaround times.
These WIP limits should be reviewed if unforeseen events arise, such as customer requests, team changes (new team members and departures) or changes in the market.
Extreme Programming (XP)
The agile practices and principles of Extreme Programming (XP) or extreme programming work in the face of constant changes requested by the customer. That is to say, the most important thing is the adaptation at any time of the project.
In this way, Extreme Programming does not seek to specify from the beginning all the parts or deliverables of the project. The technical team that applies this methodology knows that there is a lot of flexibility and faces unforeseen events in a more realistic way than if everything was planned from the beginning. Given this flexibility and adaptation to constant changes, projects are nourished by small deliverables or progress in each of its phases.
The values of Extreme Programming are:
- Communication between team members.
- Simplicity in the design to avoid unnecessary expenses in the development of the project and to make it easier to revise or repair after its launch.
- Constant feedback to recognize areas of improvement in the team, continue to pursue design simplicity, and refine the project.
- Courage to propose organizational changes in the team to improve its efficiency and to accept the changes proposed in the feedback.
- Respect among colleagues when communicating and giving each other feedback for improvement.
Do you want to know more about agile methodologies?
Agile methodologies allow you to deliver higher quality products and services, with lower costs and time than with other more traditional methodologies.
If you are interested in incorporating agile methodologies in your company or need help to get more out of them, do not hesitate to contact us: our experts will be able to advise you.