From the course: Agile Foundations

Inspect and adapt

From the course: Agile Foundations

Inspect and adapt

- To work well as an Agile team, you have to be adaptable. Adapting to change is built into the very foundation of the Agile manifesto. The developers who wrote the manifesto were already using their own software development methods. Two of the most popular were scrum and extreme programming. That's why a lot of Agile teams use scrum terms and also some terms from extreme programming. One place you'll see this is in Principle 2 of the manifesto. It says that "Agile teams welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage." Embracing change is a core part of extreme programming. It's also important to scrum, but scrum uses slightly different language. Scrum sees itself as an empirical product delivery framework. It encourages teams to inspect and adapt. A scrum team will make changes based on what they learn about the product. Embracing change and inspecting and adapting are really two ways of doing the same thing. One sounds a little bit more like extreme programming, and the other one sounds a little bit more like scrum. The key thing to keep in mind is that both of these approaches encourage you to experiment or change and adapt to improve the product. When the developers created the manifesto, that was a pretty big departure from how most organizations viewed software development. Early software development projects followed the same processes that you had with manufacturing, so these teams would develop software the same way you might build a bridge or manufacture a car. But as time went on, these teams recognized that software development is much different from manufacturing. A change in the software doesn't require you to break concrete or redesign a car's dashboard. Software is also much more chaotic. Your product might depend on operating systems or different networking protocols that are always being changed and updated. It'd almost be like trying to build the car when the roads change every few years. So these teams started to think of software development as much closer to scientific experiments. Now, imagine we went back to our web application that collects our customer contact information. The webpage relies on a web server. That software gets updated frequently and there are many different servers to choose from. It also runs an operating system that might change frequently. You also might even have to change operating systems. It also relies on a database, which is always changing. Plus, your customer might be using several different web browsers and operating systems. So you can probably imagine that it's really difficult to plan out a web application months or even years in advance. There are many different variables and many moving parts. That's why Agile teams work with shorter periods of time and embrace frequent changes. If they didn't make frequent changes, then chances are when they finish the project, their software would already be obsolete. Embracing change also gives the customer a lot more flexibility. They might decide to use a different database. An Agile mindset allows the team to pivot to take advantage of this new information so that the customer is more likely to be satisfied with the final product.

Contents