Tag: lean

The powerful benefits of value stream mapping – improving your software development process

projmgt

Value stream mapping is a powerful tool. It’s used to identify and remove bottlenecks in your organizations value stream.  Before going further about the mapping, let me first touch on what a value stream is. I’ll also describe the theory of constraints.

Your organizations value stream is the end to end process used to deliver a product to the customer. For example, it may begin as a request from a customer, and end once the customer has the finished product. The stream contains all the activities it takes to get the customer the finished product. Each activity contains a work time, and a wait time.

The theory of constraints says that the best way to optimize an organization is to focus on throughput. Throughput is the key to generating profitable revenue. The way to increase throughput is to look for the current bottleneck that is slowing things down and fix it. Once removed, find the next bottleneck and fix that. Keep this up and you will have a fast-moving value stream (Goldratt, E 1984).

Creating a value stream map – “Mapping your value stream is a good way to start discovering waste in your software development process. In industry after industry, the process of mapping the value stream has invariably led to deeper insights about how internal processes work or don’t work to meet customer needs” (Poppendieck, 2003).

An easy way to create a value stream map is to have a project team gather around the whiteboard. The process shouldn’t take long. You should be able to do this in an hour or less. Write out all key activities in your value stream. For each activity, write down how much work time it takes, and how much wait time there is.

For example, you may find it takes on average 2 weeks to code for a project, but it takes an extra 3 weeks to move the code to test. This extra 3 weeks is wait time that doesn’t provide any value to the customer. It is waste.

After creating the value stream, identify the biggest bottlenecks in your process. The goal is to increase flow and value added time in the system. Focus on the fixing the biggest bottleneck, then continue to fix the next bottleneck.

In software development, it is common to find that the biggest bottlenecks occur after development and testing are complete. This is why it’s so important for organizations to be moving towards a lean software development model.

Below is a picture of a value stream map from the book Lean Thinking, by James Womack and Daniel Jones.

 

lean-and-kanbanbased-software-development-14-638

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

References:

Mary and Tom Poppendieck, Lean Software Devleopment

Eliyahu M. Goldratt, The Goal

Lean software development, trust and empowerment

once-cycling-team

Trust and empowerment are the fuel that drives high performing technology teams. Companies like Facebook, Amazon and Spotify have realized this. They all use lean software development principles. They are cutting edge Agile. They have achieved a continuous delivery framework. They deliver quality software to production almost every 11 seconds.

So what does lean software delivery have to do with trust and empowerment? You can’t adopt a lean software development framework without empowering and trusting the teams. Using lean, management tells the team the problem, but lets the team decide how to solve it. Using lean, management let’s teams deploy software to production. This means there is no wait for a release date or a release management team to deploy software.

Can you imagine, as soon as software has passed testing, it’s deployed to production? It sounds like a fantasy, but it is not. Companies like Spotify have been doing this for years. If you want to stay competitive, you need to be moving towards a lean continuous delivery model too.  

Most companies are the opposite of lean. They have long release cycles, maybe delivering new software to the customer on a monthly or quarterly basis. They follow a strict release management schedule, riddled with controls. The whole process is filled with waste that slows down the delivery of working software.

An underlying principle of lean software development is to cut waste. Waste is considered anything that doesn’t add value to the customer. If you take a good look at the software development system within your organization, odds are you will find a lot of waste. Waste only delays the delivery of working software to the customer.  

This is why management needs to let go of control. They need to empower and trust their teams. The real strength of high performing software companies comes from the teams.  Marry Poppendick, author and expert on lean software development, writes: “Top-notch execution lies in getting the details right, and no one understands the details better than the people who actually do the work” (Poppendieck, 2003).

Trust and empowerment are the foundation of great teams.  They are the fuel that propels the team’s forward. Trust and empowerment enable lean software development in an Agile framework. The result of lean software development is satisfied customers. Satisfied customers are the most important aspect of the software development process. When you have satisfied customers, you have achieved quality.

For more content like this, subscribe to the MacIsaac Consulting Blog.

To contact us about our services, click here.

Powered by WordPress & Theme by Anders Norén