Scrum doesn’t scale, at least not easily. In fact, waterfall doesn’t scale either. It degenerates into a phases and gates approach that guarantees bottlenecks and delays.
Realistically, you can’t expect a large enterprise to develop software the same way a small organization does. In a large enterprise, there are many concurrent, overlapping projects. Managing integration issues, sharing technology components, and maintaining a common look-and-feel are immense problems that small orgs don’t have to worry about.
Does this mean large enterprises can’t be agile?
Not at all — if they morph their approach. As companies grow. there’s a tendency to introduce additional management layers, add more command-and-control processes, and create more forms for sign-off. Making matters worse, a project management office (PMO) is often created to define and enforce rules. Can you spell g-r-i-d-l-o-c-k?
Each of those elements adds bureaucracy and slows everyone down. Driving decision-making higher in the organization is the wrong approach. Exactly the opposite is needed. Drive the decision-making downstream.
Scrum, real Scrum, that is, not a bastardized water-scrum-fall approach, works in large enterprises with some tweaking. Here are the basic additional elements needed to make large-scale Scrum work. The precise details for your organization will need to be determined by your situation but these elements will get you started.
- Scrum-of-Scrums: Much has been written about this technique. While it can work, particularly in mid-sized enterprises, it is not a total solution. Give it a try but be aware of the communication issues that will arise. As soon as you introduce a layer of indirection in the form of software team representatives, communication suffers.
- Centers of Excellence: You’ll need small groups of experts focused on critical knowledge areas. For example, team leadership, system architecture, product ownership, production operations, and integration testing are important to almost any enterprise software project. Don’t staff these CoEs solely with dedicated individuals. You need to engage people who do the work, not just those that talk about it.
- Systems Integration Teams: The importance of integrating varied software systems across a large enterprise cannot be over stated. Dedicate people to help in building middleware to connect systems and to assure interoperability.
I’d like to make one final point. Set realistic software deployment dates and do not move them. The overused practice of setting extremely aggressive target dates and moving them, sometimes repeatedly, is insane. It stresses everyone out and frustrates the entire business. Stop doing that! Set a firm timeline and let the software feature set be the variable.