Lean Programming

Developing software can be a lengthy, complicated and expensive process. As a result, methodologies have been created to alleviate these issues without sacrificing quality.

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.

  1. Deliver quickly
  2. Test
  3. Reiterate

Lean programming principles

The three main steps of the lean programming methodology can be further broken down into seven principles.

Eliminate waste

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.

Build quality

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..

Create knowledge

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.

Defer commitment

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.

Deliver fast

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.

Respect people

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.

Pros

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.

Cons

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.

 

Kyle Guercio
Kyle Guercio
Kyle Guercio has worked in content creation for six years contributing blog posts, featured news articles, press releases, white papers and more for a wide variety of subjects in the technology space.

Related Articles

Memory Leak

A memory leak is a bug in a program or application that prevents it from freeing up device memory that it no longer needs...

Regex

A regular expression, abbreviated as RegEx or regex, is a pattern for locating a character string in a program. A regular expression can have...

AutoIt Scripting Language

AutoIt is a popular and easy-to-learn scripting language used by developers since 1999...

Defense Advanced Research Projects...

The Defense Advanced Research Projects Agency (DARPA) is a research and development agency...

Alibaba Group

Alibaba Group is an international technology company with a deep portfolio of companies...