Due to the promise of large gains in quality, productivity, and market responsiveness, Agile software development has been making its way into the enterprise in recent years, but there have been plenty of bumps along the way. Any change to the enterprise has hurdles to overcome, and successfully adopting Agile development requires change within the organization than we have seen in the development process over the past several decades. For instance, as you transitioned from C++ to Java or .Net, did you find it necessary to make substantial changes to your org chart? Most changes in the software development process have been either the result of technology changes, such as moving from C++ to Java or pure html to AJAX, or changes in architectural patterns such as the introduction of object-oriented programming and moving from client/server to SOA.
Enterprise Agile Development May Be the Answer
Sustainable and repeatable success with Agile requires the same sort of framework put in place with your traditional development projects across the enterprise. The end-to-end traceability, progress and status roll-up, portfolio management, and inter-project coordination that you have with your traditional development projects will be just as critical on your Agile projects. After all, Agile is not the goal, it is only the path to higher quality, greater and more rapidly delivered ROI, and increased customer satisfaction.
Not only will you need a framework that encompasses all of your Agile projects, you will also need a framework which can encompass all of your projects, regardless of methodology. Doing this is likely to require re-tooling, training, and integrating multiple tools across projects.
Agile in the Enterprise Requires Top to Bottom Involvement
Adopting Agile without understanding the principles and without creating a proper ecosystem for its survival, Agile may be destined to fail. I’ve visited far too many companies whose first attempt at adopting Agile failed because the extent of their investment was a single visit from an Agile coach. In these circumstances, few people are usually on board initially, and many skeptics exist because of an insufficient effort invested in preparing for success.
Adopting Agile development requires breaking down mental barriers and building up new skill sets. There is nothing particularly hard about actually implementing any of the specific Agile practices, but many of them are counterintuitive and do take a bit of practice to get used to. Don’t underestimate the amount of effort required; it is at least on the same order of magnitude as taking a team very used to writing in C++ and moving to Java. There’s nothing particularly difficult about such a transition, but there are many subtleties which must be learned and it takes some time to build up the same base of experience.
Committing to the effort required and funding the necessary training, coaching, and retooling requires involvement from the top of the engineering organization all the way to the folks in the trenches.
Your Enterprise is Optimized for Traditional Development
Actually doing Agile development is relatively straightforward, much as going 60 miles an hour is easy to do driving on an uncongested highway. As the original challenge of fast travel was a lack of cars, highways, and driver education, the main challenge with going Agile is creating the proper environment for Agile to take root and expand.
Over the years, your enterprise has done everything it can to provide the proper environment for traditional development to thrive. But what is considered fertile ground for one crop can be a difficult environment for another crop. Consider how all of the following have been tweaked over the years to optimize for traditional development. I’m sure you can think of more.
• Where people are physically located
• The reporting structure (silos)
• Your software development tools
• Homegrown tooling and scripting
• Metrics and reports
• The budgeting process
• Skill sets, training, work habits
• Process documentation
• Fixed bid contracts
Each of these are like the rumble strips on the highway, reinforcing the form and function of traditional development. The form and function of Agile development is very different. Instead of helping, the infrastructure that is currently in place to reinforce and optimize traditional development very often discourages effective Agile adoption. Consider the simple example of budgeting. If budgeting is currently based on the cost of features promised for the fiscal year and governance that rewards the delivery of those exact features and punishes variances, that will not only reduce the chances of a successful Agile adoption, it will also significantly reduce the potential benefits of Agile.
Agile in the Enterprise Requires a Hybrid Approach
A full top-to-bottom transformation to Agile development will likely result in significant changes to the organizational reporting structure, physically moving people from one location to another or even rearranging their workspaces (whether it is down the hall or across continents), and changing the interaction between people at all levels, from customers and product management all the way to developers and the folks in operations. For most enterprises, a change of this magnitude can’t (or won’t) happen overnight. For most people, a hybrid environment will be part of their experience for many years. And of course, there may be some projects that you have no intention of moving to Agile.
Partnering With AccuRev to Bring Agile into Your Enterprise
The process of each of our customers is different, ranging from small collocated shops to large distributed organizations with locations across the globe, from Agile eXtreme programming to CMMI level 5 waterfall. We understand a wide range of methodologies and how they interface.
At AccuRev, our core expertise is process improvement. Adopting Agile in the Enterprise is all about process improvement. That’s why we’re excited about our new offering, AgileCycle, which has everything you need to go from where you are to where you want to be. With AgileCycle, you don’t need to worry about doing a big-bang transformation. We’ve got the expertise, coaches, trainers, consultants, and of course the tools that will allow you to transition to Agile at your own pace while smoothly integrating Agile, iterative, and Waterfall methodologies and your existing tools across your enterprise.