Making large, important technical decisions is a critical aspect of a senior individual contributor's role. With the wide impact these decisions can have, it is essential to make the correct decision. Even more vital is ensuring the decision is made and communicated in a way that the team members impacted by it trust and buy in to the decision. Otherwise, even the best decisions will never realize their full potential when executed.
This case study examines how Comcast has employed the Analytic Hierarchy Process (AHP), a decision-making framework developed in the 1970s, and adapted it for making technical and non-technical decisions both large and small. We will cover the key aspects that have made it successful for engineering teams, what we learned from our early mistakes, signs that the decision-making process you use is working effectively, and how you can easily leverage the AHP for your decisions.
What's the focus of your work these days?
I am an Engineering Fellow at Comcast where I help lead the development of the Xfinity app. My expertise is in web development, but as we have transformed the app over time from a hybrid native and web app to a more fully native experience, I have been working with iOS and Android as well. As the most senior engineer in my org, I am always looking for opportunities to improve how our teams build software. With that, I have been recently focusing on how we collaborate on architecture decisions and communicate them among our distributed teams.
What's the motivation for your talk at QCon New York 2023?
A few years ago, there was a large technical decision we had to make. There were a few different options to choose from, and each had its own set of strong supporters within our team. My VP at the time told me essentially “I trust you and the team to make the right decision about which technology to use, but how do you know that the process you’ll use to arrive at that decision is effective?” This led me to do some research on how decisions are made outside of the tech industry. In my research I came across a decision-making process called the Analytic Hierarchy Process that was created in the late 1970s, it has been debated academically for years, and is still in use today. We tried it out and found that not only did it help us reach a decision, but going through the process also helped everyone buy into the decision. We have since used the process many times at Comcast, tweaking it along the way, and the feedback has always been positive.
How would you describe your main persona and target audience for this session?
Any software engineer at any level will be able to benefit from my talk, as I discuss how to approach decision-making, why the Analytic Hierarchy Process works, and how exactly to use it effectively. That being said, the ones that will get the most benefit will be those at a Staff+ level where they are looked at as the leaders in their organization and need to navigate how to make large decisions and more importantly, get buy-in for those decisions. It is also worth noting that although we have used this process numerous times for very large decisions, we have also been able to quickly leverage it for small ones as well, so there is something in the talk for everyone.
Is there anything specific that you'd like people to walk away with after watching your session?
Be willing to give the Analytic Hierarchy Process a try the next time you have a big decision to make, especially when you want to include others in the decision-making process, or if the impact is large and you want to clearly articulate why a decision was made.
Engineering Fellow @Comcast and @Google Developer Expert
John Riviello created his first hypertext document on the Internet in 1996 and has been obsessed with building for the web ever since. He spends his days as an engineering Fellow at Comcast, where he leads the development of the Xfinity app. He is also a LinkedIn Learning course author and a Google Developer Expert in Web Technologies. In his free time, he prefers surfing waves over surfing the Internet.