Engineering Leadership in Uncertain Times

February 20, 2023

The past year brought layoffs, budget cuts, and strategic pivots to tech. Leading engineering teams through this uncertainty requires different skills than leading through growth. The playbook that worked when hiring was unlimited doesn’t apply when every decision is scrutinized.

Here’s how to lead engineering teams through uncertain times.

The Changed Landscape

Growth Era vs. Now

leadership_shift:
  growth_era:
    resources: Abundant
    hiring: Always yes
    projects: Start many, see what works
    failure: Acceptable cost of learning
    timeline: Long-term bets welcome

  uncertain_times:
    resources: Constrained
    hiring: Justify every role
    projects: Focus on essentials
    failure: Scrutinized closely
    timeline: Show results quickly

What Teams Need

team_needs:
  clarity:
    - What are we actually working on?
    - What's the priority order?
    - What are we NOT doing?

  stability:
    - Will there be more layoffs?
    - Is my job safe?
    - What's the company direction?

  agency:
    - How can I contribute?
    - Do my opinions matter?
    - Can I grow here?

  purpose:
    - Why does this work matter?
    - What impact are we having?
    - Where are we going?

Communication in Uncertainty

Honest Communication

communication_principles:
  acknowledge_uncertainty:
    bad: "Everything is fine, trust the plan"
    good: "Here's what we know, what we don't know, and when we'll know more"

  share_context:
    bad: "Just focus on your work"
    good: "Here's why leadership made this decision and what it means for us"

  admit_limits:
    bad: "I have all the answers"
    good: "I don't know, but here's how I'm trying to find out"

Regular Cadence

communication_cadence:
  daily:
    - Available for questions
    - Quick updates on urgent issues

  weekly:
    - Team meeting with updates
    - One-on-ones with individuals
    - Written summary of priorities

  monthly:
    - Broader context sharing
    - Progress against goals
    - Adjustments to plans

  as_needed:
    - Major announcements immediately
    - Don't let rumors fill the vacuum

Prioritization Under Constraints

Ruthless Focus

prioritization_framework:
  must_do:
    criteria:
      - Revenue generating
      - Customer retention critical
      - Regulatory/compliance
      - Security incidents
    treatment: Protected, fully resourced

  should_do:
    criteria:
      - Improves efficiency
      - Reduces tech debt risk
      - Supports must-do work
    treatment: Do if capacity allows

  could_do:
    criteria:
      - Nice to have
      - Future investment
      - Experimental
    treatment: Pause or stop

  stop_doing:
    criteria:
      - No clear ROI
      - Low usage
      - Duplicate effort
    treatment: Explicit stop, communicate

Making Cuts

cutting_approach:
  projects:
    - List all active work
    - Map to business value
    - Identify dependencies
    - Cut bottom 20-30%
    - Communicate clearly why

  scope:
    - Review feature lists
    - Challenge "must have" assumptions
    - Find MVP for each feature
    - Defer nice-to-haves

  process:
    - Question every meeting
    - Simplify approval workflows
    - Reduce documentation overhead
    - Focus on outcomes over process

Protecting Your Team

Shielding from Chaos

shielding_practices:
  filter_noise:
    - Don't forward every panicked email
    - Synthesize information before sharing
    - Provide context, not just data

  absorb_pressure:
    - Take heat for team decisions
    - Don't pass blame downward
    - Manage up on unrealistic demands

  maintain_normalcy:
    - Preserve useful rituals
    - Celebrate wins (even small ones)
    - Protect focus time

Advocating for Resources

advocacy_approach:
  make_the_case:
    - Quantify impact of work
    - Connect to business outcomes
    - Show cost of not doing
    - Propose trade-offs

  negotiate_timeline:
    - Push back on unrealistic deadlines
    - Provide options with trade-offs
    - Document constraints clearly

  protect_people:
    - Advocate for fair workloads
    - Fight for career development
    - Push for recognition

Building Resilience

Team Resilience

resilience_building:
  psychological_safety:
    - Mistakes are learning opportunities
    - Questions are welcome
    - Disagreement is healthy

  skill_distribution:
    - Cross-train team members
    - Rotate responsibilities
    - Document critical knowledge

  sustainable_pace:
    - Don't sprint indefinitely
    - Monitor workload
    - Enforce time off

Personal Resilience

leader_resilience:
  self_care:
    - You can't pour from empty cup
    - Model healthy boundaries
    - Take your own time off

  support_network:
    - Peer leaders for venting
    - Mentor for guidance
    - Team for energy

  perspective:
    - This is a phase, not forever
    - Focus on what you control
    - Celebrate small progress

Maintaining Standards

Quality Under Pressure

quality_protection:
  non_negotiables:
    - Security standards
    - Critical testing
    - Code review
    - On-call coverage

  adjustable:
    - Documentation depth
    - Feature completeness
    - Refactoring scope
    - Meeting frequency

  trade_off_conversations:
    - "We can deliver X faster if we accept Y"
    - Make trade-offs explicit
    - Get buy-in on reduced scope

Technical Debt

tech_debt_approach:
  triage:
    - What's actually causing pain?
    - What's theoretical concern?
    - What blocks critical work?

  strategic_investment:
    - Fix debt that slows high-priority work
    - Defer debt in stable areas
    - Contain debt to prevent spread

  visibility:
    - Track debt explicitly
    - Show cost of not addressing
    - Advocate for maintenance time

Restructuring

restructuring_guidance:
  when_it_happens:
    - Acknowledge the difficulty
    - Be honest about what you know
    - Support those leaving and staying

  rebuilding:
    - Reassess priorities with new reality
    - Redistribute responsibilities thoughtfully
    - Rebuild team identity

  avoiding_pitfalls:
    - Don't pretend nothing happened
    - Don't overwork remaining team
    - Don't make promises you can't keep

Key Takeaways

Leading through uncertainty is when leadership matters most.