Agile in the Enterprise: How Tools and Processes Enable Interactions

Agile development approaches are moving into the mainstream. They are no longer relegated to small co-located teams. Large application development organizations in and outside of IT are betting their businesses on globally distributed teams using agile methods to create and maintain their products. In these organizations, the Agile Manifesto's principal to value individuals and interactions over process and tools is impossible to realize. The complexity created by scale cannot be managed without judicious use of both process and tools.

I remember the idealized circumstances of the early years of agile development. I had a small co-located cross-functional passionate team that was using advanced Smalltalk development approaches to develop an even more advanced RAD environment. There was no pre-existing model for the kind of tool we wanted to build. And domain expertise rested with a very few object-oriented gurus. But, we had executive support and were given everything we needed to succeed. Our project was critical to the company's success and we had to minimize time to market. It was a dream job for us caffeine-driven code-slinging techno-junkies.
The Times, They are a Changin'
Agile adoption is rapidly growing. It is being driven from the top-down in organizations that immediately recognize agile's benefits. In others, agile grows more virally and its acceptance becomes an eventuality. As it works its way up, across, and down through enterprises, the stakes get higher. Agile's success and failure now directly influences the success or failure of the business. {sidebar id=1} And guess what guys and gals, with this success comes responsibility. And responsibility these days, especially in larger companies, means reconciling our efficient agile methods with at times heavy-handed top-down management practices. Scary things like budgets, status reports, and governance are part of our daily lives.
Budgets really are a bummer. They constrain a team's velocity to deliver new products and enhancements. But budgets are a business reality faced by all organizations. Management is a bummer too. Given constrained resources, management is always pressuring the team to optimize its throughput. It's not enough to use business goals to prioritize and burn down the backlog. They want more value with the same or fewer resources sooner than planned. And, oh by the way, quality has got to be high as well. (It's really fun to talk about myself in the second person. I've been part of this quot;managementquot; bummer for quite some time now.) Another issue is the difficulty around optimizing a single team's velocity. Optimizing the velocity of a global application development organization is damn near impossible. Especially when you consider some organizations are coordinating thousands of projects and enhancement requests across thousands of resources for thousands of end users. So much for index cards...
In a perfect world (well, at least in my perfect world), everything and everyone would be agile. We'd have homogeneity of development methods across the organization. Everyone would be co-located and our cross-functional teams would purr with harmonious efficiency. Our developers would thrive in their extremely efficient bug-free development environments creating new products and enhancing others. And they'd build their unit tests before the features are even conceived! Well, so much for my utopian dream!
As we all know, large enterprises have a diversity of products, tools, processes and people. Adoption of agile methods necessarily comes incrementally. There is no silver bullet for transforming these legacy products and process. It will be evolutionary, and at times painful, to transition these to more agile development methods. In fact the value should be very closely considered. In the long run, the better business decision may be to encapsulate legacy products and processes and apply agility to new products and enhancements.
To summarize, wide-scale adoption of agile methods across the enterprise necessitates process and tools in order for individuals to interact. The specific challenges include, but are not limited to:

  • Managing resources and budgets
  • Tracking deferred customer and market requirements
  • Providing visibility and governance
  • Accommodating process heterogeneity

Managing Resources and Budgets
For decades, software projects, and for that matter all kinds of projects, have been managed to the ever popular triad of

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.