Lean Development
Lean Development is a methodology that comes directly from Lean Manufacturing, created by Toyota, and applied to software development. This method offers a conceptual framework and follows values, principles and good development practices that can be applied to an Agile development approach.
7 Lean Development Principles
Here is a brief summary of each of the principles. It is important to clarify that Lean Development is not so much a framework or methodology as it is a set of guiding principles.
Eliminate Waste
Time and resources cost money. Extra time and resources beyond what you require, make things more expensive than they need to be. To maximize the value, you must work to minimize the waste.
Improving the efficiency of the process by finding those tasks that are extra or take too long to complete improves the value of the final product. Working to eliminate bad product – whether it be manufactured parts, errors in data entry, or mistakes in the restaurant kitchen, can further increase the value of the end product by reducing the costs to create the product.
Amplify Learning
As the old saying goes, “two heads are better than one.” Become a learning organization. Encourage individuals to learn more and create an environment where shared learning is encouraged.
You also want to learn more about what you produce and how to improve upon what you produce. Customers may only call you when they have an issue, but what about the employees along the process path. Are they spotting an issue, rejecting the product, then moving on to the next product with no mention of the reject product? What happens if the same issue comes up or it was part of a trend and no one caught it? Elicit feedback from your employees, learn when they encounter problems or have ideas to improve things.
Decide Later
This isn’t permission to procrastinate. This is permission to not worry as much about what happens next month. It is in a lot of ways similar/related to the concept of progressive elaboration. Focus your energy on that which is coming up near-term, but keep a general idea about what is happening in the future.
Things can change. The farther out something is, the more likely it is to change. Don’t unduly delay decision making, but defer decision making as long as it is responsibly possible.
Deliver Fast
Not “Deliver Last Minute” but “Deliver Fast”, at least as fast as possible to achieve high levels of acceptable quality. Complete tasks, product production, or services as fast as possible while ensuring that everything is completed to agreed upon acceptable levels. Don’t produce a lot of junk quickly and just deliver it.
The intent is to maximize your value to the customer. They see quicker returns, they see more value. Consistently quick, high-quality products, are more valuable than quality products that take a long time to receive.
Empower the Team
There are usually only two things that stop teams from performing at their best – impediments and laziness. You are not likely to cure laziness, but you can remove the impediments. The problem is, many organizations add in too many impediments of their own making. Create an environment for the team that actually lets them do the work, reduce the BB. There is no need for 12 different divisions to require the same information formatted differently and wasting hours of time to complete.
Respect the team enough to listen to them and let them help guide you into helping them do their job better. Give them the knowledge and tools to do their job better, and let them do the job.
Build Integrity In
Test. Not just when you are finished, but routinely and throughout. Make sure your processes are not causing junk to move forward in the process chain. Test it when you get it, test while processing it, test it when it leaves your hands for the next step.
See The Whole
View the entire chain, not just a link in the chain. Know where each part is coming from and where they are going. Value stream map the process, get a high-level view, don’t get so focused on the details you miss something because it was outside your narrow field of vision. Don’t be laser-focused, be more flashlight focused; lasers don’t fan out and allow you to see the whole.
Lean Development Advantages:
-
Allows the team to delete superfluous activity, therefore saving time and money
-
Decreases the time needed to deliver functionalities, since it prepares the development team in the decision-making process, hence increasing general motivation
-
Easily scalable methodology and easily adaptable to projects of any dimension
Lean Development Disadvantages:
-
It is very dependent on the development team’s ability and on the following of Lean principles, which means it will be necessary to have extremely dedicated and talented developers
-
It is easier to lose focus, since various tasks are divided into a number of elements
-
It requires some documents, in particular on the characteristics of the business which is the subject of the work. Otherwise, there is a risk that the development may be done incorrectly and present errors