Agile methods evolved in the late 1990s. They were a polemic against the increasing reluctance of companies and project managers to use a rigid, linear cascade method (Waterfall). In an ever-changing business environment, they did not work particularly well in the IT industry. The creation of Agile has helped to overcome new challenges faced by the field of technology.
In a traditionally managed organization, senior management is generally responsible for making decisions. In the case of complex strategies and resulting problems, the answers also come from above. Such a situation creates a considerable challenge and a risk for leaders and project managers.
The new management model, so-called agile, initially referred to software development. Nowadays, more and more organizations decide to transfer Agile’s ideas and techniques to other fields of activity.
In an agile organizational structure, the priority is teamwork based on direct communication between stakeholders and managers. Encouraging the whole team to experiment and make hypotheses becomes a kind of an organizational exercise.
The complexity of present-day projects makes agility work in dynamic environments where there is potential for change and evolution of requirements, understood as requirements management. Project members are entrusted with the competencies necessary to complete each of their cycles. Delegating so much responsibility for the created products to project teams has a positive impact on employee motivation.
Representatives of new ideas, mainly in the United States, have been looking for an alternative approach to the software development process for years. In 2001, the pioneers of change met at a conference to create a joint agreement.
Agile, as a set of principles, is a great father of all agile methods
It is worth noting that since Agile came to life at the conference it has been referred to as a project management methodology, when in fact it is not. It is more of a software philosophy than a description of a ready-made process that applies directly to the project.
Agile is based on the Agile Software Development Manifesto – a declaration of publicly available principles and values for all agile methods. According to the Agile Manifesto, when creating software, better methods are discovered, and its most essential assumptions state that:
- People and interactions are preferred to processes and tools;
- Running software is above extensive documentation;
- Collaboration with customers and contract negotiations are above formalities;
- Reacting to change is more than just following the plan rigidly.
Agile method / agile programming
When talking about Agile in the context of the design process itself, adjectives like flexible, transparent, open, iterative are usually mentioned. Agile projects are characterized by several tasks that are developed, performed, and adapted to the situation but are not a pre-planned process.
Being agile gives teams a chance to react to unpredictability through incremental, iterative work processes. This involves creating a step-by-step plan, rather than deep and linear planning at the beginning of the project. It focuses on continuous improvement and speed.
Agile: flexible, transparent, open, iterative
The elements influencing the project are unpredictable; therefore, agile methods focus on adaptation to changing situations, appropriate, and continuous communication both among the project team and between them and their client.
- Agility is very beneficial for projects with a high degree of risk and uncertainty, where the end goal cannot be clearly defined, and the whole project cannot be planned;
- The project is divided into iterations (management units), or cycles called sprints, during which the project team independently plans development, designs solutions, programs, tests and receives feedback from the customer;
- Testing during each iteration means that errors are identified and resolved faster, and thanks to consistent repetitions the software can be delivered quicker and more efficiently;
- Agile teams are in frequent communication, people work together and are able to take responsibility for their own parts of projects;
- Customers have the opportunity to see the work in smaller parts, share their opinions and have a real impact on the final product; they also gain a sense of ownership;
- Mutual feedback throughout the project serves to improve the project;
- A change is possible at any time during the project; there is always the possibility of fine-tuning the backlog and changing priorities.
Although the level of flexibility in Agile is usually positive, it also involves some compromises. Setting a delivery date can be difficult, documentation can be incomplete, and the final product can vary significantly from the original.
- Agile planning can be less specific and challenging to set an exact delivery date for a project – sprints can be added at any time to extend the time;
- Agile teams are usually small, so there is a lot of responsibility for their members because everyone should have high skills in different areas;
- It requires a constant commitment of the development team, which must be fully devoted to the project throughout the process;
- Documentation can be neglected because Agile prefers running software to extensive specification, so team members may feel that focusing on literature is less important;
- Iterations can be added based not only on changing customer feedback but also on potential problems arising from teamwork;
- Because agile puts a focus on flexibility, the end product can be very different from the initial one, resulting in an entirely different final score.
Customer and contractor in Agile
There is quite a smooth agreement between the project originator and the client on agility. The assumption that agile is valued by both sides for not being Waterfall-like and understood as doing more and faster, with less and less effort, may, in practice, disappoint the latter. Although it may turn out to be faster, more profitable, and less risky for companies that struggle with a variety of uncertainties and difficulties in their field of business, agile’s flexibility will be convenient for them.
1. Flexibility costs
Agile means flexibility for the project’s client, which gives them a chance to change their mind frequently during the project. The customer may then feel that the contractor will do more for less; or that he will never make the final decision because they may change their mind until the last moment. But this level of flexibility is always expensive. The client may, yes, change his mind, but it takes time, and time costs money.
2. Ready on demand
The client must be active at all times during the project, have all the permissions to make decisions, provide fast and real-time feedback to keep the work in constant motion. These conditions may be difficult to fulfill in hierarchical and management-oriented organizations.
3. Trust and openness to experimenting
The customer must answer himself the question whether he trusts the designer enough to pay for a possible failure on the road to success. Agile, in turn, requires maturity from customers – they should understand that with agile, it is not possible to determine precisely, what they will get, nor when they will get it. Still, with a certain amount of trust and systematic cooperation, designers will do their best.
As a set of principles, Agile is the great father of agile methods. Agile is, therefore, a generic term used to designate other Agile implementation concepts, including Scrum, Lean, eXtreme Programming (XP), Kanban, and Scrumban.
Agile projects can be managed using the selected version. Some focus on speed and performance, such as Lean or Kanban, others on improving communication and teamwork, such as Scrum. Others focus on rules and processes, such as XP, and others mix these elements, such as Scrumban. We have described them in detail in the separate article.
Would you like to hear more about agile methods? Subscribe to our newsletter to get information about our next blog entries!