Where to Begin Your Transition to Lean-Agile


Start Where the Problem Is
If you want to make a car go faster, where would you start? Maybe you would put in a bigger engine. But what if the problem is in the transmission? Or the parking brake is locked? Or your tires are completely worn through? Of course, you should start where the problem is. The transition to Lean-Agile is no different. Staring with development teams is like starting with the bigger engine—if impediments lie elsewhere, then even if the individual team gets better, overall agility might be less! Even worse, if an Agile pilot project ends up causing headaches for the organization, people will turn against it. Who wants that? And it becomes very hard to try again. Unfortunately, we have seen this many times. It is much better to start where the problems are. Table 1 offers ideas to help you identify problem areas to focus on.

Table 1. Identifying problem areas

Problem area

If any of these are false

Then focus on this challenge area…

Business side

The product management organization maintains a list of prioritized product enhancements.

Product enhancement requests are broken into the smallest pieces that can be released.

The development organization is never overwhelmed by enhancement requests.

Enhancement requests are prioritized individually; they are not released in one package.

Product portfolio management. Create a prioritized list of smaller enhancements, each of which can be released when completed.

Product enhancement packaging. Keep the number of product enhancements being worked on small enough to not overwhelm your teams.

Cycle time. Focus on delivering value on a regular basis with short cycle times so that the business can reevaluate its plans. Focus on the length of your projects rather than interval between releases of different projects.

Management side

Effective teams work well together.

Except for people with truly specialized skills, everyone in the development organization works on one team.

The organization is free of “silos” that separate resources from each other.

Management clearly describes the order in which to build and deliver product enhancements incrementally.

Teams can get feedback from the business and customers quickly, when they need it.

Value. Management must create an environment that supports the creation of value quickly.

Impediments. Many impediments to teams are due to forces outside the team’s span of influence. Management must act intentionally to remove these impediments on behalf of the team.

Team agility

Teams are able to deliver software incrementally.

Teams build only what they are requested to build without adding new features in anticipation of the future.

Code is tested virtually at the same moment that the code is built.

Teams write acceptance tests before writing any code.

Flow. Have teams learn an agile process that is based on flow (that is, the elimination of delays). It could be based on iterations or on kanban.

Cadence. Create a cadence of work that delivers product to customers and gets feedback from them at regular intervals.

Work-in-Process. Ensure that the team keeps the amount of Work-in-Process (WIP) as small as possible.

Test first. Ensure that the teams write acceptance tests for a story before writing any code for that story.

Technical skills

Development teams spend most of their time writing code and working with customers to write requirements.

Teams easily understand how to introduce a feature into existing code.

Testing and debugging takes place throughout the iteration. Testing and debugging is not a major focus at the end of a development cycle.

There are relatively few errors detected during integration testing.

TDD. Teach teams how to do Test-Driven Development (TDD).

Continuous build. Have teams use continuous build and integration.

Design patterns. Teach teams the proper use of design patterns.

About the author

Alan Shalloway's picture Alan Shalloway

Alan Shalloway is the founder and CEO of Net Objectives. With almost forty years of experience, Alan is an industry thought leader, a popular speaker at prestigious conferences worldwide, a trainer, and a coach in the areas of lean software development, the lean-agile connection, Scrum, agile architecture, and using design patterns in agile environments. Alan is the primary author of Design Patterns Explained: A New Perspective on Object-Oriented Design and Lean-Agile Software Development: Achieving Enterprise Agility.

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!