Skip to main content

On This Page

Why Software Engineering Managers Must Embrace Non-Determinism

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Non-determinism is the job

Raleigh Schickel, a veteran engineering manager, argues that people are inherently non-deterministic and cannot be managed like code. Replacing a single employee costs months of recruiting, onboarding, and ramp-up time, destroying team velocity.

Why This Matters

Software organizations are people systems, not code systems. Engineers trained to expect deterministic inputs/outputs often fail when managing teams because they try to engineer human behavior with process. The failure scale is large: 70% of engineers become managers without training, and replacing a single lost employee costs months of recruiting, onboarding, and ramp-up. The industry’s refusal to acknowledge this gap turns high-performing engineers into damaging managers, driving talent away and costing teams dearly.

Key Insights

  • People leave managers, not jobs – a widely cited Gallup finding, reinforced by Schickel’s observation that poor management costs teams months of productivity per replacement.
  • The Alliance model (Hoffman, Casnocha, Yeh) – treat employer-employee relationships as mutual alliances rather than transactional obligations; Schickel uses this to align team goals with personal growth.
  • 360-degree reviews as a manager evaluation tool – Schickel advocates for direct reports’ feedback to surface management failures that top-down reviews miss, though few companies adopt it.
  • Engineer-to-manager transition failure – most engineers are promoted without training, leading to process-overload (belittling) or technical-escape (ignoring people), as Schickel describes from personal experience.

Practical Applications

  • Use case: Managers who adopt the ‘alliance’ mindset (e.g., investing in a direct report’s next job) see increased loyalty and perseverance. Pitfall: Treating management as a side chore between ‘real work’ leads to quiet quitting and resume updates.
  • Use case: Starting performance conversations with ‘How are you?’ before naming observed issues. Pitfall: Jumping directly to problem-solving without listening first, which misses the real root cause (often anxiety or life stress).
  • Use case: Asking ‘What do you need?’ after listening fully. Pitfall: Assuming you know what the employee needs, then imposing process fixes that ignore the human element.

References:

Continue reading

Next article

Master TypeScript's `const` Type Parameters: Eliminate `as const` Boilerplate for Good

Related Content