May 4, 202514 min

Building Bridges, Not Just Code

Lessons on Effective Engineering Teams from Addy Osmani


Building Bridges, Not Just Code

Lessons on Effective Engineering Teams from Addy Osmani

Building great products requires more than technical brilliance in the dynamic world of software engineering. It demands effective teamwork, clear communication, and a culture where individuals and teams can thrive. Addy Osmani, drawing from over a decade of experience at Google, offers a comprehensive guide in his book, “Leading Effective Engineering Teams,” revealing invaluable insights for engineers and leaders alike.

Whether you’re an individual contributor aiming for growth or a manager striving to elevate your team, this book distils crucial lessons on effectiveness, efficiency, and achieving transformative results, often referencing established frameworks and Google’s research. Let’s dive into some key takeaways.

Photo by Vlad Hilitanu on Unsplash

Effectiveness vs. Efficiency: Doing the Right Things Right

A core concept Osmani emphasises is the distinction between efficiency and effectiveness.

  • Efficiency: Doing things right — optimising processes, minimising waste, and maximising output with given resources.
  • Effectiveness: Doing the right things — delivering the right outcomes that provide value to the organisation and its customers.

While efficiency is essential, true success hinges on effectiveness. A team can be highly efficient at building features, but the effort is misplaced if those features don’t solve user problems or align with business goals. The ideal is to be effectively efficient — doing the right things right.

Lessons from Google’s Research

Osmani leverages insights from Google’s extensive research into team dynamics:

Project Aristotle:

The Five Dynamics of Effective Teams.

Google found that how a team works together matters more than who is on the team. They identified five key dynamics, in order of importance:

  • Psychological Safety is the foundation. Team members feel safe taking risks, asking questions, admitting mistakes, and being vulnerable without fear of negative consequences. This fosters innovation and open communication. Building on Amy Edmondson’s work, Google emphasises this for risk-taking and learning.
  • Dependability: Team members can rely on each other to complete high-quality work on time.
  • Structure and Clarity: Everyone is clear on roles, plans, and goals. Frameworks like Objectives and Key Results (OKR) or the RACI matrix (Responsible, Accountable, Consulted, Informed) can establish this clarity.
  • Meaning: The work holds personal significance for team members. It connects to their passions or values.
  • Impact: Team members believe their work matters and creates positive change.

Project Oxygen:

What Makes a Great Manager?

This research identified the key behaviours of high-performing managers at Google, proving that good managers matter. Essential behaviours include:

  • Being a good coach (potentially using frameworks like the GROW model — Goal, Reality, Options, Will — for career discussions ).
  • Empowering the team without micromanaging.
  • Creating an inclusive team environment, showing concern for success and well-being.
  • Being productive and results-oriented.
  • Communicating well (listening and sharing information).
  • Supporting career development.
  • Having a clear vision and strategy.
  • Possessing key technical skills to advise the team.
  • Collaborating across the company.
  • Being a decisive decision-maker.

The Effective Engineer’s Mindset

Beyond team dynamics, individual mindset is crucial. Osmani outlines key traits of effective engineers, often driven by intrinsic motivators like those described in Daniel H. Pink’s “Drive” (Autonomy, Mastery, Purpose):

  • Cares about the user: Understands that user needs are paramount.
  • Good problem solver: Thinks critically and creatively, finding simple, elegant solutions.
  • Keeps it simple but cares about quality: Balances simplicity with performance and maintainability.
  • Builds trust: Is dependable, consistent, and collaborates well.
  • Understands team strategy: Knows how their work contributes to the larger goals.
  • Prioritises appropriately: Balances technical debt, speed, quality, and business goals.
  • Communicates effectively: Articulates technical concepts clearly to diverse audiences (using frameworks like the 7 C’s of Communication can help ).
  • Embraces challenges & learning: Is adaptable and open to growth.

Building and Sustaining Effective Teams

Creating an effective team is a deliberate process, structured by Osmani using his 3 E’s Model (Enable, Empower, Expand). Key stages involve:

  1. Assemble the Right People: Consider team size (smaller is often better ), relevant skills, shared engineering mindsets, and diversity of backgrounds and experiences.
  2. Enable Team Spirit: Foster a sense of shared responsibility and mutual accountability. Define roles clearly (perhaps using the RACI matrix ), establish a shared purpose (the “why”), and actively build trust. Team development models like Tuckman’s Stages (Forming, Storming, Norming, Performing, Adjourning) can help understand this evolution.
  3. Lead Effectively: Provide vision, guidance, and support. Champion the team’s work and ensure their accomplishments are visible (strategic visibility).
  4. Sustain Effectiveness (Growth Culture): Foster continuous learning, agility, and improvement. Frameworks like the 4 A’s of Adaptive Leadership (Anticipation, Articulation, Adaptation, Accountability) can guide adaptability.

Empowering and Scaling Effectiveness

Osmani emphasises empowering teams and scaling leadership:

  • Empowerment: This involves providing resources, autonomy, and growth opportunities. Frameworks like Lencioni’s Five Dysfunctions of a Team help diagnose issues hindering empowerment. Peter Drucker’s “The Effective Executive” provides habits for individual effectiveness. Concepts like Andy Grove’s “High Output Management” (focusing on high-leverage activities ) and Liz Wiseman’s “Multipliers” (amplifying team intelligence ) offer strategies.
  • Scaling Leadership: As responsibility grows, leaders need to adapt. The “Three Always of Leadership” (Always be Deciding, Always be Leaving, Always be Scaling) provides a mantra for managing increased scope by making intentional trade-offs, building self-sufficient teams, and protecting one’s time and energy.

Avoiding the Pitfalls: Effectiveness Antipatterns

Osmani also highlights “antipatterns” — common but ineffective responses to recurring problems. Recognising these is key to avoiding them. Examples include:

1. Individual Antipatterns

These arise from specific traits or behaviours of individual team members, which might seem beneficial initially but can negatively impact the team dynamic. Addressing them usually requires the individual involved to take corrective action.

The Specialist:

  • Description: An engineer strongly identified with a specific module/feature, mastering its intricacies, often becoming the sole expert. This usually happens circumstantially as they are repeatedly assigned to the same area.
  • Symptoms: The specialist is the go-to person for that specific module; others are wary of touching or reviewing that code; the specialist is highly confident and efficient only within that domain.
  • Pitfalls: Creates a single point of failure (low “bus factor”); leads to knowledge silos; can cause rigidity and resistance to feedback; limits the specialist’s growth.
  • Mitigation: Encourage expertise development in multiple areas; have the specialist delegate changes and act as a reviewer; encourage documentation and knowledge sharing; nudge the specialist to explore other areas.

The Generalist:

  • Description: An engineer who spreads themselves too thin across various domains, eager to be versatile but lacking deep expertise in any specific area.
  • Symptoms: Involvement is broad but shallow; often hands off complex tasks to specialists; may give an illusion of competence without true mastery.
  • Pitfalls: Dilutes expertise; lacks deep understanding of complex problems; can hinder team efficiency when specialised knowledge is required.
  • Mitigation: Guide the generalist to develop mastery in a specific area while retaining broad knowledge; encourage focus on areas aligned with strengths; foster collaboration between generalists and specialists; promote continuous learning within particular domains. (Ideally, engineers develop T-shaped skills.)

The Hoarder:

  • Description: An engineer who works quietly on tasks throughout a sprint, withholding updates and code until submitting one large pull request (PR) near the end. This might stem from wanting to present a complete contribution or fear of judgment.
  • Symptoms: Updates are withheld until an extensive PR is submitted; others are unaware of their ongoing work; code reviews become time-consuming and late; they may resist suggestions for changes.
  • Pitfalls: It disrupts collaborative rhythm and continuous feedback loops, creates bottlenecks during code review, hampers knowledge sharing, and stifles team agility and cohesion. It can also signal a lack of trust or psychological Safety.
  • Mitigation: Foster a culture of transparency and continuous integration; encourage frequent commits and smaller PRs; promote daily stand-ups; advocate for early and frequent code reviews; discuss the behaviour directly with the individual.

The Relentless Guide:

  • Description: An engineer overly eager to help, consistently providing solutions and guidance, sometimes hindering others’ learning and problem-solving development. Code reviews might become extensive redesign sessions led by the guide.
  • Symptoms: Eagerly assists without being prompted; team members habitually seek their guidance even for minor issues; newcomers quickly become reliant; effective at solving problems, often preemptively.
  • Pitfalls: It hampers individual and team skill development, fosters dependency, consumes the guide’s time, impacting their own productivity, and can potentially split the team if some become overly reliant.
  • Mitigation: Encourage independent problem-solving attempts first; foster peer learning; organise knowledge-sharing sessions; urge the guide to allocate time for their tasks; assign challenging tasks to the guide.

The Trivial Tweaker

  • Description: An engineer who consistently engages in small, insignificant code changes (e.g., minor refactoring or reorganising) that provide little substantial value, often under the guise of improvement.
  • Symptoms: Consistently makes minor alterations with little impact; refactors stable code unnecessarily; team discussions get sidetracked on trivial changes; time is wasted reviewing superficial adjustments.
  • Pitfalls: It diverts energy from meaningful tasks, indicates a lack of clarity or motivation regarding project goals, unnecessary refactoring can introduce bugs if done without full context, and inefficient use of review time.
  • Mitigation: Assign challenging tasks requiring creation, not tweaking; encourage critical evaluation of the impact of changes before refactoring; foster a culture valuing substantial contributions; establish clear criteria for code alterations aligned with objectives.

2. Practice-Related Antipatterns

These relate to recurring detrimental practices within the engineering process, often stemming from shortcomings in workflow or methodology. Mitigation usually requires leaders to initiate a team-wide course correction.

Last-Minute Heroics:

  • Description: Addressing issues hastily and heroically just before a release often becomes a recurring pattern.
  • Pitfalls: It leaves little time for thorough feedback/testing; quick fixes can accumulate technical debt; overall quality decreases; and it fosters dependency on “heroes” instead of robust processes.
  • Mitigation: Effective planning with regular checkpoints and continuous testing; transparent communication about challenges; maintain a prioritised backlog; promote a sustainable pace to avoid burnout.

PR Process Irregularities:

  • Description: Issues within the pull request/code review workflow. Includes:
  • Rubber-stamping: Approving PRs without adequate review.
  • Self-merging: Engineers approving their PRs.
  • Long-running PRs: Excessive back-and-forth delays.
  • Last-minute PRs: Multiple PRs submitted just before deadlines, signalling planning/estimation issues.
  • Pitfalls: Overlooked issues, bugs, suboptimal quality; lack of diverse perspectives; communication/decision-making inefficiencies; rushed reviews for last-minute PRs.
  • Mitigation: Mandate thorough reviews, enforce diverse approvals (no self-merging), set expectations for timely reviews/responses, and establish intermediate checkpoints (e.g., stand-ups) to track progress and bottlenecks. (Google’s code review practices emphasise lightweight reviews for slight changes but expect thoroughness.)

Protracted Refactoring:

  • Description: A code refactor extending beyond its expected timeline, expanding in scope due to perfectionism or insufficient domain knowledge.
  • Pitfalls: Scope creep; project delays; drains resources from other tasks; dilutes focus.
  • Mitigation: Identify the cause (perfectionism vs. knowledge gap); define clear scope and boundaries; support engineers needing domain knowledge; set realistic time constraints; implement regular peer reviews to decide closure; maintain open communication.

Retrospective Negligence:

  • Description: Irregularities in conducting retrospectives diminish their value. Includes missed/delayed/shortened sessions, lack of structure, avoiding conflicting viewpoints, lack of follow-up on action items, or only surface-level analysis.
  • Pitfalls: Missed opportunities for reflection and process improvement; lack of accountability; failure to address root causes of issues.
  • Mitigation: Prioritise regular retrospectives, allocate adequate time, use structured frameworks (e.g., Start, Stop, Continue), encourage diverse participation in a psychologically safe space, ensure action items are documented, assigned, and followed up, and focus on identifying root causes (e.g., using Five Whys).

3. Structural Antipatterns

These relate to suboptimal team structure, organisation, or collaboration patterns. Rectifying them involves restructuring or improving communication pathways.

Isolated Clusters:

  • Description: Subgroups form within the larger team, leading to insular collaboration where members primarily interact within their cluster for reviews, help, etc..
  • Pitfalls: Knowledge fragmentation across the team; lack of diverse perspectives leading to tunnel vision or rubber-stamping within clusters; stagnant individual growth due to limited exposure; weakened overall team cohesion.
  • Mitigation: Organise interdisciplinary sessions, introduce role/cluster rotation, create cross-domain initiatives requiring collaboration, and promote open communication channels for the entire team.

Knowledge Bottlenecks (Low Bus Factor):

  • Description: Vital knowledge becomes concentrated within a few individuals (like Specialists or Relentless Guides), making the project vulnerable if they become unavailable. The “bus factor” is low.
  • Pitfalls: Creates single points of failure; fosters dependency on experts, stunting others’ growth; leads to knowledge silos; can cause communication gaps.
  • Mitigation: Encourage cross-training, establish a culture of knowledge sharing (documentation, tech talks), use pair programming, rotate responsibilities, and implement mentorship programs.

4. Leadership Antipatterns

These stem directly from a leader’s counterproductive behaviours, decisions, or actions. Addressing them often requires intervention or guidance from senior leadership.

Micromanagement:

  • Description: Excessive supervision and control, stifling autonomy. Manifests as perfectionist bottlenecks (constant changes slowing progress), prescriptive direction (telling how, not just what), or being guardians of information (withholding context).
  • Pitfalls: Stifles innovation and experimentation; erodes morale and motivation; slows progress due to bottlenecks; limits team members’ growth; leads to uninformed decisions if context is withheld.
  • Mitigation: Grant appropriate autonomy with clear guardrails; empower team members; foster trust and transparency; focus on outcomes, not methods; act as a “glass barrier” providing necessary context while shielding from noise.

Scope Mismanagement:

  • Description: Leaders struggle to control project scope, often due to constant change requests, leading to an ever-expanding workload and backlog.
  • Pitfalls: Incessant change requests disrupt focus, a lack of prioritisation inflates scope, an inflated workload leads to burnout, delayed deliverables erode trust, and quality may be sacrificed.
  • Mitigation: Implement a structured change evaluation process against a baseline; communicate the implications of changes clearly to stakeholders; introduce scope freeze periods; conduct regular scope reviews; empower senior engineers to evaluate requests; escalate if necessary.

Planning Overkill:

  • Description: Investing excessive time in upfront planning and analysis, attempting to account for every detail, leading to “analysis paralysis”.
  • Pitfalls: Overanalysis is based on speculation; endless design iterations seek perfection; extensive documentation delays; delayed development starts; inflexibility to adapt later.
  • Mitigation: Define a realistic scope; adopt iterative refinement (like Agile principles) instead of exhaustive upfront planning; embrace flexibility; use progressive elaboration (refine details as you go); focus risk management on high priorities.

Sceptical Leadership:

  • Description: Managers develop unwarranted insecurities about the team’s competence, leading to excessive questioning, irrational fears, or advocating for unnecessary changes based on hearsay. This differs from healthy scepticism.
  • Pitfalls: It diverts developer time to address concerns, undermines team confidence and morale, and slows progress.
  • Mitigation: Base concerns on evidence; communicate concerns effectively (perhaps via a senior dev); ensure transparency in technical decisions; manage time allocated to addressing concerns; actively build team confidence.

Passive Leadership (Absentee Leadership):

  • Description: Leaders exhibit complacency, timidity, and indecisiveness, are hesitant to drive improvements, offer guidance, or make critical decisions, often favouring the status quo. They may be conflict-avoidant.
  • Pitfalls: Team stagnation, lack of clear direction, missed opportunities for innovation, limited accountability, and reinforced resistance to change often go unnoticed for long periods.
  • Mitigation: Requires intervention from senior leadership to set clear expectations for the leader, establish open communication, empower the leader, foster an innovation culture, and enforce accountability.

Underappreciation:

  • Description: Leaders fail to readily notice, acknowledge, or celebrate commendable actions and positive behaviours from team members.
  • Pitfalls: They dampen morale and motivation, fail to reinforce desired practices, can foster complacency, and make employees feel invisible or undervalued.
  • Mitigation: Implement regular recognition practices (formal and informal), provide timely feedback celebrating positive contributions, and use public appreciation where appropriate.

By understanding these common antipatterns, their symptoms, and potential solutions, you can better identify and address them within your teams, fostering a more effective and productive engineering environment.

The Takeaway

Building and leading effective engineering teams is a continuous journey, not a destination. It requires understanding the nuances of effectiveness, fostering psychological Safety, cultivating the right mindset in individuals, leveraging proven frameworks (like OKRs, RACI, GROW, Lencioni’s model), and proactively avoiding common antipatterns. By applying the lessons shared by Addy Osmani, grounded in extensive research and real-world experience, leaders and engineers can unlock their teams’ full potential and achieve extraordinary results.

Originally published on Medium