Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Customer satisfaction is the most important thing for the team and for the product. Agile teams have a specific mix of practices that keep the customer engaged in the project and excited about the team’s progress. The key practice that makes this work is building the software iteratively using very small “batch sizes”. Agile teams will take a block of requirements or tasking and pick out the smallest sub-set that represents something valuable to the customer, build it, and ship it before moving on to the rest of the features. The smaller the “batch size” can be, the more frequently the team will deliver valuable software to the customer.
Practice 1.1 : Small Iterations
Most Agile processes adopt a “fixed duration” iteration. For example, in Scrum these iterations are called “Sprints” and they are always 30 days long. All Agile processes agree that the iteration length should be less than one month. This means that the team should look at the overall team workload and select one iteration’s worth of tasking. Having selected an iteration goal, the team commits to the goal and executes that tasking. Any new work that appears during the iteration is placed on the backlog to be evaluated for the next iteration. This keeps the team focused on delivering value.
Practice 1.2 : Early Delivery
If iteration sizes are small, then the team will complete their very first iteration quickly. The end of the first iteration will result in a delivery to the customer. Some Agile teams make this a “production” release while others make it a “release candidate”. But all Agile processes agree that it must be put in front of a customer so the development team can get feedback. The first iteration is focused on early delivery of value to the customer.
Practice 1.3 : Deliver Continuously
Having made one delivery and gotten feedback from the customer, the team can now look at the remaining workload with new understanding of what the customer wants and a new appreciation for how complex each task is. The team uses the short iteration approach to select a small set of tasks that represent something valuable to the customer and implement them. Then the team repeats the process they did in the first iteration for each subsequent iteration. This is why it’s called “iterative”; we do the same thing over and over again. Each iteration is focused on delivering value to the customer.
Practice 1.4 : Make Every Delivery Valuable
Every delivery must have value to the customer. A common mistake with Agile teams is to have an iteration with a goal of building “infrastructure” or some other important technical requirement that the customer doesn’t really care about. This is why a planning meeting at the beginning of each iteration is a key step in many Agile processes. This planning meeting is an opportunity for executives and stakeholders outside of the development team to voice an opinion on the direction of the team and steer the overall project. Since the iterations are short, the stakeholders get plenty of input into the project’s direction. Executive guidance and customer input at the right time can really help the team stay focused on delivering value to the customer.
For more information about the origin of the Agile Principles, see the Agile Manifesto site.