Faster, more efficient and better; there is almost no end to the promises attributed to Agile and Lean product development. Dispite all the promises many teams and organisations are not able to gain the possible benefits.
Those of our customers who are most successful in their implementation of Agile or Lean are able to give a clear answer to the question ”Why do you want to implement Agile or Lean?”. Among the answers you hear ”we want to increase our productivity”, ”we want to increase our product quality”, ”we want to decrease our leadtimes for development” and ”we want to increase our Return on Investment”.
To find a way to reach the defined goals of an implementation of Agile or Lean it is good advice to base the decision on the specific circumstances the company are in right now. The decision need to be based on what kind of reality we are facing. Is it simple, complicated, complex or even chaotic? To apply Agile with it’s values and principles in a simple reality may very well be like sawing with a hammer. Agile is more suited for a complex reality where we are not able, before we start walking, to determine exactly which steps will lead us to success. Instead we need to inspect where we are, how long the rest of the journey is and what is left to be accomplished before we adapt our next step. To inspect and adapt is one of the cornerstones of Scrum and is also a frequent practice in Agile.
Are there any good or bad answers to the question ”Why do you want to implement Agile or Lean”? Yes, in my opinion you can hear both good and bad answers. The answers listed above are among those I consider good. Other answers I consider good, or legitimate, are “We want to increase our ability to deal with changed priorities.”, “We want to increase the transparency and visibility of product development progress.” and “We want to create good conditions for successful team work”. The list is even longer. I will stop here and turn to the answers that I consider to be bad or illegitimate. The answers that send chills down my spine are “Someone in our organization told us to.” and “Company X has been successful after implementing Agile.”
My first advice to companies considering Agile or Lean is: Decide why and decide what goals you want to accomplish by implementing Agile or Lean. After you have analyzed your situation, identified your answer and possibly decided why you believe Agile or Lean can help you meet your goals, then it’s time to talk business and we can engage in fruitful discussions on how you can do a successful implementation.
To me understanding the underlying principles is the biggest and most clear success factor when implementing Agile or Lean. Let me do a brief walk through of some important principles and argue how to benefit from applying them.
The first principle listed in the Agile Manifesto is: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.” This principle tells me that we as suppliers and developers of the product need support from our customer (to me ”customer” in this context is a summary of all possible stakeholders including but not limited to client and end users) primarily within two areas; to choose in what order we should implement the requirements, prioritize, and to receive feedback on what we have developed and delivered to the customer. What we deliver do not necessarily need to be released to end users. What’s important to me is that we demonstrate an increment that is done and that is possible to give feedback on. That way it is possible to use the feedback early during development rather than late. We also get the opportunity to change direction if we are drifting off our main course.
Another interesting principle is: “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
To me, this principle is about me wanting to do all that’s in my power to create the right conditions for my competent coworkers to succeed. It is also about a belief that the people most suited to develop our product are best suited to identify and explain the conditions they need to be fulfilled in order to do a good job. I also believe that the people most suited to develop our product are best suited to make daily decisions on how to develop the product and chose direction for development on a daily basis within the current iteration.
When considering implementing Lean it is a good idea to reflect upon the principle ”Deliver fast”. At first it may be totally obvious that product delivery should be fast. When we take a closer look it shows that many times the principle is not fulfilled. Recently a good friend of mine told me how important it was in his organization to be ready to act and respond quickly to requests. It was obvious for everyone to deliver answers fast when a request came up. What often happened, though, was that requests did not turn up one at a time. In addition to many fast deliveries, decisions on what request was most important to finish could change on a daily basis. The result was sometimes definitely not in accordance with deliver fast. In my opinion the principle ”deliver fast” needs to be elaborated upon. It becomes easier to grasp and implement if we add that all activities, big as well as small, should be addressed in a way that they can be finished as soon as possible. By putting focus on finishing activities we will increase the probability to deliver fast. When limiting the amount of activities or request we start it is possible to deliver fast. Some call this to do one thing at a time. Taken to its extrem that is exactly what it is about. By doing one thing at the time we can focus heavily on finishing it. To limit work to only one piece can be to take things to the absurd. Limiting the amount of work in process is often a wise decision.
With my reasoning on some of the principles behind Agile and Lean I want to give advice on possible steps forward and also point out the fact that contributions by many individuals and parts of an organization are needed in order to satisfy the these principles. In order to create successful implementations of Agile and Lean we need to have an understanding of how the implementation can help us to reach our overall goals. That is not always enough. We need to decide upon which road to take, we need to make prioritization’s, we need feedback and we need to collaborate with many parts within our organization. A successful implementation of Agile or Lean requires actions by developers, testers, architects, business analysts, stakeholders and definitely by managers.
A successful implementation requires everyone involved to follow up, continuously make decisions and to understand the underlying principles. If we don’t have a full understanding it is easy to get trapped and perhaps say as Groucho Marx: “Those are my principles, and if you don’t like them…well I have others.”