This chapter is from the book

Every IT product goes through a knowledge transfer (KT) phase at some point in its lifetime. Quite often it is immediately after development is completed and maintenance has taken over. Sometimes other reasons can trigger a knowledge transition. Outsourcing, an incumbent’s poor performance, or business landscape changes can trigger a need to hand over an IT product.

While going through this phase, enterprises often do not have a predictable way of transitioning. In outsourcing scenarios, one relies on the expertise provided by the vendor taking over the application. In cases of restructuring or insourcing, organizations might not have a ready reckoner to look at how these transitions can be handled.

Most IT service organizations use a readymade template for knowledge transfers. The processes in these templates rely on a set methodology of analysis, shadowing, reverse shadowing, and steady state. Some organizations also talk about a stabilization phase. Contracts are signed up with timelines of three months, often followed by a stabilization phase. However, the delivery teams may face inordinate challenges:

Challenge 1: The most obvious challenge is that there is a lot to do within a short span of time. Apart from everything else, assembling the team, knowing the lay of the land, and putting a plan in place will shave off a few weeks from the schedule.

Challenge 2: The next challenge is to get the customer and incumbent to agree to the plan. This may take longer than you expect. In fact, it can take a month or more for people from three different organizations to even get into a working rhythm. It takes time for momentum to build up.

Challenge 3: People soon realize they are falling behind schedule. With strict timelines, there is a tendency to cut corners, and quality begins to suffer.

Challenge 4: Most well-laid plans bring out unknowns. Strict timelines often do not allow for time to unearth the unknowns.

A tactical challenge faced by the new team is getting all the right access to all systems within this timeframe. Assembling members is a crucial step before getting the access rights. Only when the members are assembled can we tell which individual needs what access. After that, we need to identify all of the ports, firewalls, and authorizations required to execute each member’s work.

To say that we need to list all the necessary ports, firewalls, and authorizations in one place and then get IS resources to implement the access rights makes things sound simple. The process is rarely that straightforward. In reality, even members who have worked in the group for a long time might not know all the systems to which they require access.

In one of my recent engagements, in which I was working from the client’s location, we needed to obtain certain access rights and a hard token to allow members to work remotely. The client manager put us in touch with an old vendor who had remote access. This member had obtained access more than two years back. He came by to help and soon realized that the customer processes had changed. We had to get four different tickets created for different levels of approval, and each ticket required approval from different people. In addition, the tickets expired if approval did not come within two days. It took two to three months for some team members to obtain this access. In another organization, the process of granting administrator privileges on developer work stations had its own unique workflow, and in one extreme case, it took us a full month to grant a developer administrator rights.

Additionally, it’s not easy to gauge the quality of the transition. How do we gauge whether the knowledge sessions are really effective? How do we really know if we have understood everything? Any incumbent employee who has been working and supporting the system for a long time may well have established a few nifty things, such as little scripts or utilities for monitoring or promoting a piece of code, to make their jobs easier. Such things may not have been documented, but would aid in a lot of debugging issues and expediting delivery. Further, we may not see enough issues crop up to demonstrate all the measures used for maintenance and enhancements over a short span of time, whether through workshops or in the two to three weeks of shadowing and reverse shadowing.

In all cases, a stabilization phase continues over long periods. In my experience, and those of several colleagues who have taken over large enterprise platforms, it may take almost a year before you really feel in control and are operating at a level of optimized efficiency.

Post Takeover

The period after takeover always shows a dip in production availability and reliability. Teams go through long hours of stress as they battle production tickets and unknown areas of the application. Time taken to fix issues increases. Service organizations recognize this. Many contracts specifically ask for a waiver of penalty (or a holiday period) in the first few months on steady state. By the time teams feel in control, there is only a sigh of relief rather than joy. This period heavily tests the business and the relationships between organizations and amongst individuals. Some of my colleagues from ISVs have mentioned that the team literally slogs it out in the first year after takeover. Although many organizations are certified at SEI CMM Level 5, when a team hits a production snag, those certificates don’t carry much weight. People need IT heroes in the team to pull things through. Dependencies on folks who are technically competent, can think on their feet, and can manage time pressures increase that much more. This has become de rigueur in today’s knowledge transfer world.

Unfortunately, many times the outcome is not positive. Business impact can be huge when product performance is compromised. Older team members are called back, perhaps poached from other organizations, as desperate measures. Sometimes entire teams are replaced, creating, in a sense, a transition within a transition with far greater urgency. For many people, this becomes career limiting. Many senior level executives have lost their jobs when transitions have failed.

ITIL versus DevOps

Over the last few years, we have witnessed the industrialization of IT operations. ITILa (Information Technology Infrastructure Library), a set of practices for IT service management (ITSM), has matured over the last five years. We now see the advent of automation in this space. Companies such as IPSoftb are using robots and artificial intelligence to support IT and business operations. These will continue to be relevant for large platforms running on COTS (commercial off-the-shelf) software implementations with limited customizations. In fact, with industrialization, we are seeing transitions mature and become more efficient in the COTS space.

Our world is hurtling relentlessly into a space where differentiated experiences and a quick time to market are becoming keys to survival. At the moment, there are quite a few differences between ITIL and DevOps. In order to aid this transition, I believe the ITIL paradigm will change to include key principles from the DevOps world:

DevOps takes a holistic view and stresses on the performance of the entire system. ITIL looks to break down the whole into phases of activities.

DevOps looks for a cross-disciplinary approach and stresses on outcome orientation. In the traditional ITIL set-up, there are clear compartments between Development and Operations. Even within operations, there are clear distinctions between Release Engineers, DBAs, Network Engineers, and Operations Staff.

DevOps tries to amplify feedback and continuously learn. The ITIL ethos follows planning control and documentation. ITIL tries to bring consistency by creating processes and checklists.

Both ITIL and DevOps use automation. In the case of DevOps, the focus is on automating routine tasks. With ITIL, artificial intelligence is being used to mimic human behavior.

To put it succinctly, the future of ITIL is one in which robots take over human activities. The ITIL paradigm (as does the Industrialization principle) looks to remove the uncertainties brought in by human interactions. In the DevOps world, on the other hand, the future looks to automate verifications done on the system by team members. DevOps and Agile celebrate the social angle of software development and maintenance.

Contracting

Enterprises are starting to recognize the need for longevity of key members. Today, customer organizations seek to get the names of key members put in the contract. Exit clauses in contracts are getting longer and longer. IT set-ups are learning the need to ensure continuity and cooperation in the case of handovers. There is an appreciation within enterprises that team transitions are becoming the norm rather than the exception. More than seven pages of a contract can be dedicated to engagement termination. These contracts touch upon various aspects from setting up transition managers and knowledge transfers to the rebadging of vendor personnel. Some contracts have even begun to require that client nominees be able to work from the vendor offices for purposes of transition. One must commend the proactive think-through on this subject at the contracting phase itself. The irony, though, is that organizations are trying to secure cooperation through contract negotiation.

Timing

A rush to complete transitions can have a detrimental effect. Let’s take the example of banks. Bank activities are generally seasonal. Year-ends are crucial periods. Transitions in today’s banks are planned so that teams do not “mess up” this crucial time. In effect, there is a rush to complete the transition before year-end activities begin. But what is often overlooked is that the new team is suddenly facing a set of crucial activities that they never had experience with. It’s a bit like fielding the national squad for the World Cup with a set of players who have never played in a high profile and high pressure arena. No team has won the World Cup while fielding an entire squad of greenhorns. Instead, winning teams always have a judicious mix of youth and experience. Similarly, in the case of transitions, is it not better to have the new team pair up with the incumbent on an activity as critical as this, rather than relying on the new team’s untested skills and capabilities to pull through?

Scope

Today’s knowledge transfer focuses on taking over the support and maintenance of an application. However, no focus is given on how teams should work to enhance the application. Development is different from support. The exercise of inception to working with business on showcasing stories is unique to every organization. In three months, which is about the duration of today’s transition agreements, many teams don’t get an opportunity to partner with the incumbent and deliver an enhancement. Imagine a scenario when the old team is no longer around and the new team is tasked with an enhancement. They meet the business folks and they are told “that’s not how we do it here,” or worse, “that’s not how the old team used to run this.” That can make the situation quite awkward, and things can quickly decline from there.

Today’s Transition Program Manager

Suresh is an experienced IT program manager working for a large service organization. He has been working in the IT industry for over fifteen years. He has led several successful transitions in his career. When his team contracts with a new account, they identify large development projects expected ahead of time. Then, they request the incumbent to complete these projects. Because Suresh’s team will have their hands full taking on the maintenance aspects of the existing platform, they don’t have time to focus on the new projects. Suresh realizes that this goes against the grain of practical wisdom. The new projects drive innovation. New projects will have more maintenance and enhancement challenges after they go live. Yet his team continues to focus on the matured systems even as work in progress (WIP) streams do not attract any focus.

Organizations are particularly keen to understand how to transfer over projects that have been developed in an Agile fashion into maintenance mode, and they are asking this specific question to the service organizations they hire. No one has really broached this topic in-depth. This is primarily because development phases have picked up Agile models, whereas, in many instances, the maintenance and operations teams work with older methods. Consider the case of a colleague who was coming out of a large-scale transition of a development project into operations. In this case, the biggest challenge he faced was that every time the development phase needed to handover to operations, they began hitting roadblocks. Operations would say that adequate documentation was not present to take over the application. The development team would say that a working product is more important than comprehensive documentation.1 Both development and operations view things from different positions on Agile adoption. In an ideal world, the operations team would have been involved with the project from the requirements and development phase. On the flip side, the expectations of the operations team would have been factored into every story played by the development team. A few organizations are beginning to restructure this into a DevOps model.2 The DevOps model focuses on both development and operations with the intent to provide continuous delivery. To put it in another way, in this paradigm, development and IT operations happen continuously and seamlessly. However, the vast majority of organizations still do not operate with this philosophy.