There are two types of processes in the world, defined and empirical. In a defined process, someone can write down all of the steps to achieve some output, and then the process can be executed repeatedly to the achieve the exact same goal. When I was 16, I worked at a fast food hamburger restaurant. I only worked there for a few months before upgrading my job to a fast food burrito restaurant. But I can still perfectly remember everything I was taught about making burgers there. Our burgers were cooked on a conveyor belt that moved the burgers through a flame broiler. For each burger ordered, I put the meat patties three inches into the conveyer belt. If someone asked for the burger well done, i put to pattys at the start of the conveyer belt Every burger got two leaves of lettuce, two slices of tomato, three pickles, and three onion slices. No more, no less. If a customer asked for extra onion, I was instructed to add five onion slice, not three. White onions meant one slice. This well-defined process allowed the restaurant to take anyone, including pimple-faced teenagers like me, and turn us into chefs. Well, not exactly chefs, but my burgers came out of that flame broiler and tasted just as good as those from a cook who'd been there 10 years. This is the epitome of a defined process. All of the inputs and each of steps can be defined up front, and the process can be executed by anyone with appropriate skill, and they will achieve the exact same output. A defined process is good for something repeatable, like making burgers. But some things are much more complex. That's where an empirical process comes into play. An empirical is built on the idea of inspecting and adapting. We look at how something is going and make changes. As an example, I was on a plane recently and we encountered some pretty nasty weather. Rather than sticking to some predefined flight plan, our pilot inspected and adapted. He flew a little more south than the normal route for that flight, and he announced that he was moving to a higher altitude. By making these adjustments, our pilot got us to the destination and did it in a way that was safer and more comfortable for everyone. My father-in-law was a pilot for one of the big airlines. He used to tell me that for a two-hour flight, an hour and 50 minutes of that flight his job was no more difficult than being a bus driver. But his 40 years of flying experience were extremely helpful during the other 10 minutes. During that time, he needed to inspect and adapt. What type of process is better for software development or product development in general? an empirical one. No one can write down all of the steps to build a product, give those steps the various teams, and expect to get the exact same results. At a high level, I can say the step to software development are analysis, design, coding, testing. If I give that guidance to 10 teams and ask each team to build me a word processor, there is no chance I'm getting the exact same word processer from each of the teams. Each might give me word processors, but each will be different. This is true even if I wrote much more detailed guidance than do analysis, design, coding, and testing. I could write hundreds of pages of procedures on doing each of those. i'd still get 10 different word processors from those 10 teams. This because product development of any sort is too complex for a defined process. When an endeavor is complex, a more appropriate strategy is to use an empirical process, I've already mentioned two pillars of an empirical process, opportunities to inspect and adapt. A third pillar is transparency. a team needs visibility into its way of working in order to make adjustments. Scrum is all about transparency, which is really the glue that holds it all together. We want to show our work early and often and be transparent in what we're doing, even if it isn't perfect. Doing so allows us to inspect and adapt.