Many Information Technology Departments have adopted the “matrix” or “horizontal” organizational structure, where individual resources are put into teams according to their role or title. For the application development side of IT, there are typically separate teams for Project Managers, Architects, Business Analysts, Designers, Developers, and Quality Analysts. When projects need resources assigned to them, the respective resource managers from each of the “teams” will attempt to assign their staff appropriately to meet the project needs.
The proposed benefits or outcomes of organizing teams in this way are to:
- Provide consistency in skills and delivery by role – by putting people who have the same titles and skill sets together on one team, they will share information and learnings with each other more readily, thereby raising the knowledge level of the entire team. Also the mangers of these teams are charged with ensuring that their staff receives the necessary training and growth opportunities to fulfill their role.
- Provide better communication and collaboration between the roles – role players will naturally gravitate towards providing good communication up and down the role lines because of necessity. People in each role are expected to communicate their needs from upstream roles and respond to the needs expressed by downstream roles, and everyone will work happily together to achieve objectives.
- Provide more efficient allocation of resources to the work – by “pooling” resources with the same skill set, they are more easily assigned and/or reassigned to the highest priority work of the organization, and you ensure appropriate utilization of all resources.
From my experience at some very large IT Departments, it appears that most organizations are falling short of achieving these outcomes. Here is what I have consistently observed relative to each target:
Consistency in Role
Resources in these organizations rarely work together with others from their “team”. Attempts by team leaders to get people to share learnings with others on the team are typically seen as a nuisance and/or hindrance to them getting their “real” jobs done. Another drawback I have seen is the lack of deep domain knowledge; resources seldom stick with a set of systems long enough to develop deep knowledge, so they are constantly coming up the learning curve on new projects.
Communication and Collaboration between Roles
There are many more communication breakdowns between roles in a matrix organization. Often these teams have narrowly defined their own roles, and typically point the finger of blame at other teams for issues.
More Efficient Allocation of Resources
Leaders of resource teams are constantly scrambling to understand demand and priority to assign resources appropriately because there is an inadequate forecast for the overall portfolio. They also seem to be under pressure to never be the team that says “no” to something due to resource constraints, so they get into the habit of over promising and under delivering. This leads to resources being fractionally allocated across many projects, with no clear priority, or worse, leaving many projects waiting for resources to free up to do their work.
What can be done?
In my roles as both IT consultant and management, I have led or been involved with several initiatives aimed at improving the efficiency of the matrix organization. Following are a list of the top five items I believe every matrix organization needs to have in place to have any hope of realizing the benefits sought.
- Clearly, define and communicate responsibilities for roles. This requires the leaders of all the resource teams to not only define the processes and deliverables their team is responsible for but also to work with leaders of other teams to ensure there are no “gaps” in the hand-offs between teams. For an IT development organization, this means every process and deliverable in their software development methodology needs a clear “owner”, and any areas where collaboration between teams is needed needs to be clearly understood. One method of documenting and communicating these responsibilities is the use of a RACI chart, where RACI stands for Responsible, Accountable, Consulted, and Informed. Creating these types of communications helps set clear expectations for everyone on the team and also assists in providing fact based feedback on individual resource performance. You are bound to get more consistency in-role when the expectations are clearly understood by the whole organization.
- Allocate time for team and reward team behaviors on the resource teams. Each resource should have goals toward and an allocation for team time. At a minimum there should be a face to face team meeting every week where team members can be “spot lighted” and share current learnings or struggles with the projects they are on. It’s important that this time be allocated and tracked in the time tracking system and not be infringed upon by other assignments. You may also allocate some of these resources to special team projects, where they can work on process improvement efforts, either within their team or in collaboration with other teams. Doing these things will help create a greater sense of team in the resource pool.
- Create and actively manage the resource demand pipeline – at least 6 months out at all times. Managing the demand pipeline involves organizational planning discipline. In order for resource managers to understand how to allocate their resources, they need to be able to see not only the demand being placed on their team right now, but they also need a view of the future demand so they can plan their staffing model accordingly. This is by no means a trivial task and requires coordination at the highest levels of an organization, but without it resource managers are flying blind and left to react to only the demand that is immediately in front of them.
- Allocate resources in such a way that they can “stick” to a domain as much as possible. The more subject matter expertise an organization can bring to bear on a project, the greater the odds for success. Not only will you reduce learning curve costs, but knowledgeable resources are more likely to develop workable solutions to the problems of the project.
- Reduce fractional allocation of resources and assign full-time leads whenever possible. It is essential that there be one person accountable for the functions and deliverables from each horizontal team involved in an initiative. If more than one resource is needed from a single pool, try to allocate as many resources at 100% as possible. Doing this will allow these resources to focus and do what is necessary for the project’s success and not get pulled in many different directions by competing assignments.
In conclusion, there are two “facts” that it seems we in IT cannot escape 1) our value in the eyes of our business partners continues to decline, and 2) the matrix organization is here to stay. It is imperative that we take the steps necessary to deliver great results regardless of organizational issues. Else we all risk the fate of being “outsourced.”