How to Deliver Complex Cross-Functional Projects
23 January, 2021
Working on a larger initiative that spans multiple groups is never easy. We have to navigate a complex landscape of contradicting, or at least competing objectives. Getting such an initiative off the ground takes a lot of effort.
As the project goal may not always be in line with the department specific objective, you will need to convince people to include the project in their plan. You will get a lot of nods and a lot of verbal support but they will be reluctant to support you when you ask for a concrete commitment at the end. Also, it is not unusual to have some teams aligned with you but others not; once they realize the support from the other team is not there, they will reconsider their own commitment.
First, I would meet with the teams we had been able to align with. We would meet with their architects or senior technical people, explain the problem to them, and then together explore a solution. We would approach it somewhat hypothetically; given the infinite resources and infinite time, we would ask them how they would do it. Then, with limitations of reality as a guide, we would contrast their approach with the actual available time frame, and together propose a solution which is feasible.
When presenting your proposal for the first time in a large meeting, people might be taken by surprise and push back. I would rather talk to my engineering counterparts before the "big" meeting and ask my PM to do likewise. That would help me better understand whether they will be interested and, at the same time, what they might expect for the meeting. The final decision won’t be reached in the first meeting and may require additional lateral conversations to happen. After multiple rounds of these big meetings, we might reach an agreement.
There will be teams where we fail to achieve an agreement. We will attempt to understand their reasons, inquire about how we can support them, and work on a contribution model if they lack the resources, etc. If we need a disagree & commit, we will escalate with the leadership team.
For example, we can use the open source contribution model to allow some of our developers to learn a partner team’s codebase and contribute. We would need the partner team’s help with onboarding, reviews, and general guidance.
Typically, we would work with their architects to create a short-term solution that solves most of the use cases and aligns their roadmap for a long-term solution. We would make a joint commitment to make it better and improve the nuances after the project was shipped, a win-win for all the teams.
- Identify and address dependencies early. Be aware of the things within and outside of your control and focus on the external factors first.
- Don't assume plans are set in stone always, especially if you're working on a project that spans many quarters. Communicate changes and new findings regularly and with other teams. People tend to forget about their commitment, so you have to remind them mindfully. Perhaps, as things change on both sides, you will have to enforce the commitment more strongly.
- Help approvers make decisions by helping them recognize the trade-offs, and explain the factors that are involved in the decision -- such as time, scope and the resources. Our company uses a formal framework for making decisions called DACI (https://www.atlassian.com/team-playbook/plays/daci) that describes how decisions are made and documented.
- Maintain clear communication and let the leadership team know what's going on. If you have an executive sponsor, keep them informed of progress and challenges, ask for specific feedback, and seek resources.
Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader
Vadim Antonov, Engineering Manager at Meta, dictates how he brought a brand new team into the remote learning process by ramping up onboarding and creating a mentor system.
Engineering Manager at Facebook
Andrew Tsui, a Product Leader, works to build great teams that are independent, demonstrate mastery of their domain, and fully commit to their purpose.
Director of Product at Startup
James Engelbert, Head of Product at BT, shares how managing up is all about being an excellent manager to bring the best out of a team.
Head of Product at BT
Deepesh Makkar, Sr Director of Engineering at SunPower Corporation, shares his experience transitioning his organization from contractors to a 50/50 split of full-time employees and international vendors.
Sr Director of Engineering at SunPower Corporation
Prasad Gupte, Director of Product at Babbel, explains why product and marketing teams should invest in alignment, collaboration & trust to co-own outcomes.
Director of Product at Babbel
You're a great engineer.
Become a great engineering leader.
Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.