Alternative perspectives on the values of Agile
David Tzemach
Posted On: August 31, 2022
7336 Views
6 Min Read
The Agile Manifesto contains twelve principles in addition to the four values that serve as guidelines for all methodologies associated with the Agile movement, including XP, Scrum, and Kanban. I want to examine each of them in this article and offer an alternative viewpoint that I have come to over the years.
Principle 1: Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
While customer satisfaction is always important, in the Agile world this is especially true, as the customer is an active partner in the product development process. The customer can update requirements, prioritize requests, and continuously provide feedback. Furthermore, the team can increase customer satisfaction by continually delivering incremental upgrades to the product. Customers are happiest when they receive the product they asked for within a short time and can provide feedback about the quality of the work almost instantly.
Principle 2: Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
This principle probably best demonstrates the difference between Agile and traditional methodologies. The latter provides almost zero tolerance for new or modified requirements that come late in the development process. This is in direct contrast to Agile, which embraces change to ensure the customer gets the product she wants.
Principle 3: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
Crucially, Agile teams deliver software frequently because frequent delivery provides major value to the customer. In Scrum, for example, the customer receives working software in short sprints of two to four weeks. Working software is determined by the team’s ability to deliver the acceptance criteria of the story. This includes completing all testing and coding activities, as well as obtaining customer approval for software delivered.
Principle 4: Businesspeople and developers must work together daily throughout the project.
The different stakeholders (Agile team, customer, management, etc.) who are involved in the project are continually available to one another throughout the entire development process. In Scrum, the team uses a daily meeting as a basic communication mechanism between the relevant stakeholders. During the meeting, the team shares their progress (accomplished and remaining work) as well as any challenges that may affect their ability to meet the sprint goals.
Principle 5: Build projects around motivated individuals. Give them the environment and support they need, then trust them to get the job done.
Agile projects are built around motivated individuals who are given freedom, trust, and a supportive environment, without any micromanagement. In Scrum, development teams’ main goal, besides the obvious goal of delivering products, is to become self-organized and cross-functional. If successfully implemented, the team will take ownership of their work without being told to.
Principle 6: The most efficient and effective method of conveying information to, and within the development team, is a face-to-face conversation.
Many great platforms can help people interact with each other. However, the most effective is interpersonal communication. In the Agile working environment, this is the preferred communication method among the different stakeholders and especially within the teams.
“Human communication consists of 93 percent body language and paralinguistic cues, while only 7% of communication consists of words themselves. Including tone of voice, eye movement, posture, hand gesture, facial expression and more.” – John Borg
Principle 7: Working software is the primary measure of progress.
The best way to ensure a project is on track is to provide a working product that adds value to the customer through every sprint of the project. This may probably be the most effective way of measuring progress. Agile processes promote sustainable development, capable of maintaining a constant pace indefinitely.
Principle 8: Continuous attention to technical excellence and good design enhances agility.
An Agile team should have all the technical skills to create an efficient and effective product design that they will use throughout the project to handle frequent changes and yet deliver a high-quality product to their customer.
Principle 9: Simplicity, the art of maximizing the amount of work not done — is essential.
Agile teams should focus on requirements that provide the highest value to both the business and the customer. Agile embraces a light approach to investing the right amount of work that is just enough at any given time. My tip is to always try to use the Pareto Principle; that 80% of results come from just 20% of your activities.
Principle 10: The best architectures, requirements, and designs emerge from self-organizing teams.
This simply means that any self-organized teams that are empowered will be a motivated workforce with the right skills and the ability to make the right decisions to deliver high-quality products.
Principle 11: At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
For teams to work with increased efficiency and effectiveness, they must consistently strive for self-improvement.
Principle 12: Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
In Agile, we want to make sure teams can deliver early and often. However, they shouldn’t be pushed too hard, such that it impacts their happiness negatively. We need to establish a repeatable and maintainable working speed throughout each sprint, known as sprint velocity. This assists the organization and teams to find the balance between delivering working software and allowing team members to enjoy their personal life.
This is easier said than done, so how can we create such a balance when there is continuous pressure to deliver? We begin by changing the company culture. There needs to be a close collaboration with key stakeholders and at the same time a supportive working environment. This ensures the team does not over-commit and thus impact its ability to deliver as promised.
Got Questions? Drop them on LambdaTest Community. Visit now