Home arrow Agile Journal arrow Sharing Agile Successes - March 08
Knocking Down Silos: Transitioning the Enterprise to Agile PDF Print E-mail
User Rating: / 1
PoorBest 
Written by Guy Beaver   
Monday, 11 February 2008
february-08-transitioningwiIn a previous article addressing the challenges of Enterprise Requirements Management, it was suggested that the legacy enterprise organization requires restructuring so that productivity gains promised by Agile methods can take root and grow.  At the same time, there is a growing chorus of IT skeptics who are singing about the ineffectiveness of the CIO.[1[2]  Legacy enterprise organizations struggle to stay coupled with business drivers, with the most collaborative relationship occurring at the CIO-to-peer level.  In this article, the structure of the misaligned IT organization is revealed as process-centric silos which have created an ever-widening chasm with business clients that the enterprise organization is supposed to serve.  It is suggested that this chasm is best bridged using Lean and Agile methods.  Enterprise agility begins with building trust by rapidly creating business value using cross-functional teams that can be scaled upward.  Agile barriers and enablers are presented to allow CIOs to assess their organization's potential for restructuring and adapting to Agile.

Introduction
The legacy IT enterprise organization is a structure consisting of silos of technologists that rarely collaborate with business units (see Figure 1).  This organization pattern of silos has been called the "Technology Organization" by Kirk Knoernschild in an excellent article on the Agile Matrix.  These silos come about from good intentions as well-meaning process experts attempt to decompose software development into repeatable sub-processes.  Once specialized process (such as requirements management or object model analysis) becomes the focus of an organization, time-to-market begins to slow, and survival becomes management's highest priority within the silo.  Project teams become matrix units where specialists from each area participate in virtual project teams and, in the truly dysfunctional case, are assigned to multiple projects at the same time.  The management role becomes a specialization in maximizing the project load for each resource in the silo.  Organizations with this structure can manage waterfall projects successfully, but speed and change-tolerance suffers.  Symptoms of such organizations are manifest as well-formed change control structures emerge to protect the already over-burdened resources from unplanned and unexpected work.  Managers of these resources focus on protecting their resources from "the business," and are seen as good managers if they can "manage their business clients."

gb0208-1small
Figure 1:  The legacy enterprise organization structure.  Note that as the organization grows, project managers are added to each silo to manage resource tasking activities as resources are spread across multiple projects.  Silos in this organization tend to line up with different phases and activities of the waterfall life-cycle, creating a focus on process and not product.  

The Legacy Enterprise Organization:  Yearly Planning and the Origination of the Death March

Sometime in the middle of the summer, the enterprise project cycle typically begins.  Struggling project managers are asked to review and "SWAG" project briefs for next year's project list.[3]  This up-front planning effort is clearly a Lean anti-pattern, and violates the principle of eliminating waste, since up-front specification is wasteful in software development.  Even worse, this activity is a clear distraction from current project work at best, and at worst, it commits an entire organization's resources to next year's activities with no information other than short summaries of capabilities and business cases.  The yearly planning cycle fixes scope, resources, and delivery date.  Experienced Agile practitioners will attest to the variation in estimates for just 10-day cycles.  With this basic truth of technical product development established, it borders on absurd to commit millions of dollars of resource capacity to long range software development projects with fixed scope and no opportunity to allow discoveries to feedback into the original plan.  Instead "discoveries" are treated as planning errors.

The enterprise project planning effort is led by the silo of requirements experts.  These highly trained business systems analysts represent an organizational attempt to enhance communication between heavily multi-tasked development teams, and the business clients that they serve.  This particular silo has a weakness that is difficult to recognize, particularly in long project delivery cycles that result in infrequent feedback to the overall enterprise.  That weakness is, bluntly, that the requirements experts ultimately have no skin in the game.   By the time the long-lived project effort is completed, the originators of the requirements maze have long moved on to other projects, leaving the implementers to deal with backlogs efficiently gathered requirement specifications.

The Art of "Thrashing"
As the project planning cycle progresses, attempts must be made to maximize the number of projects each resource can simultaneously handle.  This is a fundamental flaw of prioritizing projects, as opposed to individual business needs, and leads to the brittle state of the organization, which is poorly equipped to make changes based on business value and changing markets.  The yearly budget cycle forces unproven efforts to predict precisely what market forces will occur over the next 18 months, and even more challenging are the technology changes that are anticipated over the same long period.  The brittleness and change-intolerant state of the legacy enterprise is demonstrated by the rigorous change control boards that are in place to protect the over-committed project teams from more thrashing.

As project portfolio planning unfolds, the legacy waterfall life-cycle begins.  Teams struggle to understand requirements during an analysis phase, and a backed-up queue appears with issues to be tracked to closure as analysis models are instantiated to vaguely represent the team's understanding of the requirements specifications.  In order to track progress, well-meaning project managers report status on analysis models while the team attempts to interpret the system to be built.  These analysis models are typically reviewed by the client in a formal inspection, but real progress in architecture and design cannot truly be made until implementation, when the real limitations and constraints are uncovered.  The enterprise reacts to this dilemma with a silo of architects who attempt to enforce compliance based on last year's architecture mistakes.  These groups typically are conservative and result in legacy code and applications existing well past there useful state, creating untestable code and infrastructures that further complicate the team's ability to deliver quality technical solutions that are unconstrained by infrastructure limitations.  Legacy enterprise architecture silos tend to become ivory towers of idealists, who over time, lose collaboration with the project teams struggling to meet business needs while being forced to meet architecture requirements. 

The Promise of Agile 
The promise of Agile is that collaborative teams empowered to deliver business value are free to replace wasteful, over-engineered designs with working applications, backed up with automated testing, and fueled by rapid feedback from business clients and rapid technical validation.  Well-formed Agile teams empowered to refactor at the appropriate time, can rapidly build trust from their clients without large up-front design efforts.  Productivity gains expected from Agile are well established and representative expected metric gains are shown in Figure 2.[4]  The next thrust for Agile evolution is now in transforming organizations to a scaled Agile structure.

gb0208-2

gb0208-3
Figure 2. Productivity (functional and test lines of code) expected from Agile (top) and Waterfall (below) software development approaches.  By focusing on business value in short-cycle, incremental sprints, the Agile team quickly establishes a sustainable code growth rate, backed up by periods of refactoring.  By keeping test code (and automated test counts) visible, the Agile team can show a growth rate that is change-tolerant, as aggressive changes to architecture and design can be achieved due to confidence in regression capabilities to determine if anything breaks.  Waterfall only allows one chance to architect, design, and code the application correctly, while the team is attacking requirements issues.

Transition Roadmap: Building Trust
The transition to Agile from a legacy enterprise organization begins with building trust and bridging the chasm that the organization has opened with its business clients.  This bridge is best built starting with a successful pilot that regularly delivers business value.  In order to bring the correct sense of urgency to the pilot, a highly visible, high business value effort should be selected.  This requires courage, since new approaches are typically piloted on low-risk, low-visibility efforts to minimize the impact of failure.  To minimize the real risk, the pilot should pull no punches, and create a fully-functional Agile team with all key skilled resources collocated in a collaborative environment.  Pilot teams should be trained by seasoned Agile coaches, and set up with a stable pipeline of prioritized work, staged with the help of Agile consultants experienced in organizational transformation and turning backlogs of user stories into working product.  Scrum can provide a solid framework that gives process-focused organizations a starting foundation of implementing a lightweight method for agility.  Organizational learning can be amplified by piloting multiple teams simultaneously, pulling work from a common backlog and sharing retrospectives after each iteration.

Once the team has been selected, trained, and collocated, expectations must be set regarding the group becoming a real team.  Every effort should be made to create a highly collaborative environment, and this can be aided by focusing the team on as few tasks as possible.  This is all established in the daily stand-up meeting, where the team self-organizes to close tasks and stories prioritized by the business and made visible by the leader (ScrumMaster).  It is not unusual for a seasoned project manager, new to Agile, to try and assign as many tasks as possible in an effort to divide and conquer, but this sets the team up to work as individuals instead of together as a team.  Using Agile status tracking artifacts such as the burn-down and burn-up charts helps expose this behavior.[5]  Make productivity and quality visible by updating frequent counts of completed stories, and any other key metrics required by the organization.  By keeping these metrics visible the team gets a constant reminder, and this is another key focus topic for the daily stand-up.

The real success driver of the pilot will be the pleased business client who gets incremental delivery at regular intervals.  The higher up this key client is in the business organization, the better exposure for the Agile team.  Ideally, the business client has frequent interaction with the team, and helps validate stories as they close.  Once this pattern is established, the focus becomes the next story in the prioritized backlog, and change tolerance becomes normal as product manager has the freedom to change priorities of work outside the sprint.  Keeping the effort tightly coupled with changing business needs is the tangible difference that will draw the right attention to the pilot, and ensure its success is contagious throughout the organization.  New Agile pilots typically expose legacy enterprise silos as barriers to fast delivery.  The CIO should expect this tension and be ready to assist in changing behaviors and expectations of the existing organization.

With success, the CIO should begin to focus on scaling up the Agile pilot successes.  An established approach is to evenly split the successful pilot team, and bring in new resources to work with the experienced Agile resources on each of the two new teams.  The teams themselves should ideally hold "try-outs" for the new members to ensure that they are good fits for the established Agile team.  This also builds trust with the teams that are already empowered to deliver business value using their own capacity.  This is the ideal time to begin pulling resources from the silos, and dispersing them into Agile teams, creating an organic reorganization.  Specialist skill sets can now be maintained by creating a new matrix organization that regularly pulls specialists together in order to synchronize how they implement their skills within the Agile teams.  As collaborative Agile teams mature, cross-training naturally occurs, and an organization emerges that can adapt to changing staffing needs.  This is the same "Agile Matrix" described in an earlier referenced article is shown in Figure 3.  


gb0208-4
Figure 3. As Agile projects demonstrate success, the CIO should morph the organization into the Agile Matrix (from Kirk Knoernschild).  This is essentially flipping the legacy enterprise organization on its side, and creating a matrix for specialists to group into their own respective teams while performing daily project work in the vertical product or line-of-business teams.

Summary
This article has presented characteristics and behaviors of the legacy enterprise organization, summarized here. 

Warning signs and behaviors of legacy enterprise organizations:
  • Projects getting larger and slower.
  • Silos of specialists who are multi-tasked with multiple projects, who receive and create hand-offs.
  • Projects demonstrating high cost at commitment, brought about by detailed requirements gathering.
  • Organizations focused on resource loading instead of product development.
  • Separate production support groups that have little or no coupling with development teams. 
  • Project teams that demonstrate simplest first features due to lack of prioritization.
  • Project managers requesting status tracking tools to ease burden of status reporting.
An Agile pilot approach to build trust and lay the foundation for a transformation of the organization has been suggested, along with successful strategies for setting an Agile pilot up for success.  This approach should give the CIO a roadmap for creating an IT organization that is tightly coupled with business vision, and not distracted and slowed by over-engineering which results from silos of technical and process specialists, operating in a process-focused, non-collaborative environment.

About the Author
Guy Beaver is a senior consultant and regional director at Net Objectives. He has over 23 years experience in IT and software delivery, focused in both financial services and aerospace industries. He has served in various management roles including Director and CIO and has successfully implemented Lean and Agile in all size organizations from world-class financial services companies to start-ups.



[1] John Soat, "The Evolution of the CIO", Information Week, http://www.informationweek.com/story/showArticle.jhtml?articleID=203101647

[2] Bob Evans, "The Inexorable Rise Of The New CIO", Information Week, http://www.informationweek.com/story/showArticle.jhtml?articleID=203101599

[3] Scientific Wild A Guess (the reader is left with homework to discover what "A" represents)

[4] Jeff Sutherland, "Hyperproductivity in the First Scrum", http://www.baufest.com/spanish/scrum/scrumconference2006/Sutherland2006ScrumTuningBaufest.pdf

[5] See "The Agile-V Scorecard", http://www.agilejournal.com/articles/articles/the-agile%11v-scorecard.html

Comments (6)add feed
Jeff Maurer: ...
I am researching Agile portfolio management in an effort to understand how to get out of the annual planning/quarterly governance meeting stigma. I agree with Brian (above) that you address the Agile organization at the individual contributor and team level, but skirt the issue of corporate planning. Annual planning, and quarterly true-ups, are driven by financial planning (and outward reporting) that cannot be easily dismissed by saying that an Agile team will meet the need.

-jeff
1

May 07, 2008
Wayne Mack: ...
In response to Ryan Parnell's comment, I have usually found that neither extreme of either specialist only nor generalist only team members is necessary nor feasible. One needs to rebalance the team skill set based on long term trends (6 - 12 month) but maintain a stable, cohesive team across iterations.

Having a couple of outstanding staff in needed technical skills is always of benefit to a development team. These can be augmented with generalists who can shift between roles as development needs shift. This provides resource balancing without churning team membership. Note that this still does not guarantee that some iterations will require less than 100% of the experts' time, but that is okay.

On a Java/J2EE project, we had needs for Oracle database, Java programming, and testing expertise. We had one Oracle DBA who would never become a Java programmer, a Java programmer who would never become a database person, a "50-50" developer with Java and database experience, and several Java programmers who learned to use database tools as needed. We also had a dedicated testing lead (we were using WinRunner to develop automated acceptance tests at the GUI level, but the client would not provide more than 2 licenses) and two programmers who shifted between development and test - one programmer actually did all three and quite well. The specialists provided direction, mentoring, and quite a bit of down in the dirt development, while the generalists allowed us to balance resources as needed by each specific iteration.

We did have a couple of iterations where we needed less than a full time effort from our Oracle DBA and, yes, it drove him nuts. In the longer term, though, always having him immediately available helped keep us out of trouble - we didn't do any silly work arounds because of lack of specialist knowledge. For more information on optomizing for throughput versus maximizing the load for individual resources refer to the Theory of Constraints by Eliyahu Goldratt and described in his book, "The Goal."

There are other advantages to having a fixed or slowly eveloving team, primarily from the personnel side. For an effecitve team, however, I feel it is best to mix generalists and specialists to provide medium to long term stability.
2

March 01, 2008
gmbeaver: ...
Brian:

Thanks for the comment. You bring up great points, and the situation you describe is very common, of course. It shouldn’t be surprising that yearly planning cycles can create a structure that is often rigid, because it locks in a year’s worth of work, with no clear mechanism for priority.

Planning business capabilities to be delivered at a high level is not bad; it’s batching together capabilities into large projects that goes against Lean principles. The cost-cutting approach has at least 2 counter-productive results: 1) Highest value business needs are not delivered as fast as possible; 2) Technical Delivery teams must spend as much energy working lower priority features (in the project scope) as they do most important features. This creates unnecessary code complexity which increases maintenance cost. That wasted energy could be better spent on a simpler design to support the most important business need, as well as focusing more on high value engineering practices such as test-driven development, agile design patterns, and more.

Focusing on minimizing time to delivering highest value business features has the unexpected result of lowering cost, and increasing profit since return on investment can be realized sooner (see Software by Numbers: Low-Risk, High-Return Development By Mark Denne, Jane Cleland-Huang).

Obviously this can’t change overnight for most organizations, but the desired end state is for “continuous planning”, where the highest priorities are continuously staged and broken down into minimal releasable chunks so that Agile teams can pull the work in based on their capacity to deliver. This involves changing the organization from being project-focused to instead becoming Business Feature focused. The nice thing about this transition when it occurs is that the Enterprise develops the ability to deliver work based on priority order determined by the Business, as opposed to technical order determined by project-based delivery teams.

Guy

3

February 29, 2008
Brian OSullivan: ...
My organization follows the yearly planning process in which strategic direction is established and dollars are allocated to projects, the dollars being based on technology's estimates of very high level descriptions of what the business is asking for. You don't describe a replacement or alternative approach to setting out a strategic plan. I don't think you're saying companies don't need a strategic plan.
4

February 28, 2008
gmbeaver: ...
Thanks for the great question, and I've seen repeated instances of how well-formed Agile implementations provide the unexpected benefit of self-organizing load-balancing to address this problem. Note also that I don't downplay the importance of specialists, I just want to emphasize that their value is diminished and unfocused when they work in their own silos versus collaborating with teams that are driven by business value.

What starts to occur, is that collocated team members in a highly-collaborative environment start to work together and cross-train each other. For example, consider a mid-tier developer and a UI/servlet developer who used to work by creating interface specs and working apart, delaying the integration of their code and working in their individual silos. When these specialists come on to an Agile team, they begin sitting together and coding the interace, as well as both sides of the interface. In short order, they both learn each other's specialty (and trust). The end result is that the team now effectively has increased its capacity to do either mid-tier or UI work, so with each sprint, the teams' skillsets allow it to handle changing focus that normally would require difficult staffing changes.

I would also point out that the legacy enterprise organization has the same staffing issue (only properly staffed for the *last* project completed), but does not get to leverage the cross-training effect that Agile teams provide. This makes the organization more rigid, and can only hire/fire its way out of the staffing issue (or else pay specialists to sit on the bench until their need arises).

Hope this helps, and love get others' reaction.

Guy
5

February 27, 2008
Ryan Parnell: ...
Here's the rub that I see and would love to hear a realistic answer to: a team doesn't put consistent effort into all the technologies/specialties over the lifetime of the project.

So, you either have to claim anyone can do anything, which is offensive to real professionals/specialists not to meantion utopian and unrealistic, or you have to change the members of the team on a, what, sprint by sprint basis depending on the stories and what part of the architecture they involve?

Plus, like-people need the support of like-people. I think the org chart should reflect the silos, but the dev teams should be cross-cutting. The two don't have to match.
6

February 26, 2008
Write comment


Write the displayed characters


busy
Tags:
Click to add your tags...,
 
< Prev   Next >






Lost Password?
No account yet? Register

Video News

 
Copyright © 2006 - 2008 CMC Media, Inc. All rights reserved. All marks are trademarks of CMC Media Reproduction in whole or in part in any form or medium without the express written permission of CMC Media, Inc. is prohibited  
 
 CM Yellow Pages | ALM Expo | CM Today | Configuration Management Journal | CM Crossroads