Optimizing Software Development With Lean Value Chain Analysis

Optimizing Software Development
Author: Vimal Mani, CISA, CISM, Six Sigma Black Belt
Date Published: 1 March 2016

Lean is a philosophy of continuous, incremental improvement of business processes, products and services. Lean methodology helps in identifying the real value-adding activities involved in providing services to customers. Lean methodology is focused on shortening the time line between the customer request and the delivery of the service demanded by customers through the elimination of nonvalue-adding activities. However, to achieve this, an organization needs to understand customers’ needs and wants and should identify key waste elements that will impact the delivery time line and quality of the services or products delivered to customers. Lean methodology defines waste as any activity that adds time and cost, but does not improve the services and products delivered to the customer.

Lean methodology does have a key technique called value analysis that helps identify value-adding activities present in a chain of activities. Value analysis in lean implementation involves assessing each process step through the eyes of the customer and determining whether the step is:

  • Value-adding activities (VA)—These are activities that will directly achieve customer requirements and the ones for which the customer is willing to pay.
  • Nonvalue-adding activities (NVA)—These are activities that will take time or resources, but do not directly achieve customer requirements, or the ones for which customers will not be willing to pay. Typical nonvalue-adding activities include reworking, inspection, movement and any of the eight wastes referred to in Lean methodology.
  • Value-enabling activities (VE)—These are activities considered NVA from a customer perspective, but can satisfy a regulatory/compliance issue or other business requirement. These are also called “nonvalue added, but necessary,” “business value add,” or “nonvalue added, but required.” For example, documentation required to satisfy regulatory compliance reporting is a value-enabling activity.

Figure 1 depicts considerations of Lean methods related to waste in a value chain.

The following are some Lean tools that are helpful in performing value chain analysis:

  • Voice of customers/customer satisfaction surveys—The voice of customers helps in collecting customer experiences and expectations about services provided.
  • Data analysis—This helps in analyzing the unstructured or structured data that are received in large volumes.
  • Kano model—This model helps in defining customer requirements and translating them into specific processes that will deliver the desired products and services meeting customer requirements.
  • Quality function deployment (QFD)—QFD helps in ensuring the quality of products and services.
  • Failure mode and effects analysis (FMEA)—FMEA helps in identifying all possible failures in design of a process, product or service.
  • Critical to quality (CTQ)—CTQ helps in identifying product and service quality attributes that are acceptable for customers.
  • Design of experiments (DoE)—DoE helps in determining the relationship between factors affecting a process and the output of that process.
  • Kanban—Kanban helps in visualizing work, reducing waste by limiting work in progress and maximizing customer value through a process known as value stream.

Each of the categories—VA, NVA and VE—have specific activities related to software development.

Value-adding activities related to software development include:

  • Project planning
  • Requirements analysis
  • Requirements design
  • Architecture and design
  • Design reviews
  • Coding
  • Code reviews
  • Testing
  • Continuous integration
  • Go live
  • Knowledge transfer to clients

Nonvalue-adding activities related to software development include:

  • Technical complexity that was not analyzed properly during requirements and project planning stages
  • Presence of unwanted processes in the value chain
  • Ineffective prioritization of requirements
  • Incomplete/inadequate identification of tasks
  • Wait time between the tasks
  • Extra code and functionality developed for which customers will not be willing to pay
  • Delays occurring in the project planning activities
  • Ambiguous requirements analysis and definition
  • Interruptions of ongoing tasks
  • Too many parallel project activities
  • Inadequate testing of developed software leading to redundant features
  • Not using available team member knowledge and trying to reinvent things
  • Overwhelming bureaucracy in the project environment
  • Ineffective internal communication resulting in delayed project activities
  • Lack of proper coordination between the product owner and development team
  • Unassigned backlogs of work
  • Lack of resources
  • Teams working from different locations
  • Lack of visibility of the information shared by more than one team
  • Lack of technical skill sets among team members
  • Late involvement of testers
  • Inattention to the automation testing
  • Partially completed/abandoned coding during the development process
  • Extra- and low-value features developed, which may be rarely or never used by customers
  • Waiting for completion of work from upstream and downstream teams
  • Defects and lower-quality work that requires significant amount of revision
  • Continuous switching or reallocation of work among team members
  • Managerial overhead not producing tangible value for the project
  • Delayed approvals resulting in delayed project deliverables
  • Delays caused by waiting for project handoffs
  • Time-consuming development of complex project dashboards/visual controls
  • Daily meetings with no defined agenda
  • Unstructured/unfocused quality assurance activities, such as project audits and reviews
  • Missing acceptance criteria

Value-enabling activities related to software development include:

  • Developing excessive amounts of project documentation
  • Project compliance and regulatory reviews
  • Management reviews
  • Subject matter expert (SME) reviews

How Lean Value Chain Analysis Helps

Value chain analysis helps software development teams gain a clear understanding of how long the planned software development activities will take to complete and how much NVA are present in the total planned activities. Value chain analysis also helps software development teams achieve dramatic reductions in time needed for software development and delivery to customers.

Implementing Lean value chain analysis helps IT services businesses identify waste and NVA present in software development and helps IT services delivery value chains by improving time to market, quality, cost, efficiency and effectiveness of overall IT operations. Waste is often intangible and difficult to identify in IT business processes. For example, delays are a significant category of waste/NVA in the IT services’ business value chain (i.e., searching for specific information, NVA reviews, complex approval processes, slow response of applications, delays between coding and testing, aging of service tickets, delayed response time from the IT help desk). Productivity and time taken to deliver can be significantly improved by addressing the root causes of delays. Many global IT business organizations have experienced a 20 to 40 percent increase in IT productivity and reduced the delivery time of new applications and functionalities/features by 10 to 30 percent through the application of Lean techniques such as value chain analysis. As a result, IT service-oriented business organizations are able to achieve significant cost savings.

Improved Execution of Agile Project Management Practices

Lean methodology and techniques help optimize the end-to-end software development and delivery processes that are aimed at creating value for customers from the requirements stage to the go-live stage. Lean value chain analysis focuses on identifying NVA present in the IT delivery value chain that need to be removed. This involves adaptive software development processes, fast feedback cycles and significant involvement of the customer in the end-to-end process that forms the foundation of the Agile methodology. In short, it can be said that the Agile methods are Lean methods applied to the software development and delivery business. By marrying Lean and Agile principles with newly emerging techniques in markets such as development operations (DevOps)—a new technique emerging from the marriage of Agile development and collaboration among development teams and IT operation staff throughout the systems development life cycle (SDLC) stages—the value delivered to the customer can be significantly improved.

Conclusion

The idea behind the Lean methodology-driven software development is to eliminate as many NVA as possible from the software development value chain and deliver optimized value to customers in an optimized time period with optimized quality. Uncovering and reducing NVA or VE activities that do not add value to the software development value chain from the eyes of the customer are the keys to optimizing both the effectiveness and efficiency of a software development value chain.

Vimal Mani, CISA, CICA, Six Sigma Black Belt, is an associate vice president with Standard Chartered Bank and is based in Chennai, India. He is responsible for strategizing and building the information risk management practices of the bank’s global human resources operations. Mani is a subject matter expert in enterprise information and IT governance practices and has assisted clients in addressing various information and technology risk. Mani also guides clients in a variety of business transformation and risk consulting engagements. He can be reached at vimal.consultant@gmail.com.