Conf42 Cloud Native 2023 - Online

Patterns of Adoptions and Depreciation

Video size:

Abstract

Infra and platform teams are usually required to support many tools. Retiring old tools, and intruduce new ones are a key factor in the cognitive load of the group. The talk will explore using incentives to improve the transition process with some real product use cases.

Summary

  • Omar Kahani is a staff engineer in the infogroup at SNC. He shows a framework with a set of practices that can make migration and adoption successfully, fast and without frustration. The framework is based on the technology adoption lifecycle.
  • The next group is the majority, and as the name suggests, it's most of the organization. Crossing the Chessam put a gap between the early adopters and the majority. Good product and low migration effort should be our goal.
  • Trust is part of every buying decision we make. First way to build trust is by celebrating early adopters success. A PoC must end with as many people hearing about it. Find the best place to celebrate those in your company.
  • Early adoptions must represent as many use cases and groups as possible. Use high level manager support. Sticks are not excuse for not doing anything else. Trust, good product, self serve migration all must be used before sticks.
  • So to summarize, we talked about the technology adoptions cycle and how to segment our R D organization the different approaches for each segment. We talked about migration difficulty and how it affects the majority. And finally we talk about sticks and forcing change. For anything else please reach out on Twitter.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Hi, thank you for joining me to talk about adoption and deprecation and how to get everyone to use the internal developer platform. I'm Omar Kahani. I'm a staff engineer in the infogroup at SNC, where I lead platform teams. Building the internal developer platform before we dive in a bit about the infra group. We are three teams, but we're not doing any companywide ops, DevOps or on call for everything. We're building a paved path for other teams to lower cognitive load and make their day to day happier and simpler. As a result, if you want our solutions to be effective, we need the teams to adopt it. It can be as simple as a minor version of a helm chart, that provision postgres, or as complicated as changing the git brand strategy. Today, I want to show a framework with a set of practices that can make migration and adoption successfully, fast and without frustration. The framework is based on the technology adoption lifecycle, first presented in 1957 and then republished and generalized in tools and studies such as crossing the chess on the lifecycle describe how technology is adapted in the general population from zero to 100. The model splits the market into buckets, each with a different consumer behavior. Using the same process, we can segment the RND and have an adoption strategy for each group using the model. We can also provide a systematical way to show progress in the migration project. Breaking down the model, we will now discuss each segment and the tools and practices to apply to it. Also in each segment, we will identify the relevant teams cases on the criterias of the segments. That mapping might change over time as teams change their behavior. So do that exercise each time before you start a migration project. The first group is innovators, a small group of people who get excited about new technology because it's novel. People in this group are willing to pay the tax of using a product that is not polished, has bugs, and lack any necessary documentation for onboarding. As long as they will be the first to use it, they will use it. That willingness is a gift for us as we build new solutions because we need design partners to build with us that product. So usually we will collaborate with ones or two teams to test our assumptions and to test the product that we build as we build it. Using design partners, we will be able to build a more specific solution, one that will work later on. For innovators, we will look for teams that have application without risk or low risk. We don't want application that will impact customers if there is downtime or problems. We also need teams that have time and are willing to free time in their sprint for pairing with us and make the effort to use our tool so we know who they are, we know what to do with them. We are ready to move to the next group. The second group is the early adapters. This group still get excited about new technology, but they also need to get a real value. Although they are willing to have some bugs and figure out some things, they still need it to solve a real problem for them. It's an excellent group to test the product as is a moment before GA. It's also a great group to validate and write the onboarding guides that will help us support the majority. Inside R D we will look for teams that have trust and are willing to try things before they come GA. We also need teams with time because the onboarding is not trivial and there might be bugs that will require pairing time with us. There's a lot more to talk about early adoptions, but I want to talk about the next group first. The next group is the majority, and as the name suggests, it's most of the organization. In the model. It's about 68% of the population. The majority cares about their day to day work and the problems they have, and technology is only a way to solve those problems. Therefore, approaching the majority is completely different from the first two groups, not without a reason. Crossing the Chessam put a gap between the early adopters and the majority. From my experience, there are two main reasons for failure with this group. One is a product that doesn't solve a problem, but hopefully doing user research, working with design patterns and doing pocs, that's not the case. The second reason is that the migration is too difficult. Every product, technology, tool and practice that we use should provide us a value, but the value get lower by the effort it takes us to actually use that new tool. At the left corner we can see great products, but the effort to use them is so high that we wouldn't get any value from them. On the right side, we can see that the migration is so simple we can capture all the value of the product. Good product and low migration effort should be our goal. There are two practices that we use at Snyk to make that migration effort lower. The first is using self serve tools. In one case, we upgraded our internal deployment tools to have more options, but that required every application team to change their deployment configuration. That's a very high migration effort and we wanted to lower that, so we automatically opened PR for them, reducing the migration effort to a simple PR review and a simple click on the merge button in GitHub documentation can also lower that migration effort. Use the early adapters to make sure the guides and the docs are simple and clear for people without prior knowledge. We also usually task one of our teams members to follow the guide word by word. He is not allowed to do anything that is not strictly written in the guide so we can see where he gets struggled and how we can improve our documentation. The last group is the laggers. In the classic model they hate change. In the classic model this group hate change. They hate it so much they never do it unless they are forced inside the RND. Some teams must be the last to adopt, but it doesn't mean they hate change. There might be other reason for that. It might be that they have a production critical application, they can't suffer downtime and they don't want to take any unnecessary risk. So they prefer to wait and see the problems that other teams will have. They might have a legacy system, one that no one is familiar with. So in one of my previous companies we had those kind of legacy system which was super difficult to make any change. And anytime we wanted to change anything we had to group a lot of people inside a room and understand the legacy system and how it's deployed in order to make that change. Or they might need more time. So think about that team that is currently on the hook to deliver a very significant milestone to your company. They don't have time to mess with their deployment process, with the way that they provision cloud resources. They need things to work and without any change. So what can you do to make those team adopt your product? What is the best thing we can provide them? We can provide them knowledge just in time specific knowledge for their application about the migration effort. In other words, we can pair with them in that pairing session. We will be able to provide the necessary knowledge to make the migration effort as low as possible. While they can provide the specific application context. Together we can make that change easy and affordable. So to recap, we talked about four segments, the innovators, our design partners, the early adapters that will do pocs and test our documentation, the majority, both the early and the late, that will use our self serve tools and guidance to make that migration. And we talked about the laggers where we need empathy and pairing time with them to complete that migration project. We also talked about the majority and how they are a key group to our success. So now I want to talk about more tools and practices. Aiming to the majority, we will talk about two practices, trust and sticks. Trust is part of every buying decision we make. A while ago we bought a home coffee machine because we thought the coffee at home will be better than a coffee in the coffee shop. The first way to build trust is by celebrating our early adopters success and even using them to demo and explain the problem and the solution in their own words. So at Snyk there is A-R-D sprint demo which is an excellent platform for those kind of celebration. Find the best place to celebrate those in your company and in fact make it a rule. A PoC must end with as many people hearing about it. Speaking about early adoptions, let's go back and add another criteria. Early adoptions must represent as many use cases and groups as possible. Trust is established by people close to you with a similar use case, but trust is also established by people. You value their opinion. In every group, organization and community there are always individuals that can reach out and influence people's decision because people trust and value their opinion. In SNCC, those are group level staff engineers which can influence the group practices. In one of our first migration projects, we intended to replace the continuous delivery system. This was a fundamental change to an historical process inside SNCC. Not only that, but everyone inside the group was less than a year in the company and wasn't in the position to build trust with the whole organization. We had to use other people for that. So after identifying them, we engaged with them in a series of meetings where we presented our assumptions and shared the blueprints of the final process. It was even before design patterns, very early in the process, after sharing our thinking process and our results, we asked them, where do you see problems now? It didn't meant that we implemented everything that came up right away, but it helped us to prioritize and help us segment R and D. For example, we knew some teams can be early adopters because they have some special use cases that is not yet covered. Besides that, they had become ambassador for the majority. We saw that in slack threads where someone was suddenly saying that the infragroup is working to solving that specific problem and please engage with them. And when it came to the actual adoption, they were able to explain it and build trust. With all the r D so far we were friendly. We tried to do a natural adoptions, but sometimes sticks must be pulled. Sticks can be as simple as a support deadline. In four or six weeks we will stop support the old version, but support deadline need to be realistic. If the organization is working in two weeks prints you probably need to put four or six or even 80 weeks in advance to give teams the times to add it to the next prints. The other stick that can be used is getting high level manager support so they will instruct teams to create time for the migration. Use high level manager support. You don't want to force every change across the organization. You want to be able to create natural adoption and have lightweight sticks like the support deadline. Sticks are not excuse for not doing anything else. Trust, good product, self serve migration all must be used before sticks and in fact if you do them it will be even easier to use those sticks and get high level manager support and people will be less frustrated when you introduce any forcing mechanism. So to summarize, we talked about the technology adoptions cycle and how to segment our R D organization the different approaches for each segment. We talked about migration difficulty and how it affects the majority. We talked about trust and how to establish it. And finally we talked about sticks and forcing change. For anything else please reach out on Twitter. Thank you.
...

Omer Kahani

Staff Software Engineer, Platform Infra Group @ Snyk

Omer Kahani's LinkedIn account Omer Kahani's twitter account



Awesome tech events for

Priority access to all content

Video hallway track

Community chat

Exclusive promotions and giveaways