All blogs / Software / engineering practice
Codemanship's Blog
Musings And Mutterings By Jason Gorman
- Posts
- 290 from 18 Aug 2019 to 18 Oct 2026
- Posting
- weekly (122 in the last year)
- Kind
- personal blog
- Feed
- https://codemanship.wordpress.com/feed/
2026 90
- The Secret To Long-Horizon Agent Autonomy? Silent Failing
- Revisiting the Dependable Dependencies Principle
- Why Almost Nothing You Read Online About AI Is True
- Deterministic When Possible. Probabilistic When Necessary. Human When Cheaper.
- The Agentic Sweet Spot? The Human IS The Loop
- Human vs. Agent Reliability Over Long Horizons – How Can We Do What They Can’t?
- Out-Of-Distribution Errors – What Might Be Lurking In The Long Tail?
- Out-Of-Distribution Checks – How Human Intelligence Stabilises Agentic Workflows
- The Development Team Was Never The Typing Pool
- The Ultimate Equation about AI Coding
- On The Imaginary Trade-Off Between Agility & Rigour
- The Wall Confronting Reliable Coding Agent Autonomy
- Agentic Horizons – When The Wheels Start To Wobble…
- Anthropic May Know A Lot About Dice, But Do They Understand The Game?
- Less Is More
- Place Your Bets!
- AI Software Development – What Does The Data Say?
- Do Your Quality Gates See The Brown M&Ms In The Bowl?
- The Power Of “Why?”
- Feedback Latency, Learning & “Productivity”
- Even If We Could Extend The Horizons of Autonomous Coding Agents, Does That Mean We Should?
- The Solution To BDUF Isn’t Faster BDUF
- Return of the Revenge of the Son of Software Process Engineering
- A Car Crash In Slow Motion
- Feedback With A Face
- Faster Feedback -> Better Outcomes
- Feedbackmaxxing
- What If The Real Key To AI Coding Is Old-Fashioned & Boring?
- In Teams, Individual Productivity Is A Harmful Illusion
- Public Code Craft Training – July 7-9
- Extending The Horizon Of Agent Autonomy Is A Testing Problem
- I Am Ralph – CRESS Principles in Practice
- Calibrating Your Steps – How Small is “Small”?
- CRESS Principles for Context Engineering – S is for Specific
- Slow. The. F**k. Down.
- CRESS Principles for Context Engineering – S is for Small
- CRESS Principles for Context Engineering – E is for Empirical
- CRESS Principles for Context Engineering – R is for Refutable
- May Workshops for Self-Funding Learners – Update
- CRESS Principles for Context Engineering – C is for Current
- C.R.E.S.S. Principles for Context Engineering
- Is It Time To Get Back To Fundamentals?
- The Hottest AI Coding Skill In 2026? Coding Without AI
- Essential Code Craft – Workshops In May
- Have We Lost Sight Of Our Patients & Their Problems?
- Essential Code Craft – The Roadmap
- Specification By Example Was Essential Before AI. It’s Twice As Essential Now.
- The Mythical Agent-Month
- The AI-Ready Software Developer #24 – Specification Is A Conversation
- The AI-Ready Software Developer #23 – Speaking Clearly
- The Mouse That Roared
- Essential Code Craft – Test-Driven Development – April 7 & 11
- The AI-Ready Software Developer #22 – Test Your Tests
- Engineering Leaders: Your AI Adoption Doesn’t Start With AI
- The AI-Ready Software Developer #21 – Stuck In A “Doom Loop”? Drop A Gear
- A New DORA Performance Level – Catastrophically Bad
- Yeah, About Your CLAUDE.md file…
- Is AI Killing Software Engineering Jobs?
- The Double-Edged Sword of Automation
- How Can We Progress Past “AI” Woo?
- What Makes AI Agents Particularly Dangerous Is “Silent Failure”
- 71% of Developers and Engineering Leaders Believe “AI” Makes Engineering Discipline More Important
- Super-Mediocrity
- Will You Finally Address Your Development Bottlenecks In 2026?
- Rely On AI And Get Left Behind
- 100% Autonomous “Agentic” Coding Is A Fool’s Errand
- Best Way To Keep A Secret In Software Development? Document It
- Why LLMs Will Always Need An Expert In The Loop
- An Ode To “It Can’t Be Done”
- The Agile Manifesto at 25 – The Most Talked-About Unread Document In Software
- “TDD Slows Me Down”. Good.
- Tech Leaders: Low-Performing Teams Are A Gift, Not A Curse
- Am I Anti-AI? No. I’m Anti-Harm.
- Coding Is When We’re Least Productive
- Writing Code May Be Dead (Not Really), But Reading Code Will Live On
- Ready, Fire, Aim!
- Thanks to AI, Your Waterfall Is Showing
- Finally! Proof That Agentic AI Scales (For Creating Broken Software)
- Productivity Theatre
- The Gorman Paradox – Solution II: They’re In The Bin
- “First, We Model The Domain…”
- Yeah, About Your “Precise” Specification…
- Clean Contexts
- The Great Filter (Or Why High Performance Still Eludes Most Dev Teams, Even With AI)
- Yes, Maintainability Still Matters in “AI”-assisted Coding
- Walking Skeletons, Delivery Pipelines & DevOps Drills
- Why Does Test-Driven Development Work So Well In “AI”-assisted Programming?
- The AI-Ready Software Developer: Conclusion – Same Game, Different Dice
- The AI-Ready Software Developer #20 – It’s The Bottlenecks, Stupid!
- The AI-Ready Software Developer #19 – Prompt-and-Fix
2025 99
- The AI-Ready Software Developer #18 – “Productivity”. You Keep Using That Word.
- Aligning Teams Around Shared Goals (Is A Very Good Idea)
- Are You Training Your Junior Developers, Or Hazing Them?
- Refactoring Is Like Chess
- The Gorman Paradox: An Explanation?
- The Gorman Paradox: Where Are All The AI-Generated Apps?
- “AI”-Assisted Refactoring Golf
- Training & Mentoring is a Common Good
- Is “AI-First” a Strategy, an Ideology, or a Performance?
- To Build A High-Performing Team, You Need To Get Inside The Bubble
- We Don’t Out-Deliver The Competition. We Outlearn them.
- Manual Refactoring: Python – Introduce Parameter Object & Move Instance Method
- What Is A “Good Software Developer”, Anyway?
- The Future of Software Development is Software Developers
- The Age of Coding “Agents”? Or The Age of “LGTM”?
- What’s In A Name?
- When Should We Do Code Reviews?
- Do You Know Where Your Load-Bearing Code Is?
- Modular Design: The Secret Sauce
- “Our senior developers already know this stuff, Jason?”
- 101 Uses of An Abstract Test #43: Contract Testing
- Refactoring – The Most Important, Least-Understood Dev Skill
- The Seven Deadly Sins of “Go Faster”
- Cause or Correlation?
- The Tiger In The Magic Eye Picture
- When Evaluating Software Development Advice, Consider The Scale It’s Been Tested On
- Myth: “AI-Generated Code Doesn’t Need To Be Easy To Understand”
- Is Software The UFOlogy of Engineering Disciplines?
- If I Was Your Head of Engineering…
- “Productivity”. You Keep Using That Word.
- The AI-Ready Software Developer #17 – Back To The Future (Again)
- The AI-Ready Software Developer #16 – A Token of Our eXtreme
- The AI-Ready Software Developer #15 – It’s (Still) About The Team
- The AI-Ready Software Developer – Index
- The AI-Ready Software Developer #14 – Continuous Architecture
- The AI-Ready Software Developer #13 – *You* Are The Intelligence
- The AI-Ready Software Developer #12 – Ground Truth
- The AI-Ready Software Developer #11 – Staying Sharp
- The AI-Ready Software Developer #10 – Comprehension Debt
- The AI-Ready Software Developer #9 – Well-Trodden Paths
- The AI-Ready Software Developer #8 – Continuous Integration
- The AI-Ready Software Developer #7 – Commit On Green, Revert On Red
- The AI-Ready Software Developer #6 – Continuous Refactoring
- The AI-Ready Software Developer #5 – Continuous Inspection
- The AI-Ready Software Developer #4 – Continuous Testing
- The AI-Ready Software Developer #3 – One Problem At A Time
- The AI-Ready Software Developer #2 – Clarifying With Examples
- The AI-Ready Software Developer #1 – Separation of Concerns
- Wax On, Wax Off
- Is Your Development Team “AI-Ready”?
- TDD Under The Microscope #3 – One Outcome Per Test
- Why You (Probably) Won’t Get Rich Building With LLMs
- The Passionate Programmer: Too Passionate, Perhaps?
- Mission Statement
- If Releases Are Experiments, What’s Your Hypothesis?
- LLMs, Context Windows & Brown M&Ms
- Comprehension Debt: The Ticking Time Bomb of LLM-Generated Code
- TDD Under The Microscope #2 – Assert First
- What Are The “Objects” in “Object-Oriented Programming”?
- TDD Under The Microscope #1 – Usage-Driven Design
- Code Reviews as Exploratory Testing
- Clever Hans Couldn’t Really Do Arithmetic, and LLMs Don’t Really Understand.
- eXtreme Programming Reborn: Code Craft & “A.I.”
- The LLM In The Room: ChatGPT Speaks
- Micro-Iterations, Maps & “Interruptibility”
- What If FOMO Itself Is Why We Miss Out?
- Enterprise Refactoring Requires Enterprise Tests
- Will The Money People Pull The Plug On The A.I. “Space Race”?
- Five Boring Things That Have A Bigger Impact Than “A.I.” Coding Assistants On Dev Team Productivity
- It’s the System, Stupid!
- The Real Secret of Prompt Engineering
- The A-Z of Code Craft – U is for Users
- The A-Z of Code Craft – T is for Team
- The A-Z of Code Craft – S is for Safety
- It’s The Team, Stupid!
- The A-Z of Code Craft – R is for Refactoring
- The A-Z of Code Craft – Q is for Quality
- The A-Z of Code Craft – P is for Precondition
- It’s The Bottlenecks, Stupid!
- Why Software Design At Any Level Needs Us To See The Whole
- The A-Z of Code Craft – O is for Outside-In
- The Obligatory Post About A Profession of Software Development
- The A-Z of Code Craft – N is for Non-Blocking
- The A-Z of Code Craft – M is for Modularity
- The A-Z of Code Craft – L is for Liskov
- The A-Z of Code Craft – K is for K.I.S.S.
- The A-Z of Code Craft – J is for Just-In-Time
- The A-Z of Code Craft – I is for Iterative
- The A-Z of Code Craft – H is for Hexagonal
- The A-Z of Code Craft – G is for GUI
- The A-Z of Code Craft – F is for Freedom
- The A-Z of Code Craft – E is for Encapsulation
- The A-Z of Code Craft – D is for D.R.Y.
- The A-Z of Code Craft – C is for Continuous
- The A-Z of Code Craft – B is for Builds
- The A-Z of Code Craft – A is for Agility
- The LLM In The Room
- We Don’t Make Food. We Design Kitchens.
- Over-organising, Under-organising & Just Enough Organising
2024 4
2023 8
- The Bluffer’s Guide to Principles of Software Engineering Management
- The Bluffer’s Guide to A Spiral Model of Software Development and Enhancement
- The Bluffer’s Guide to Managing The Development of Large Software Systems
- The Bluffer’s Guide to The Design of Everyday Things
- The Bluffer’s Guide to Structured Programming
- The Bluffer’s Guide to Peopleware: Productive Projects and Teams
- The Bluffer’s Guide to The Mythical Man-Month
- The Illusion Of Developer “Productivity” Opens The Door To Snake Oil
2021 17
- GitHub Copilot – Productivity Boon or Considered Harmful?
- Wax On, Wax Off. There’s Value In Simple Exercises.
- Measuring Inner-Loop Agility
- Inner-Loop Agility (or “Why Your Agile Transformation Failed”)
- Solve The Problem You’ve Got, Not The One You Want
- Code Craft – The Proof of the Pudding
- ‘Agility Theatre’ Keeps Us Entertained While Our Business Burns
- The Trouble With Objects
- How To (And Not To) Use Interfaces
- What Is ‘Leadership’ Anyway?
- Forget SOLID. Say Hello To SHOC Principles for Modular Design.
- A Vision for Software Development: It’s All About Teams
- There’s No Such Thing As “Agile”. There’s Just Software Development.
- Fast-Running Tests Are Key To Agility. But How Fast Is ‘Fast’?
- Training Is Expensive. But Not As Expensive As Not Training.
- I’m A Slacker, And Proud Of It
- Beware False Trade-offs
2020 48
- Big Test Set-Ups Don’t Necessarily Point to Design Problems
- What Can We Learn From The Movie Industry About Testing Feedback Loops?
- Stuck In Service-Oriented Hell? You Need Contract Tests
- Don’t Succumb To Illusions Of Productivity
- The Jason’s Guitar Shack kata – Part I (Core Logic)
- Readable Parameterized Tests
- Pull Requests & Defensive Programming – It’s All About Trust
- Codemanship Code Craft Videos
- Leading By Example
- Slow Tests Kill Businesses
- Where’s User Experience In Your Development Process?
- Proactive vs Reactive Learning (or “Why Your Company Only Does Easy Things”)
- The Software Design Process
- Will There Be A Post-Pandemic IT Boom?
- Modularity & Readability
- 10 Things Every *Good* Software Development Method Does
- Automate, Automate, Autonomy!
- Why COBOL May Be The Language In Your Future
- Is Your Agile Transformation Just ‘Agility Theatre’?
- How The Way We Measure “Productivity” Makes Us Take Bad Bets
- Why I Abandoned Business Modeling
- Refactoring Complex Conditionals To Conditional Look-ups
- Is UML Esperanto for Programmers?
- Introduction to Test-Driven Development Video Series
- New Refactoring: Replace Conditional With Lambda Map
- Developer Coaching for Beginners
- Scheduled Online TDD Courses, May – July
- For Distributed Teams, Code Craft is Critical
- Lunchtime Learnings in TDD
- New Refactoring: Remove Feature
- Test-Driven Development in Python
- The Experience Paradox
- Test-Driven Development in JavaScript
- Are Only 1 in 4 Developers Trusted?
- Trust & Agility
- Extreme Programming Is Dead. Long Live Extreme Programming.
- A Programmer’s “Breadboard”?
- Code, Meet World #NoBacklogs
- Do We Confuse Work With Value?
- The Value’s Not In Features, It’s In Learning
- Codemanship’s Code Craft Road Map
- The Return of Micro-Methods
- Ant Colonies, Agile At Scale & The Illusion Of Control
- Codemanship’s Code Craft Road Map
- Do Our Tools Need A Rethink?
- Code Craft Bootstrapped
- 4 Out Of 5 Developers Would Choose To Stay Developers. Is It Time We Let Them?
- How A Developer’s Career *Should* Work
2019 24
- It’s About The Loops, Stupid!
- The Xmas Train Kata
- Does The Means Justify The End?
- Changing Legacy Code Safely
- The 4 Gears of Test-Driven Development
- Adventures In Multi-Threading
- The Test Pyramid – The Key To True Agility
- Iterating Is The Ultimate Requirements Discipline
- How Agile Works
- The 2 Most Critical Feedback Loops in Software Development
- Automated Tests Aren’t Just For The Long-Term
- How to Beat Evil FizzBuzz
- Action(Object), Object.Action() and Encapsulation
- Code Craft : Part III – Unit Tests are an Early Warning System for Programmers
- Code Craft : Part II – Version Control is Seat Belts for Programmers
- Code Craft : Part I – Why We Need Code Craft
- Code Craft’s Value Proposition: More Throws Of The Dice
- “Stateless” – You Keep Using That Word…
- In-Process, Cross-Process & Full-Stack Tests
- Standards & Gatekeepers & Fitted Bathrooms
- Digital Is A Process, Not A Project
- The Gaps Between The Gaps – The Future of Software Testing
- Overcoming Solution Bias
- What’s The Point of Code Craft?