As soon as any large enterprise decides to implement agile development, they run right into organizational boundaries. They are likely to have siloed departments much like the following:
- Program Management
- Product Management
- User Experience Design
- Software Development
- Quality Engineering
- Publications
- Customer Support
None of these departments can build, deliver and support a software system alone. They need to work together, yet they have conflicting priorities and needs. They are also measured quite differently. None of them has total control of the final product so they are measured around their respective deliverables, not the end result.
The benefit of having dedicated product teams has been proven repeatedly across many industries and product categories. Any agile development approach requires a dedicated product team. Strategy, or in this case tactical implementation, has just collided with culture.
Many organizations respond to the inherent conflicts by creating a matrixed management structure whereby people are effectively loaned to a project. This makes sense if you can avoid the “too many cooks” problem. That is, each department manager wants to control her part of the solution. If five departments are involved, the project has five managers plus the Project Manager or Scrum Master. Sounds like a recipe for failure, right?
Try the Centers of Excellence Approach Instead
Organizations don’t matter. Results matter. Customers matter. Customers want great products and services. Rather than implementing yet another re-organization, try adding Centers of Excellence (CoE) instead.
A Center of Excellence is a group of people focused on the continuous improvement of a key business or technology area. The group can consist of dedicated, full-time members and/or part-time contributors. CoEs do three things:
- Support: They are experts within their focus areas. They offer subject-matter experts to anyone needing assistance.
- Guide: They have access to and knowledge of applicable standards, tools and techniques making them a resource for all project teams.
- Educate: They disseminate knowledge, offer training assistance, and provide standard metrics to measure progress.
The current department managers are good candidates to create and drive the CoEs. They should focus on CoEs not products. Let the product teams make the product decisions.
Here are some examples of CoEs to get you thinking about how they may fit into your company:
- Team leadership (e.g. Project Managers and Scrum Masters)
- Product Ownership (e.g. Product Managers and marketing managers)
- User Experience Design (e.g. usability engineers)
- System Architecture (e.g. software architects)
- Information Management (e.g. database designers and administrators)
- Test Engineering (e.g. software quality engineers)
- Publications (e.g. technical writers, graphic designers)
- Business Analysis (e.g. experts in compliance, six sigma, ISO 9000, productivity, etc.)
- Program Management (e.g. senior business managers who can establish priorities and allocate staffing)
Clearly, this single blog post only scratches the surface of the organizational issues that impact enterprise agile development. Hopefully, this post will give you some ideas and generate some discussion within your company. If you have other suggestions related to these issues, I’d love to hear them.
we are trying to solve this through a “virtual” teams concept, where people from different departments are working on improving certain area
Yes, I also like the center of excellence approach. It’s better than traditional top-down management.