Agile Principles Explained
In addition to the four values, the Agile Manifesto contains twelve principles that are used as guides for all methodologies included under the Agile movement, such as XP, Scrum, and Kanban. These principles are as follows:
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 product upgrades. Customers are happiest when they receive the product they requested within a short time frame 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 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 significant value to the customer. In Scrum, for example, the customer receives working software in very short sprints of two to four weeks. Working software is determined by the team's ability to deliver the story's acceptance criteria. This includes completing all testing and coding activities and 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.) involved in the project are continually available to one another throughout the entire development process. In Scrum, the team uses a daily meeting as an essential communication mechanism between the relevant stakeholders. During the meeting, the team shares their progress (accomplished and remaining work) and 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 the need for micromanagement. In Scrum, development teams' primary 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 communication platforms can help people interact with each other. However, the most effective is interpersonal communication. This is the preferred communication method among the different stakeholders in the Agile working environment, 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, provided the backlog is updated.
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 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 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 always to 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 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 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 find the balance between delivering working software and allowing team members to enjoy their personal lives.
This is easy to say but hard to do, so how can we create such a balance when there is continuous pressure to deliver? Well, it begins with changing the company culture. There needs to be a close collaboration with key stakeholders and, at the same time, a supportive working environment. This will ensure the team does not over-commit and thus impact its ability to deliver as promised.