The Agile Manifesto encompasses 4 values and 12 principles representing the essence of all agile methodologies since 2001. The four points of the Agile manifesto state:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The Agile manifesto promotes the value of people and interactions, working software, customer collaboration, and the ability to respond to change over the rigidity of traditional processes and timelines.
Agile tools have emerged to make the abstract concepts of the manifesto more tangible and usable, aiming to translate the theory of the agile approach into practical tools that, when used correctly, lead to the fulfillment of agile manifesto principles. The peculiarity of these tools lies in their highly flexible nature, enabling them to adapt to various sectors and teams. Some of the most commonly used agile tools include Kanban, Scrum, Extreme Programming, Dynamic Systems Development Method, DevOps, and BusDevOps. Among companies embracing Agile, Scrum stands out as the most prevalent methodology.
Over the years, agile methodologies have spread across various business sectors, starting from IT and extending to project management, marketing, operations, and financial projects. Today, many organizations aim to adopt a holistic approach to agility, creating practices and structures that foster transformation into agile organizations. These organizations are characterized by networks of teams within a people-centric culture, with rapid cycles of learning and decision-making supported by technology and a common goal of creating value for all stakeholders. These operational models enable quick and efficient reconfigurations of strategy, structure, processes, people, and technology to create value and seize opportunities. Agile organizations combine speed and adaptability with stability, becoming a crucial source of competitive advantage in uncertain conditions.
A tool that has seen widespread adoption in recent years, from major tech companies like Intel and Google to new and innovative startups, is the Objectives and Key Results (OKR) framework. As the acronym suggests, an OKR consists of two parts: an objective and the key results linked to it. An objective is simply what needs to be achieved. By definition, objectives are significant, concrete, action-oriented, and motivating. If identified and implemented correctly, they are key to clarity in thought and action. Key results track the achievement of the objective. Effective KRs are simple and time-bound, aggressive yet realistic. Above all, they are measurable and verifiable; there is no key result if it is not expressed in a numerical metric. At the end of a set period, it is declared whether the KR is met or not. "OKRs are a framework of critical thinking and continuous discipline aimed at ensuring that employees work together, focusing their efforts on delivering measurable contributions that drive the company forward" (Niven, 2016).
The customer focus and emphasis on communication have brought success to Agile, which is now evident to all. Agile isn't a technique but a set of principles, a collection of proven best practices with implications not only for software delivery but also across other sectors. Today, it has become crucial not only for the software industry but also in many other areas.
The principles articulated by the Agile manifesto under the title "The Agile Movement" are 12:
Customers will be thrilled to see working software implemented at each release, rather than going through an ambiguous and often indefinite waiting period to see the product.
Changes can be gradually incorporated into the overall planning, as it would be preferable to incorporate changes to ensure quality rather than avoiding them and delivering a product that does not truly meet the needs.
Since releases are timed iterations and deliver working software at the end of each release, customers regularly have an idea of progress.
The best decisions are made when both collaborate, and there is a constant feedback loop between the two for course correction and agility of change. Communication among stakeholders is always the key to agility.
It's essential to support, trust, and motivate teams. A motivated team is more likely to succeed and deliver a superior product than unhappy teams unwilling to give their best. Empowering the development team to self-organize and make their own decisions is one of the best ways to achieve this.
Communication is better and more effective when teams can easily communicate and meet face-to-face for discussions. It helps build trust and fosters understanding among various stakeholders.
Usable software, even if imperfect, surpasses all other KPIs and is the best indicator of the work done.
The team should maintain its pace throughout the project duration and not burn out after the initial releases.
The team should possess all the necessary skills and a solid product design to manage changes and produce a high-quality product, capable of incorporating modifications.
Often, the most useful thing to do is not to implement a feature if it's not truly essential to maximize the quality of the work done.
This leads to open communication and regular sharing of ideas among team members, which in most cases is invaluable for the project.
Self-improvement leads to faster results and fewer reworkings on the product. Taking the time to discuss and investigate successes and failures after a release allows the team to accumulate valuable technical and business experience.
What originated as support for software development has now evolved into a broad and widely applied approach to project management. Agile methodologies are adopted not only by software development teams but also by high-level executives in the business world. The 12 principles constitute the core values of the movement, promoting a culture of embracing change and placing the customer at the center of the project. These principles reflect the Agile manifesto's aim of aligning software development with business needs.