I recall a time when my role as an engineer was defined so narrowly that my job description consisted solely of delivering on requirements from the product manager within the technical framework that the architect provided. I wasn’t expected to know what happened before or after anything that lay outside my purview. QA was handled by another team and there was a wall between us. Production operations seemed worlds away.
Ask any engineer and they’ll tell you that for the most part we still work in silos. After all, we are hired for our specific expertise and we focus on our part of the project. But not enough of us have visibility into the end-to-end context and process — from understanding the customer and the problem they are trying to solve, all the way to how the applications are run and maintained in production. Yet, having this end-to-end (e2e) understanding is critical to creating market-leading applications that actually delight customers.
Engineers with e2e knowledge are rare and highly sought after.
I was trying to fill an engineering position on my team and talked with many great candidates. They provided examples of how to architect for high availability and how to build quality in. But when I asked them broader questions around topics like customer success metrics, availability targets for apps and what they achieved in the last three months, they stumbled. Why did this matter to me? Because engineers who have an e2e mindset and understanding get the full picture of how their piece of the puzzle impacts the whole system. Engineers that have e2e understanding are highly valuable because they bring with them the understanding that helps avoid incorrect assumptions that can waste time and increase costs.
Now, it’s true that the siloes between engineering and ops have started to dissolve as devops models become more commonplace, but in many cases especially in larger companies, they still exist. Additionally, engineers are typically insulated from any direct engagement with customers, due to a misguided belief that feedback needs to be carefully distilled before it is given to them.
So, how can you ensure that your engineers have solid e2e understanding? A lot of it can be accomplished by simply removing the siloes and making sure they are getting direct, unfiltered input:
1. Have your engineers be part of the initial concept and ideation process where they are directly engaging with customers and end users. This understanding will be invaluable as they design the system.
The best product ideas don’t come from those with the highest IQ, they come from the people who understand the user, their objectives and issues the best. This requires everyone to be intimately familiar with the users of the application and their context. Make sure that each project has beta/lighthouse customers who are actively engaged from the ideation phase.
2. Embrace dev ops. Engineers who own production uptime will design and implement more resilient solutions.
Devops is not a team. Devops is a mindset, it is a new way to work where the engineering team and the operations team work as one to build the most resilient highly available systems quickly. Engineers who own uptime for their application and are on call when there are issues will invariably design and build highly resilient systems from day one.
3. Include e2e metrics such as customer adoption and uptime targets in your team and individual goals.
Make sure that engineering teams have goals not just tied to the release of their product but tied to the overall success of the product. Is it doing well in production with no quality or uptime issues? Was the product well received by customers, are they using it and giving positive feedback? Make sure that the team views these as their ultimate success metrics.
4. Make sure the entire team understands your deployment architecture and production set-up.
It is no longer good enough if there is only 1 or 2 people on your team who understand how everything works e2e in production. You need to ensure that your entire team is aware. With knowledge, better decisions get made. When engineers know your production environment better, they will make better design and coding decisions to ensure better quality, scalability and resiliency.
Developing an e2e mindset in engineers is crucial to the success of your production process. It’s also valuable to your customer. Engineers who design with a clear view of what the customer needs and wants will be able to delight them with the final product, and keep their companies on the cutting edge.
A version of this article originally appeared on Medium.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.