Put some VA-NVA-VSM in your softwareAdd bookmark
Industries involved in new product development often find it difficult to create Value Stream Maps (VSM), says guest contributor Rupesh Lochan, a Lean and Six Sigma consultant for IT and consulting firm, Infosys. In this article, Lochan offers advice on how practitioners can better use VSM in software development:
Lean is a buzz word that cuts across industries today. Organizations in many different industries with different processes and working environments are trying to take advantage of the methodology which can help them make their processes more effective and efficient.
The software industry is the latest to join race. Perhaps it’s the latest recession that has made them look for new approaches to keep them afloat and remain competitive. IT organizations are looking for increased productivity, lower costs of operation, and faster time to market.
And they’re realizing that Lean can provide them the desired results.
Though practiced in Toyota for decades, industry came to know Lean in a formalized way only when James Womack and his team came out with a series of books - The Machine That Changed The World, Lean Thinking and Lean Solutions.
As prescribed by James Womack and Daniel Jones, the principles that can be followed for being Lean are:
- Specify value
- Create value stream
- Establish flow
- Create Pull
- Work for perfection
Though these principles are true for any industry, Tom and Mary Poppendieck came out with a set of principles in 2003 specifically for software development world. These principles are:
- Eliminate Waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build Integrity in
- See the whole
Looking at both of these sets of principles, value stream mapping ( VSM ) comes out as a very important tool for "leaning" out a process.
Womack and Jones put creating VSM as one of the principles while Tom and Mary Poppendieck used VSM as one quintessential tool for identifying waste in the system.
What is a Value Stream Map?:
Value stream mapping is a process charting technique used to map of all the activities in a process that helps in transforming input into output.
Some of the definitions worth mention for value stream mapping are:
Value Stream Mapping is a method of visualizing the flow of a service, a product, or information. Value Stream Mapping is the assessment and planning tool of Lean Practitioners and an enabling tool to apply Lean thinking.
Drew A Locher, Value Stream Mapping for Lean Development
The Value Stream is the set of all the specific actions required to produce a specific product or service or both.
Womack and Jones – LEAN Thinking
Key aspects of a Value Stream Map:
Some of the important points that should be considered while creating a value stream map and to ensure that VSM creates value are:
- Map value-adding as well as non value-adding activities. One should not confuse VSM as mapping only the value adding activities.
- Start with capturing the customer’s requirement. Customer’s requirements such as expected throughput rate, turn around time, expected accuracy etc. should be put alongside the symbol identified for the customer.
- Divides the process into 5 – 10 major activities (taken from SIPOC [Suppliers, inputs, process, outputs, and customers]blocks) and then expand those process blocks into sub activities.
- Don’t go into too much detail. For a VSM creating team, it is always a challenge to understand the level of abstraction to be used. It is important to note that VSM need not go into great detail as one should go into detailed process flow diagram (PFD). For simplicity VSM should be considered as one level higher than PFD.
- Capture the flow of information as well as the flow of the work product. The metrics which are captured for each process block are depicted as Lean metrics.
- Do a time cycle analysis based on the time and motion study done during making of VSM is one very important tool used during making of VSM. Time cycle analysis is the aspect that differentiates VSM from other process charting techniques such as Macro map, SIPOC, PFD and Swim lanes.
- Do a VA/ NVA/ Waste analysis based on the time cycle analysis to find out the areas of improvement in the process. While thinking of improvement, put the focus on the aspects that will help in establishing pull and creating flow in the system.
How do you create VSM when Software development does not follow a strict streamlined process ?
Software development is a process of learning. The development team learns about creating value for the customer by understanding a customer’s explicit and implicit requirements. For any new development, it is difficult to follow a strict process. But there are broad guidelines for the process to be followed. In today’s world, it will be difficult to find any organization following the waterfall model for software development but organizations are following the different variants of software development structured around the basic steps of communication, planning, modeling, coding and deployment. A VSM development team can start with the above mentioned basic steps for constructing a VSM.
How do you handle the iterations which are inseparable part of Software development?
Iterations are an unavoidable part of the software development lifecycle except in a few cases when requirements are already explicit. A few actions can be taken for taking care of this challenge.
A VSM team should consider making 2 levels of VSM. One level of VSM can be called a "macro VSM" and will provide the aggregated picture. The lower level can be considered a "micro VSM" and will deal with details of the software development process. A combined picture would look like the image below.
A VSM team can make a clear distinction between what is iteration and what is rework. One option can be considering iteration as writing new codes for new features whereas rework can be modifying the earlier code for providing the earlier worked feature.
A VSM development team should identify the appropriate metrics that take care of the number of iterations. Time involved in such iterations can be captured for bringing a focus on that area. It is a good idea to depict the impact of iterations on lead time/ process time through VSM.
Although it is very difficult to get software development right the first time, there is no harm in trying. Actions that can help achieve this:
- Create a system of reusable assets. There is no point in spending time and effort to create the functionalities of software which can be created by accessing reusable assets.
- Use a metric that puts a number to the assets that are being reused.
- Adopt pair programming to ensure efficiency when developers are writing code.
How do you put the timeline for the activities being done in software development ?
It’s difficult to estimate the amount of time required for software development. However, few actions can be taken for getting more accurate estimates:
- Estimate the timeline using the historical data for similar development projects. In case the data for similar projects is not available within the organization, for external data
- Get an experienced staff/ expert/ colleague to estimate the timeline
- Keep in mind that Lean is not about ensuring precise data. It is about going ahead with the available data and ensuring that the actions are taken fast. As per Drew A Lacher in his book on Lean software development: The true power of value stream mapping lies not in visually depicting the current state of a process, but rather in the actions that are taken and the results achieved by doing so.
Do you need to track timeline in minutes and seconds when a software development project can take months to complete ?
It’s difficult to put a transactional process, where transactions are happening every minute and hour, on the same pedestal as a software development project which can take months for one software development. In a transactional process, tracking of time in seconds or minutes or hours is required since they can indicate hidden waste in a process. In a development project, since development activities take place in days, weeks and months, time tracking in minutes and seconds can be avoided since they do not add value. Small activities can be clumped together to represent the significant timelines. In certain cases, tracking lead time into weeks or months and processing time in hours can be helpful.