DZone
Agile Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Agile Zone > Lean Software Development: Eliminating Waste in Software Engineering

Lean Software Development: Eliminating Waste in Software Engineering

Lean software development is all about getting rid of the extra and unnecessary. Right in time for spring cleaning.

Evan Fortier user avatar by
Evan Fortier
·
Apr. 18, 19 · Agile Zone · Presentation
Like (1)
Save
Tweet
8.83K Views

Join the DZone community and get the full member experience.

Join For Free

According to the latest estimates, seventeen percent of organizations adopt Lean. This framework remains one of the five most widely used Agile frameworks. The application of Lean principles to software development was initially introduced by Mary and Tom Poppendieck in their book Lean Software Development: An Agile Toolkit. It includes the 7 basic principles:

  • Eliminate waste
  • Amplify learning and create knowledge
  • Decide as late as possible
  • Deliver as fast as possible
  • Empower the team
  • Build integrity/quality in
  • See the whole

7 Principles of Lean Software Development

1. Eliminating Waste

In terms of a project, the term “waste” refers to anything that is not adding the value to the project and thus should be eliminated. In software engineering, this can be idle time, unnecessary features, or defects.

2. Amplify Learning and Create Knowledge

In Lean, software development is perceived as an ongoing learning process. Developers don’t usually write clear code on the first try. After having detected and fixed errors, they write an improved variation of the previous code. Engineers gain knowledge during development by solving problems and producing code variations. Therefore, the best way to improve the software development environment is to amplify learning.

3. Decide as Late as Possible

Late decisions are more informed ones because they are based on facts. Keeping in mind that technologies become obsolete increasingly faster; delaying an irreversible design decision is a wise move. A major strategy for making commitments late is to reserve the capacity for the change in the system.

4. Deliver as Fast as Possible

The fourth principle is about the pros of fast software development. Short development cycles allow developers to learn more by getting feedback. They also allow a customer to delay making a final decision about design until they know more. So, fast delivery helps eliminate waste.

5. Empower the Team

Developers should have the right to make technical decisions as they understand the details of their work like no one else. They can create a roadmap and follow it.

6. Build in Integrity/Quality

The user’s perception of the software and its characteristics must coincide. If a customer thinks that software has all the needed features and is easy to use, that system has perceived integrity. Conceptual integrity means that the software has a coherent architecture, and scores high on usability and fitness of purpose. It can be maintained, adapted, and extended.

7. See the whole

Engineers should take charge of the overall efficiency of the system, instead of focusing on their small portion. If experts adhere to this principle, they can create a system with integrity.

These fundamentals perfectly describe Lean philosophy: its aim is to deliver more value through less effort, investment and time.

Lean software development is an iterative and incremental framework. Therefore, as in any other Agile approach, the working product increment is delivered at the early stages of development. Further progress depends largely on the Product Owner’s feedback.

What differentiates Lean approach is that the team is not restricted to use any formal processes, such as recurring meetings or thorough task prioritization.

When to Use Lean Development Methodology

Lean allows companies to follow a Minimum Viable Product (MVP) development technique. It includes a deployment of a product with a minimum, sufficient set of features to satisfy early users. The idea of the MVP strategy is to gather and analyze customer feedback to know if they like this product and want to buy it. Knowledge of customers’ habits, tastes, and needs is the key to producing commercially successful products. Developers use feedback to create a roadmap for future development. Since it is best suited for startups, many app development companies follow a Lean Agile methodology to deliver applications to their startup clients.

Lean works well for small, short-term projects due to their short life cycles. This approach is also appropriate if the customer can participate in a project realization as Lean requires ongoing feedback. Another important condition to the adoption of Lean is the whole team should work in one office to enable communication. Startups and successful companies apply Lean software engineering practices to their processes.

Software development Lean (proof assistant) Lean software development Software engineering Engineering agile Minimum viable product

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Is Your Code DRY or WET?
  • Practice on Pushing Messages to Devices of Different Manufacturers
  • Java’s Encapsulation - When the Getter and Setter Became Your Enemy
  • Applying Domain-Driven Design Principles to Microservice Architectures

Comments

Agile Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo