Back to List

Accelerating Flow in the IT Value Stream

Bob Schommer Bob Schommer  |  
Jul 21, 2020
 
Every CIO grapples with how to rapidly turn customer needs or good business ideas into working software to meet the demands of a VUCA (volatile, uncertain, complex, and ambiguous) world. With traditional waterfall development methodologies, it frequently takes months (or even years) before software is ready to be turned over to customers – even after going through the typical stage-gates of analysis, design, development, and testing.
 
To improve on this, many organizations have adopted agile product development practices hoping to incrementally deliver value in smaller slices, but cultural resistance and lack of leadership participation continue to deter companies from achieving greater agility. Other organizations have turned to DevOps practices which stress accelerating the flow of work, shortening feedback loops, and increasing organizational knowledge through continual learning and experimentation.

However, too often companies apply DevOps patterns that focus only on automating and streamlining the flow of work within IT. Therefore, they miss even bigger opportunities that can be realized by taking a holistic look at the entire product development value stream to truly understand how value is delivered to customers.
 

Typical Challenges to Accelerating Flow

Companies face several challenges when they decide to transform their product development value streams to accelerate flow. Typical challenges they face include:
 
  • Viewing development work in terms of project development rather than product development.
  • Legacy applications with years of accumulated technical debt that impede agility.
  • IT keeping business users at arms-length rather than treating them as partners.
  • Business users who want to hand off work to IT rather than partner in the development of new features.
  • Cultural attitudes that view experimentation unfavorably (ex. - unsuccessful experiments seen as failure rather than new learning).
  • Customers and business users being conditioned to expect a “finished product” rather than smaller chunks of valuable features incrementally delivered quicker.
 

Product View is Critical

Overcoming these challenges (and others not listed) takes time, commitment, and a new way to look at how work is done. Having a product view is critical. It enables us to ask questions like:
 
  • Who are the customers for our product?
  • What will encourage them to purchase our product, or how does our product enable internal users to better serve our ultimate customers?
  • How much are we willing to invest to improve our product, and what returns will we realize from these investments?
  • How does our product improve people’s lives?
 
Understanding the answers to these (and other questions) enable us to look beyond our internal IT processes to the bigger question of how we deliver value to our ultimate customers. How quickly can we turn a good idea into working software? This requires building trust and partnerships within IT and with business partners up and down the entire value stream.  
 

Accelerating Flow Begins with Lean Practices

Accelerating the flow of our product development value streams begins with some common lean practices that have long been used in manufacturing, including:
 

Visualize the flow of work

Unlike manufacturing, knowledge work progresses unseen from one step in the value stream to the next. We have to make knowledge work visible through the use of physical or electronic tools like Kanban Boards or Sprint Boards. These help us see where work is flowing smoothly and process steps where work is queued or piling up.
 

Smaller batch sizes

Breaking work down into smaller slices of functionality accelerates flow through our value streams. Large batch sizes are like that big, slow-moving farm tractor traveling down a country road with cars backed up behind it. They become chokepoints in our value stream that result in high levels of work-in-progress.
 

Limiting WIP

Having too much work-in-progress causes multitasking and churn within your development teams. Disrupting knowledge workers is easy because their work is not visible like it is with manufacturing workers, but the impact is significant due to the inefficiencies that come with context switching. Excessive WIP in our value streams extends feedback loops, increases costs of problem resolution, and increases risk of building low-value product features. Establishing WIP limits on Kanban board columns encourages teams to focus on finishing work rather than starting more work.
 

Making Knowledge Work Visible with Azure DevOps

Kanban and sprint boards are valuable tools to accelerate flow in our value streams. While physical boards are low-tech and easiest to customize to portray the steps in our value steams, they pose a challenge in the current environment where many team members are remote.
 
Tools like Microsoft’s Azure DevOps enable teams to see the end-to-end flow of work starting with conceptual big ideas (epics) to smaller chunks of business value (features), ultimately leading to delivery of small pieces of functionality (user stories) to customers. Both Scrum and Kanban agile approaches are supported through templates designed for each. Key areas within Azure DevOps include:
 
  • Boards in Azure DevOps are versatile and can be used to develop roadmaps of epics and features in support of release planning. Sprint boards provide visibility to the work the development team is planning to deliver for a sprint. Retrospective boards encourage continuous learning and improvement by capturing actionable experiments that can be tested. These are powerful ways to visualize the end-to-end steps in our value streams so we can identify the chokepoints that are impeding flow.
  • Repositories leverage Git Hub to provide source code management for development teams.
  • Pipelines enable continuous integration and continuous deployment for our products. DevOps automation removes mundane deployment work from development teams so they can focus on building high-value features and accelerates the flow of our value stream.
  • Test Plans incorporate discipline into product quality assurance steps of our value stream. Automated tests improve quality and agility while manual tests are repeatable as new features are added to our product. Automated tests can be included in continuous integration and deployment pipelines to identify and resolve problems sooner.
 

Conclusion

IT professionals can learn much from our manufacturing counterparts who have been exploiting constraints and removing bottlenecks in their operations for decades. While knowledge work is not visible like physical manufacturing, tools like Azure DevOps can help us visualize our software development value streams. Doing so empowers us to exploit constraints and eliminate bottlenecks to rapidly turn good business ideas into working software.
 

 

Love our Blogs?

Sign up to get notified of new Skyline posts.

 


Related Content


Spring 2019 Kentico User Group
Apr 17, 2019
Location: Waukesha County Technical College - Pewaukee Campus - 800 Main Street, Pewaukee, Wisconsin 53072 - Building: Q, Room: Q361
Blog Article
How API Integrations Can Give Your Business One Source of Truth
Nick DopkinsNick Dopkins  |  
Feb 25, 2020
As an organization grows, so does its IT stack and the amount of applications it manages. If left unchecked, this can result in a multitude of disjointed programs that duplicate data, repeat logic, and know nothing about each other.   Implementing API integration to formulate one source of...
Blog Article
Fabric React Primer on Components, Controls and Theming
Will SpieringWill Spiering  |  
Nov 12, 2019
React is one of the most used and beloved JavaScript libraries for building user interfaces. There's no shortage of UI frameworks out there to help make developing great React apps quicker and simpler. You may have heard of a couple of the really popular ones like React Bootstrap or...
Blog Article
Using Hooks to Reactify a Plain JavaScript Library: A Walkthrough
Andrew PetersenAndrew Petersen  |  
Aug 06, 2019
React Hooks make it really easy to wrap a vanilla JavaScript library with a React component so you can easily reuse it throughout your app and stay in "React Mode".In this walkthrough I'll be focusing on a single library, Shave.js, but the techniques and ideas should be applicable...
Blog Article
How to Create a Readable and Useful Bug Report
Blayne RoselleBlayne Roselle  |  
Jun 25, 2019
Creating a bug that is both readable and provides enough detail is a must-have skill for a Quality Assurance Analyst. Not only will it help when it comes time to retest, but it also provides credibility with your development team. In the content below, I will share the best practices for creating...