This content originally appeared on Level Up Coding - Medium and was authored by Syed Mohsin
Why it matters, and 6 ways to build trust
It’s tough being a full-stack engineer.
Acquiring the breadth of technical skills needed to build end-to-end products is a daunting task for many full-stack developers. Most articles online focus on this aspect: “learn technology A, framework B, concept C.”
Unfortunately, those full-stack skills are rendered useless if you can’t do this one thing:
Be able to build trust with other engineering teams.
Why Build Trust With Other Teams?
When a company grows to a certain size, usually 30 or more developers, an engineering department will splinter into multiple teams to make it easier for each team to support critical business functions.
This is basically Conway’s Law:
Conway’s Law is the theory that organizations will design systems that copy their communication structure.
Simply put, if an engineering organization has 5 teams, they might converge on an architecture of 5 different codebases. One for each team.
As teams become more focused in this way, they build deep knowledge about the system they own and become very opinionated on how to contribute to it.
However, deep ownership of a system can make teams territorial. They become more resistant to contributions from outsiders.
Unfortunately, full-stack engineers often are those outsiders. In order to build end-to-end product experiences, full-stack developers have to work across several codebases, which usually means adapting to the culture, processes, and expectations of different teams.
For example, some common concerns I have encountered over the years as a full-stack engineer when working with other teams:
1. “Is this engineer going to follow our best practices?”
2. “Do I have to hand-hold them through the process?”
3. “Will I have to deal with incidents or bugs caused by this engineer?”
Depending on how territorial a team is, a full-stack engineer should invest more time up-front to earn the trust needed to collaborate effectively.
While in the short-term it could be easier to shoe-horn your code changes into another team’s codebase, in the long-term you will damage your relationship with that team and slow down your development velocity.
6 Ways to Make Teams Love Working With You
Over many years as a full-stack developer, I have learned a few tricks (sometimes the hard way) to work effectively with other teams.
#1 — Volunteer to Take Tickets From Another Team’s Backlog
The quickest way to win the hearts of other teams is to reduce their workload.
You will learn by doing AND end up helping out other teams in the process.
Teams always have tasks that they have been avoiding for months in their backlog. Addressing them builds tremendous goodwill that you can later cash out when you need help!
#2 — Contribute to Code Reviews For Other Teams
You don’t have to know a codebase inside-and-out to provide meaningful feedback in a code review.
Simply reading a pull request and asking questions can challenge other teams to articulate their assumptions and decisions.
When fresh eyes look at a problem, a curious question can illuminate a better path forward.
In the process, reading pull requests and code review comments in other codebases helps me rapidly understand the system and the best practices that the code maintainers will expect me to follow.
#3 — Actively Communicate Your Intentions To Other Teams
When making large contributions, other teams should know you are coming well before you submit a pull request.
A few ways to communicate your intentions:
- Share any useful documentation beforehand, like a tech spec and/or product requirements doc (PRD).
- Meet with someone on the team to walk through the architectural decisions you will make.
- Make sure your changes do not conflict with the long-term goals of the team.
#4 — Follow the Boy-Scout Rule
Leave a system better than you found it.
When I build a feature, I am constantly looking for opportunities to clean up or improve the surrounding system I am touching.
I do this in a few ways:
- Refactoring a large React component before adding in my changes.
- Fixing a bug I encounter even if it is unrelated to my code.
- Adhering to the coding standards of the team to ensure consistency with the rest of the codebase.
#5 — Go On-Call For Another Team
Frankly, I haven’t tried this yet. My manager recommended this approach, so I will dedicate an article to my experience doing this next week!
My manager, based on his experience, stated the following benefits:
- You become deeply familiar with frequently buggy parts of a codebase
- You might see opportunities to reduce volume of tickets
- Other teams will love the extra support
#6— Make Sure Bugs You Cause Route Back To You
Engineering teams will constantly be evaluating if you are acting like a co-owner of their system.
So if your feature creates a bug and you are not there to handle it, you will quickly lose any trust you built with that team.
You can make sure any bugs route back to you in the following ways:
- Add alerting around your feature that you are always monitoring
- Add feature flags so it is easy to kill your feature in case it disrupts the system
- Document how your feature works somewhere people can find it and connect it back to you. Be available to resolve the issue when they do.
Final Thoughts
Your ability to ship frontend and backend code does not matter much if teams do not trust you to contribute to their systems.
In order to move quickly and effectively, it is crucial as a full-stack engineer to put in the work to build trust and respect with different teams.
To recap, here are the 6 ways you can earn trust:
- Volunteer to take tickets from another team’s backlog
- Help with code reviews
- Actively communicate with other teams
- Follow the boy-scout rule
- Go on-call for another team
- Make sure you catch and fix your own bugs
Know of other ways to co-exist harmoniously with other teams? Let me know your thoughts below!
Level Up Coding
Thanks for being a part of our community! Before you go:
- 👏 Clap for the story and follow the author 👉
- 📰 View more content in the Level Up Coding publication
- 🔔 Follow us: Twitter | LinkedIn | Newsletter
🚀👉 Join the Level Up talent collective and find an amazing job
Full-Stack Engineering: How to Build Trust Across Teams was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.
This content originally appeared on Level Up Coding - Medium and was authored by Syed Mohsin
Syed Mohsin | Sciencx (2023-01-23T02:19:15+00:00) Full-Stack Engineering: How to Build Trust Across Teams. Retrieved from https://www.scien.cx/2023/01/23/full-stack-engineering-how-to-build-trust-across-teams/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.