Developing software can be a lengthy, complicated and expensive process. As a result, methodologies have been created to alleviate these issues without sacrificing quality.
In this definition...
What is lean programming?
Lean programming, also known as lean development, is a method of delivering software based on the Agile framework. The benefits of adopting a lean approach include decreased cost of ownership, increased productivity and improved quality of deliverables. This methodology can be broken down into three overall steps.
- Deliver quickly
Lean programming principles
The three main steps of the lean programming methodology can be further broken down into seven principles.
Any feature or functionality that can be removed without harming the end-quality of the deliverable, should be. Wasting time and resources with unnecessary processes is common and can be resolved easily. Anything that doesn’t directly add value to the final product should be considered waste.
Delivering quicker doesn’t mean sacrificing build quality. If the Agile workflow is followed properly, not only should quality be maintained but it should be improved. This is because the development team focuses resources only on the elements that provide value and fall within the project’s scope..
A cornerstone of the lean methodology is to make decisions based on data. By documenting and storing information that can be used in the future (e.g. process changes that had a positive or negative impact or features of a product that received good user feedback), deliverables can be continuously improved upon.
Deferring commitment goes hand-in-hand with creating knowledge. Blindly committing to deadlines and goals can leave teams scrambling to deliver, increasing the possibility of mistakes and wasted resources. There should be data that backs up goals that are set.
The key to delivering fast without sacrificing quality is to start by delivering a minimum viable product (MVP). Include only the necessary features and functionality and make it available for user testing. Improvements can then be made according to user feedback to ensure you’re spending your time on improvements that provide value.
Teams can’t collaborate effectively and quickly without proper and respectful communication. Constructive feedback and healthy conflict between team members will be inevitable when using an agile workflow and eliminating waste. But it should be coupled with respect and empowerment.
Optimize the whole
Each principle should be focused on, but it’s important to remember they all serve the process as a whole. Optimize the entire development process with a clear understanding of capacity and the value of the work being done. Lean project management can be used to ensure all aspects of this workflow are operating efficiently.
Pros and cons of lean programming
Lean programming has grown in popularity due to its effectiveness when implemented correctly. However, it does have cons as well.
Effective implementation of these principles offers the ability to deliver more in less time. It eliminates unnecessary work so team members can focus on what matters. This also reduces the cost of ownership.
The cons of this workflow are generally due to issues when applying these principles. For example, you need to be able to collect the right data and pull valuable insights from it. It also depends heavily on the individuals involved. Every single team member must pull their weight for this method to be effective.