I've advised on how to be a better lead, architect ("The other side of quality"), and PM. A problem all these positions share is not seeing the forest for the trees, an expression that refers to getting so caught up in immediate concerns (the trees) that you miss the larger issue (the forest). Leads caught up in the trees struggle to delegate and plan. Architects locked on details don't design for growth or scale. PMs stuck in the day-to-day minutiae misalign with partners and lose track of what's important long term, creating disconnected feature lists instead of compelling end-to-end experiences.
However, if all you do is hover over the trees and admire the forest, you become disconnected from the health of the trees, what makes them grow, and how they interact. I've seen leads, architects, and PMs avoid getting messy in the day-to-day work, focusing only on high-level design and planning, only to find their plans and designs are incongruent, impractical, and ignored. Their teammates see them as extraneous and disconnected from reality.
What's a poor lead, architect, or PM to do? You can't get too caught up in the details, yet you can't be disconnected from them either. How do you balance these conflicting pressures and stay relevant and effective? Glad you asked.
Tyranny of the OR
As a lead, architect, or PM, you need to get your hands dirty in the weeds of your feature team's software development for your plans and designs to be relevant and respected AND you need stay above the fray to focus on long-term planning and design. The secret to doing both effectively is in the way you engage your team.
- Wallow, don’t witness. Be an interested and engaged party at daily standup, design reviews, triage, and team planning meetings (also coding and code reviews for leads and architects). You don’t need to drive these engagements (though doing so can help hold your attention), and you shouldn't dominate the conversation, but you do need to be curious and deeply informed.
- Empathize, don’t offer lip service. By engaging in your feature team's work, you can better empathize with their struggles (and question their exaggerated claims). You'll also be better prepared to make tradeoffs between features and technical debt, deadlines and sustainability, perfection and practicality, and resources and budget.
- Unblock, don’t babysit. When feature-team members get stuck or overwhelmed, it's tempting to take over and either do the work yourself or direct them step-by-step. That's a huge mistake—you're getting too caught up in details and not allowing your teammates to learn and grow. Instead, do just enough to unblock them, paving the path forward for their success. This is so important for your team's health and your own proper focus.
- Redesign, don’t duct tape. Sometimes what's blocking the team is a major issue— quick meetings, emails, and clarifications aren't going to resolve it. You might be tempted to cover up the problem with some quick fix or kluge, but don't. Even if you must employ a temporary workaround, don't let the problem fester—that leads to firefighting, not high-level focus. Instead, step back and redesign your plans, architecture, and customer experience to resolve the issue at its core. Escalate as needed to ensure the right things happen. You're a leader—act like one.
- Restructure, don’t referee. When conflicts arise between people or codebases, it's tempting to use your authority to act as a judge and resolve disputes. Wrong. You're not the team parent, and your co-workers aren't children. Conflicts in a professional setting, where plans should be aligned, often arise from mismatches across teams or across time. Understand the root of the issue, and then restructure the code, team assignments, or expectations so that current and future conflicts are avoidable. Once that’s done, your teammates can resolve any remaining concerns.
Notice how each of these engagement strategies allows you to deeply understand each tree while still focusing on the forest. Being able to do this is a key to success for a lead, architect, or PM.
Code and design reviews provide PMs, leads, and architects with great opportunities to influence their teams on high-level direction and philosophical approach. Use these situations to not only correct specific errors, but also to describe the how and why behind your suggestions. Read more about code and design reviews in "Review this" (chapter 5).
Eyes on the prize
Now that you're seeing the forest and the trees, how should you keep them healthy and growing? As I mention in Out of focus and many other columns, you should understand your customers and your business—they are the sunshine (and sometimes fertilizer) that nourishes your team. All the engagement strategies, particularly wallowing and empathizing, apply equally well to customer and partner engagement. Achieving your customers’ goals and your business goals feeds your planning, architecture, and design, as well as your team. It’s how you deliver customer value in a high-quality, on-time, sustainable, and delightful fashion.
You can do it
As a lead, architect, or PM, don't get too sucked into the day-to-day, but don't put yourself on a pedestal either. Instead, deeply engage your feature team with curiosity and empathy, so that you understand teammates' issues and they trust you to provide realistic solutions, plans, and designs. Unblock your teammates when they get stuck, but trust them to complete the work once they're unblocked. Redesign code, plans, relationships, and experiences as necessary to keep problems from festering and avoid future firefighting. And finally, allow your teammates to resolve their own people and codebase conflicts, but if there's a systemic issue, restructure the situation so that future conflicts are avoided.
In any role, there's day-to-day work that can distract you from the bigger picture. However, if you engage effectively; understand your customers, partners, and business; and keep your product, service, and teammates aligned for shared success, you will be a leader that others admire, respect, and emulate.
If you manage leads, architects, or PMs, you also must balance your attention between details and strategy. Model the proper behavior you want your team to use. For better or worse, your team members will do as you do, not as you say.