Coding Chats Episode 78 - John Crickett talks to Robert Harris, an experienced engineering leader. Robert shares hard-won lessons from years of leading software teams, drawing on a distinctive "human systems" lens to explain why so many engineering organisations struggle — not because of bad people, but because of broken systems, misaligned leadership, and invisible cultural forces.
The conversation weaves together philosophy, practical management advice, and candid personal anecdotes, making it equally relevant for first-time engineering managers and seasoned CTOs. The central thread throughout is that software is fundamentally a human endeavour, and leaders who treat it like a purely technical one will keep running into the same problems.
Chapters
0:00 — Every Problem is a Systems Problem
3:00 — Labelling vs. Diagnosing: The Human Systems Approach
6:15 — Poor Performance Is a System Failure, Not a People Failure
9:10 — AI, Flat Orgs, and the Pressure on Engineering Managers
11:30 — Diagnosing a Broken Team: A Real-World Turnaround
24:05 — People Are Not Interchangeable Components
26:00 — Culture: What Happens When Nobody's Watching
33:00 — The Power Gradient and Cross-Team Collaboration
39:00 — The C-Suite Distance Problem
42:00 — Building Culture in Remote and Distributed Teams
46:00 — Software Engineering Is a Humanity
Robert's Links:
https://www.linkedin.com/in/robert-n-harris/coded2lead.com
John's Links:
John's LinkedIn: https://www.linkedin.com/in/johncrickett/
John’s YouTube: https://www.youtube.com/@johncrickett
John's Twitter: https://x.com/johncrickett
John's Bluesky: https://bsky.app/profile/johncrickett.bsky.social
Check out John's software engineering related newsletters: Coding Challenges: https://codingchallenges.substack.com/ which shares real-world project ideas that you can use to level up your coding skills.
Developing Skills: https://read.developingskills.fyi/ covering everything from system design to soft skills, helping them progress their career from junior to staff+ or for those that want onto a management track.
Takeaways
People run on emotion and safety, not logic — lead them accordingly.
When someone underperforms, look at the system before you look at the person.
Labelling people as "difficult" or "lazy" is a way of avoiding the real problem.
AI is accelerating code generation, but the human bottleneck downstream is getting worse, not better.
The institutional memory inside a team is worth far more than anything in your wiki.
Culture is what happens when nobody's watching — not what's written on the wall.
If you send Slack messages at 10pm, your team will think there's no such thing as work-life balance.
Only authorised people should authorise work — casual remarks from leaders land as commands.
Co-location without connection isn't culture, it's a terrarium.
Computers are a science, but software is a humanity.