This website uses cookies to enhance your browsing experience. By continuing to use this website, you agree to our use of cookies. Click here to learn more, including how you can manage your cookie preferences.

Back

Implementing Agile Methodologies in a Professional Services Organization

This is the second post in a series about Kaltura’s Professional Services practice. For an introduction to our group and what we do, take a look at the first post: “Professional Services and You: What Do Professional Services Do, Anyway?”.

Introduction

Kaltura’s Professional Services department works with our larger clients to ensure a smooth integration of video into process and applications. We provide the on-ramps for the successful adoption of video by users. As detailed in our first post, we predominantly assist clients with four types of services: migrations for new clients, integrations with other IT products, workflow and product customizations, and training.

The work of Professional Services is diverse, and department has several different teams along divisions of expertise. The Delivery Desk delivers transactional services rapidly: performing migrations and providing complex product configurations. The Custom Development team scopes and delivers bespoke video applications and customizations that require weeks or months of sustained effort. The System Engineering team deploys infrastructure and products for clients who require their own hardware, and our hard-working Training team ensures that clients and their end-users hit the ground running. Finally, Project Managers keep everyone humming along.

Over the past several months, we have appropriated Agile methodologies into our work practices. The values of Agile emphasize cross-functional teamwork, collaboration with end-users/clients, and frequent deliverables. This allows our teams to better to respond to change — whether in requirements, timelines, business priorities, or client preferences. Instead of being fixed in stone, plans and timelines are continuously evaluated and adjusted based on real data; similarly, requirements can be tweaked to incorporate user feedback or changes in the market. To apply Agile principles to Professional Services work, we’ve had to appropriate its methods to the unique challenges posed by the breadth of services offered by our team.

Agile methods can help teams plan better and deliver with more consistency. That’s right! Contrary to a common misconception, Agile does not eschew planning and process. Effectively applied, Agile methodologies help businesses stay on budget and on schedule, while maintaining the flexibility to pivot due to changing market conditions. While Agile is frequently used by teams that build products, we have found that it provides significant benefits for our Professional Services team, as well. The key has been appropriating Agile practices such that they allow us to deliver many clients’ projects simultaneously, and work on a mix of small, transactional tasks, as well as larger, design-driven engagements.

The two most common Agile methods in the industry today are Scrum and Kanban, are now commonly adopted by software development teams all over the world. Indeed, Kaltura’s Product teams have using Agile-based methodologies for several years. The promise of Agile is enticing: clear organization of work, better collaboration with stakeholders, and improved predictability of deliverables. Over the past several months, Kaltura’s Professional Services group has also been experimenting with Agile methodologies to find strategies that are applicable to our unique place in the business and our work mix.

Use the Appropriate Agile Methodology for Different Teams

We use both Scrum and Kanban on different teams to accommodate the diverse mix of Professional Services work.

Kanban is a work visualization method with its roots in “lean” manufacturing. The goal of Kanban is to represent ongoing work visually, using a board with stages like “To Do”, “In Progress”, and “Done”. Tasks are added to the board as cards and move from stage to stage as they progress. The number of tasks that can occupy a given stage is limited, ensuring that the team is not asked to perform too many things at the same time (reducing the productivity-sapping effects of too much multi-tasking).
Scrum is a work organization technique that focuses on clear deliverables in short intervals of time, called “sprints” (our sprints are two weeks long). Scrum teams adhere to a planning methodology that values frequent re-evaluation of commitments. As the team completes a sprint, it works with its stakeholders to confirm that the sprint deliverables — the software that it has built — are bringing business value. An opportunity to adjust priorities and plans pops up before every sprint, as the team works together with its stakeholders to commit to an upcoming sprint’s worth of work. Scrum methodology exemplifies the startup creed of “release early, release often”.

Kanban is an effective task management process for our Delivery Desk team, who perform a high volume of transactional services for Kaltura’s clients. These services include migrations, account on-boarding, and complex product configurations. Using Kanban, the team is able to clearly see their pipeline, focus on the tasks to which they have committed, and avoid taking on more work than their capacity allows. Problems are easy to visualize and review — such as a task card staying in one stage for too long, or a build-up of tasks in one of the workflow, seemingly blocked from moving to the next stage.

Scrum is the preferred software development methodology for our Technical Services group, who develop customizations and new video experiences for Kaltura’s larger clients. Like most other teams who have adopted Scrum, the team delivers work in two-week sprints. What’s unique about our implementation of Scrum is the ability to manage a diverse mix of projects. Large projects are split into independent Scrum teams (who sometimes have overlapping members). A catch-all Scrum team then captures members and work from small projects — complex migrations, small product customizations, and so forth. We ask Project Managers and Solution Architects to come to a “sprint readiness meeting”, which occurs 24 hours before our Sprint Planning meeting. During Sprint Readiness, we ensure that all projects that jockey for space in a given Sprint are ready for the team to accept and have relative prioritization.

Applying both Kanban and Scrum methodologies allows our team to deliver a diverse mix of work for our clients. The Delivery Desk applies the Kanban methodology to provides transactional services rapidly, consistently, and at high quality. The Custom Development team uses the Scrum methodology to deliver complex video applications and customizations that require weeks or months of sustained effort; and does so while allowing client input into requirements.

Designate a Delivery Manager to Manage Commitments

One of the biggest challenges facing our team is the breadth of deliverables we are working on at any given moment. To ensure an orderly queueing process and commitment to timelines, we have established a Delivery Manager role in our Agile process. The delivery manager role is one part factory foreman — planning and organizing the work of the team — and one part band leader — keeping everyone in sync. The delivery manager is a servant-leader, helping every individual in our delivery teams coordinate their work with each other and with external stakeholders.
It’s not enough that the delivery manager has project management or Scrum Master experience. Our delivery manager is a Kaltura veteran, with strong relationships to a broad range of technical and operational teams and deep knowledge of Kaltura’s platform. This allows him to coordinate deliverables between Professional Services and our Core engineering teams, understand the priorities of our Project Managers, and expertly work with delivery team members to clear roadblocks.

By designating a Delivery Manager, we have made it easier for our team to deliver on several large, independent projects simultaneously. At the same time, we are able to commit to and effectively deliver on smaller work items that would otherwise take significant management overhead.

Use Spare Capacity to Plan for the Unexpected

As a client-oriented organization, we have to be responsive to the needs of our customers and stakeholders. This means that even in the course of a two-week sprint, unexpected challenges and requests can arise and require rapid turnaround. Common examples are requests to provide assistance to members of Kaltura’s sales organization, and technical escalations from our hard-working Customer Care team. To make sure that these types of requests can be handled, we plan spare capacity into our sprints.

Spare capacity is time — usually about 20% of a sprint — that is initially unallocated. As requests come in, team leads and the Delivery Manager review and assign them to team members who are able to handle the request most effectively. The task enters the sprint mid-stream, and the amount of spare capacity is reduced. As we get closer to the end of the sprint, excess spare capacity, if any, can be used to make progress on low-priority tasks, or to provide team members with an opportunity to work on personal projects.

Over the course of several sprints, we’ve been able to use historic data to better predict how much spare capacity we need in a given sprint, and how to initially allocate it across it team members. Some team members are brought in to sales engagements, or for client support, more often than others. This dynamic is reflected in estimates at the start of the sprint. However, everyone gets some spare capacity to help with the unexpected.

Allocating spare capacity isn’t a precise science. However, it helps the team treat incoming requests as a regular part of our sprint deliverables — instead of as unwelcome distractions to be avoided.

Conclusion

Even though Agile methodologies are generally used by Product teams, our Professional Services organization has appropriated these methods for the broad range of diverse projects that we delivery for our clients. By applying Agile methodologies, our team has been able to improve the predictability of our deliverables and raise the productivity of team members. We have adjusted several aspects of Agile work to apply it to Professional Services deliverables: designating a Delivery Manager, allowing for spare capacity during our sprints, and using both Kanban and Scrum methodologies, as appropriate.

We hope that this blog post provides guidance for other Professional Services teams looking to apply Agile methodologies to their practice, and provides transparency to clients looking to utilize Kaltura services for their requirements.

Why add video in the first place? Read “Measuring and Maximizing the ROI of Enterprise Video.”

Let’s Get Going