Shared Services in the Agile way!
Shared Services - The Way Forward
Large enterprises today require agile product teams to be truly cross-functional, requiring proficiency in all areas, namely software architecture, development, testing, building, deployment, release, and may be more. This remains easier said than done, as most large enterprises cannot afford dedicated teams in some areas, especially those requiring specific and niche skills for individual products. Security, Infrastructure, Database Administration (DBA), Extract, Transform and Load (ETL) Management are examples of such skills. Along with skills, these areas also require specialized infrastructure setup and industrial know-how. To overcome these challenges, the formation of a Shared Services Unit performing such niche functions for agile product teams, could be an ideal solution. Let us understand the modus operandi, challenges, benefits and more of having such a Shared Services team to go the agile way effectively.
Composition and Working of the Shared Services Unit
'Shared Services' unit broadly falls into one of the two categories: the Build and Service category
Units providing such services are usually 'shared' in large enterprises because the skills, resources and infrastructure are niche and scarce. The cost of operations is very high and cannot justify dedicated utilization by product teams.
Irrespective of the nature of work or service, such teams being shared enables optimization. A shared services team should typically consist of multiple resources with each of the desired skill sets, so that they can simultaneously take up multiple requests from a variety of product teams.
The Shared Services team receives requests from various Product Teams into their queue and processes them one by one, within defined Service Level Agreements (SLAs) as shown in the following figure.
Figure 1: Shared Services Unit servicing requests from various product teams
Typically, the Shared Services unit processes the service requests on a first come first serve basis. Hence, the product teams would have to wait for their turn until the previous set of requests are processed. Also, these teams operate independently, oblivious to the business context and priority of theproduct teams. This could result in communication overheads and increased cycle-time. If not well coordinated, such teams could thus become a bottleneck in the product teams' delivery cycle.
The Agile way forward
Product teams and the Shared Services team can collaborate and plan synchronously to decrease the overall cycle-time and increase agility. To arrive at a balance, they must first work together on planning the product release. As part of the planning together, the two teams create a backlog of required Features or Enablers needed for the product delivery.
Figure 2: Shared Services Unit collaborating with Product Teams
By following an agile methodology with multiple product teams and using the Kanban methodology, the Shared Services team can arrange the enablers according to their priority and team capacity and can schedule the delivery in line with the product teams release timelines, thereby improving their Cycle-time and Throughput.
The Shared Services team can view the needs of all the product teams upfront, thereby allowing them to prioritize and pull right work based on their capacity and bringing agility in the work pattern.
Teams can articulate areas of concern and together overcome them to ensure on-time delivery, keeping in mind the bandwidth required to deliver the identified enablers.
The formation of a Shared Services unit working in Agile way can benefit the organization in multiple ways:
- Teams can enjoy the benefits of working in an agile setup. Shared services, by being Agile improve the agility of the product teams.
- Increased collaboration and understanding between the two teams would ensure that they are able to identify the right enablers and plan releases effectively, by falling back on the experience garnered by the Shared Services team working with different product teams.
- Maximum optimization by utilizing available resources, without having to hire outside resources for specific roles.
- Enhances the niche skills, and industrial know-how of the existing team members.
- Enterprises can form new best practices for improving the services and reuse of available resources across the product teams.
Despite the challenges, creating a Shared Services team in the organization is the most sensible approach for certain areas, rather than dedicating resources with the required skill sets to every team. Under such a circumstance, adopting agile ways of working can reduce the overall cycle-time for the product teams.
A word of caution however, is that it is advisable that the Product teams do not outsource their core delivery processes like quality assurance, build automation, code quality review and so on to the Shared Services unit. This can make it difficult for product teams to embrace agility and reduce the overall turn-around time.
Thanks for subscribing to our latest blogs, thought leadership and other product updates!