The Pragmatic Engineer Podcast
Episode: Code Complete with Steve McConnell
Host: Gergely Orosz | Guest: Steve McConnell | Date: September 10, 2025
Overview
In this episode, Gergely Orosz sits down with Steve McConnell, celebrated author of the seminal software engineering book Code Complete. The conversation journeys through the history of writing the book, its unexpected impact, McConnell’s foundational concepts on software construction, key lessons for software engineers’ careers, and the evolving landscape brought by AI and changing workplace cultures. With his trademark clarity, McConnell shares deep insights on sustainable craftsmanship, iteration, and the mental frameworks that helped shape both his authorship and professional trajectory.
Key Discussion Points & Insights
1. Origins and Intent of "Code Complete"
-
From Article to Tome:
- McConnell intended to write an article, realized there was no comprehensive book on software construction, and pivoted to fill that gap.
- “[...] I convinced myself that this book didn’t exist. And this was just baffling... there wasn’t a book on the main thing that programmers do, which is software construction.” ([02:01])
- Planned a 250-page book; actual estimate ballooned to over 900 pages upon careful planning.
-
Early Career Perspective:
- Wrote the book only five years out of college.
- Well-positioned to remember beginner struggles, thus targeting “me five years earlier”. ([04:39])
2. The Book’s Impact and Influence
-
Unexpected Success:
- Microsoft Press published it thinking it would be a niche, scholarly title, not expecting strong sales. The book went on to become a staple in software engineering libraries for decades. ([05:41])
-
Inspiring Coding Horror & Stack Overflow:
- Jeff Atwood (Coding Horror) reached out to use McConnell’s “Coding Horror” icon; the resulting blog inspired countless developers and played a role in the creation of Stack Overflow.
- "If you put out good things into the world, [...] there are positive ripple effects." ([07:45])
3. Defining Software Construction vs. Coding
-
Software Construction as a Discipline:
- Not just “writing code,” but all activities adjacent to actual coding: detailed design, testing strategy, iteration, maintainability, and especially readability.
- “I tried to capture the space of software construction ... that is not the same as writing code.” ([08:47])
-
Top-Down vs. Bottom-Up Thinking:
- Programmers tend to be either detail-oriented (bottom-up) or abstract (top-down); most, McConnell believes, fit the detail-oriented, inductive mold.
- “I would write the book inductively... I would start out talking about a lot of specifics and then build up to the general statements at the end.” ([12:35])
4. Iterative Design & the Value of Rewriting
-
Embrace Iteration:
- Software design is rarely a straight path; mistakes, experiments, and discards are normal and valuable (inspired by Dave Parnas’ paper on "how and why to fake it").
- On rewriting: “If you've ever lost code and had to re-do it, you rewrite it in 45 minutes... and it actually turns out better than if you'd never lost it.” ([17:15])
-
Practice Makes Proficient:
- Drawing a parallel with reading, McConnell notes repetition (rewriting code or rereading text) builds skill and confidence. ([18:54])
5. Mental Models for Career Development
-
The Career Pyramid:
- McConnell developed a mental model dividing the profession into layers—base-level programmers, degree-holders, advanced practitioners, and luminary contributors (“top of the pyramid”).
- Used this to focus his efforts and choose projects that built toward broader influence, not just technical depth. ([25:29–29:36])
-
The Danger of Lily Pad Hopping:
- Critiques a pattern where developers hop from project to project with limited accumulation of skill or responsibility, advocating intentional, compounding career growth.
- “I wanted to be essentially more than the sum of the parts.” ([30:07])
6. Self-Directed Growth & Workplace Flexibility
-
Empowerment and Initiative:
- "Nobody needs to give you permission to do your job well." (quoting Larry Constantine) — Don’t build invisible walls for yourself.
- Most software jobs offer considerable leeway for engineers to shape their daily work. ([33:10])
-
Adaptability as Industry Evolves:
- Leading tech companies (e.g., OpenAI) now expect engineers to act as “product engineers,” blurring lines between engineering, design, and product management.
- Roles become fluid in early, high-energy startups, but defined structure becomes necessary as companies mature. ([38:25–44:13])
7. Sustaining Energy and Effectiveness
-
The Power of Team Energy:
- High-impact projects often come from small, focused, hyper-motivated teams (e.g., Microsoft Windows, WhatsApp, Bluesky, OpenAI).
- “Focused application of personal energy makes up for a lot of other deficiencies.” ([53:25])
- As companies age, both their staff and their culture shift—what works for a startup doesn’t necessarily sustain a mature business. ([44:13])
-
Sustainable Pace vs. Crunch:
- Agile principles matured from “steady 40-hour workweeks” to understanding the need for bursts and sustainable patterns; not permanent crunch, but periods of drive punctuated by rest.
- “I think sustainable pattern is what matters, not always steady-state output.” ([61:27])
8. Breadth, Depth, and New Technology Frontiers
-
Skills Triad:
- Emphasizes continual proficiency-building in technology knowledge, business domain knowledge, and best practices—shifting focus as careers progress. ([45:10])
- "Going all in on just technology is career-limiting in most organizations."
-
Manager vs. IC:
- Technical professionals’ foray into management is often nonlinear; many step up, step back, or return a second time more effectively.
- “Most technical managers don’t aspire to general management; they want the same role at a cooler company.” ([49:32])
9. AI’s Impact on Software Engineering
-
AI as a Disruptive Force:
- AI-generated code (e.g., GPT, Copilot) can effectively produce "happy path" implementations and even participate in early-stage design and testing.
- However, essential complexity—edge cases, understanding business requirements—remains a fundamentally human challenge.
- “AI is incredibly powerful... I worry about it being subtly off.” ([76:21])
-
Guardrails and Fundamentals:
- Effective AI leverage requires greater clarity on requirements, test cases, and intended behaviors—ironically reinforcing classic software engineering fundamentals.
- “The more guardrails you put in place, the better result you get... this just sounds like good software development fundamentals.” ([73:09])
-
Breadth, Abstraction, and the “Next Layer”:
- Engineers now expected to work across multiple languages and stacks; AI further accelerates “breadth” but deep understanding and craftsmanship remain irreplaceable.
- “Programming is the job of figuring out what is exactly right. If AI just changes the playing field... it’s almost the same job it always was.” ([83:14])
-
Non-Determinism:
- AI introduces unprecedented non-determinism into programming, challenging norms of deterministic reasoning and requiring new strategies for validation and reliability. ([85:53])
10. Evergreen Principles for a Durable Career
- Maximize Value:
- “What makes you more valuable to your organization or to the world at large?... If everything you’re doing is just to scratch some personal itch, just be aware, that’s a lost opportunity.” ([86:54])
- Cultivate Craftsmanship and Curiosity:
- Continuous learning, curiosity, and the drive to explore what’s new and possible remain core to a rewarding software career.
- “Programmers, probably more than average, are curious people who like to learn, who are attracted to novelty... I wouldn’t change that.” ([89:03])
Notable Quotes
| Timestamp | Speaker | Quote | |------------|--------------------|-------------------------------------------------------------------------------------------------| | 02:01 | Steve McConnell | “I convinced myself that this book didn’t exist. And this was just baffling... there wasn’t a book on the main thing that programmers do, which is software construction.” | | 07:45 | Steve McConnell | “If you put out good things into the world... there are positive ripple effects.” | | 12:35 | Steve McConnell | “I would write the book inductively... start out talking about specifics and build up… more programmers are oriented that direction.” | | 17:15 | Steve McConnell | “...you rewrite it in 45 minutes and as you go you remember all the lessons that you learned... It actually turns out probably better than if you’d never lost it in the first place.” | | 30:07 | Steve McConnell | “I wanted to be essentially more than the sum of the parts.” | | 33:10 | Steve McConnell | “Nobody needs to give you permission to do your job well.” | | 53:25 | Steve McConnell | “Focused application of personal energy makes up for a lot of other deficiencies.” | | 73:09 | Steve McConnell | “The more guardrails you put in place, the better result you get... this just sounds like good software development fundamentals.” | | 83:14 | Steve McConnell | “Programming, we don’t get to be approximately right, we have to be exactly right... If AI just changes the playing field... it’s almost the same job it always was.” | | 86:54 | Steve McConnell | “What makes you more valuable to your organization or to the world at large?... that’s a lost opportunity [if you ignore it].” | | 89:03 | Steve McConnell | “Programmers are curious people who like to learn, who are attracted to novelty... I wouldn’t change that.” |
Timestamps for Important Segments
- 00:00–02:01 — McConnell’s motivation and research behind writing Code Complete
- 05:41 — Microsoft Press expectations and the book's surprise success
- 07:04 — Coding Horror and the “ripple effect” through Stack Overflow
- 08:34–12:35 — Defining software construction vs. coding; top-down vs. bottom-up thought
- 15:42–18:30 — Dave Parnas on iteration and why “design is a sloppy process”
- 25:29–29:36 — The Career Pyramid and steering your professional growth
- 30:07–33:10 — The problem with “Lily Pad hopping” in tech careers
- 38:25–44:13 — Startup energy vs. mature company culture; changing roles and staff demographics
- 53:25 — Energy and impact of small high-motivation teams
- 61:27 — Sustainable work patterns vs. permanent crunch
- 73:09–79:36 — AI’s impact, strengths, and limitations for developers
- 86:54–89:03 — Enduring career advice and the value of curiosity
Tone and Style
The discussion is collegial, direct, and thoughtful—blending Steve McConnell’s pragmatic, experience-driven takeaways with Gergely Orosz’s incisive, contemporary perspective. The episode is rich in wisdom for hands-on engineers, managers, and anyone seeking to craft a meaningful, lasting technology career.
For Further Reading & Listening
- Code Complete by Steve McConnell
- Dave Parnas, "A Rational Design Process: How and Why to Fake It"
- Fred Brooks, "No Silver Bullets"
- John Ousterhout, A Philosophy of Software Design
- Gergely Orosz, "The Software Engineer's Guidebook"
For more deep-dives and discussions on building great software and durable engineering cultures, visit newsletter.pragmaticengineer.com.
