Steve McConnell

stevemcconnell.com · Personal blog · on HN since 2008

Steve McConnell, author of Code Complete, writes about software project management, estimation, and common development mistakes.

What HN saysCommenters recommend his books, calling Code Complete one of the best on programming style and his estimation book the best on that subject.
49HN people shared it
26linked it in comments
28stories submitted
263story points
11 months agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Classic Mistakes Enumerated
    8 people · 18 points · first shared 2008 · discussion on HN
  2. 2
    Est
    5 people · first shared 2009
  3. 3
    Classic mistakes in the software industry (1996)
    4 people · 5 points · first shared 2019 · 1 comments on HN
  4. 4
    Cargo Cult Software Engineering (2000)
    4 people · 3 points · first shared 2008 · discussion on HN
  5. 5
    Books
    4 people · first shared 2019
  6. 6
    Cargo Cult Software Engineering (2000)
    3 people · 214 points · first shared 2020 · 136 comments on HN
  7. 7
    Software Quality at Top Speed
    3 people · 4 points · first shared 2018 · discussion on HN
  8. 8
    Software Engineering vs. Computer Science
    3 people · 3 points · first shared 2008 · discussion on HN
  9. 9
  10. 10
    Theses on Software Estimation (Expanded) (2015)
    2 people · 1 points · first shared 2022 · discussion on HN
  11. 11
    Ccgoto
    2 people · first shared 2014
  12. 12
    Spin-Free Data on Covid-19
    1 people · 3 points · first shared 2020 · discussion on HN
  13. 13
    How to defend an unpopular schedule (1996)
    1 people · 3 points · first shared 2018 · discussion on HN
  14. 14
    Steve McConnell (Rapid Development) custom Home Theater
    1 people · 1 points · first shared 2011 · discussion on HN
  15. 15
    A Case Study in Classic Mistakes
    1 people · 1 points · first shared 2013 · 1 comments on HN

What HN people wrote when they linked it

ChrisMarshallNY · 2024-02-11
I haven't been super thrilled with a lot of stuff, but I have found that I've enjoyed Joel Spolky's stuff[0], in general. I don't think he's that popular, hereabouts. For example, his book Smart and Gets Things Done[1] is great. Although not management, per se, Steve McConnell's stuff[2] has been of invaluable assistance, in my career. He talks about Quality Process, and that's the kind of stuff that managers should (IMO) know and enforce. Again, I don't think folks, hereabouts, have much love for him. His book, Rapid Development[3], was a watershed, in my development. [0] https://www.joelonsoftware.com [1] https://www.joelonsoftware.com/2007/06/05/smart-and-gets-things-done/ [2] https://stevemcconnell.com [3] https://www.microsoftpressstore.com/store/rapid-development-9780735691…
jt2190 · 2022-10-07
Also the source should point to the author’s site. “Classic Mistakes”, Steve McConnell https://stevemcconnell.com/articles/classic-mistakes/
DanHulton · 2017-07-24
Code Complete, Steve McConnell. http://www.stevemcconnell.com/cc.htm One of the best books on programming style and function, backed up with actual research for the recommendations.
zby · 2017-06-19
The best book I have read on software estimation is: http://www.stevemcconnell.com/est.htm My best short advice would be: always try to make an as detailed as possible list of tasks and estimate them independently - this way it is harder to forget about some details and when you estimate the tasks independently you sometimes over-estimate sometimes under-estimate and the errors compensate each other.
nradov · 2016-07-19
Much of that is covered in "The Capability Maturity Model: Guidelines for Improving the Software Process". The book is out of print now but available fairly cheap and it's well worth reading. https://www.amazon.com/gp/product/0201546647?ref%5F=sr%5F1%5F1&qid… And here's some further summary information and reading recommendations from Steve McConnell. http://www.stevemcconnell.com/sgcrib.htm
wheels · 2008-03-26
But copying that would be particularly cargo-cult-ish. The point there is that great people were uncertain, not that uncertain people were great. The thing to copy is the greatness, not the uncertainty. :-) "Cargo Cult Software Engineering" should be required reading for all nerds: http://stevemcconnell.com/ieeesoftware/eic10.htm
VonGuard · 2015-08-12
Steve Mcconnell has a great book on software estimation, but it's about enterprise software, where there are requirements and goals. [ http://www.stevemcconnell.com/est.htm ] The biggest problem with making games is the fact that there's no end goal of "Done." It's just a vague point in time, really. Is it done when you've made 10 levels or 11? Is it done when you've added 10 power-ups or 11, or 15? In a movie, you can't make the thing 50 hours long, no one would watch it all. But for a game, 50 hours is now considered medium sized, compared to MMO's and MOBAs that offer hundreds of hours of time to play. Scope creep is the biggest danger in the games industry. Reading this update, where they talk about going from 2D to 3D, my heart broke. That's such a major change, and as he writes, such a major uptick in difficulty, it was the beginning of the end. Terry Cavanaugh [http://distractionware.com/blog/ ] gets scope right. Valve gets scope right. You can tell when it's done right because the pacing of the game feels damn near perfect, like Half-Life 2: there's little down time, and you're always moving forward, even if yer not always shooting. I feel bad for the Woolfe team, but they clearly had rose colored glasses on. There's a very good reason modern console games cost at least 8 figures. Hell, even with 8 figures of budget, many big name titles aren't even that good. The games industry is a harsh mistress. Like judging what's funny for a comedian, judging what's fun for…
dalke · 2012-12-26
The usual model of the effectiveness of overtime in software is described in detail at http://www.stevemcconnell.com/rdvolot.htm . Most of the direct references are not from experiment but based on observations of effective work environments. You linked to a claim for skepticism, but did not mention the the extensive counter-examples from the first commenter, at least as it applies to some subfields of work. The quote I find most persuasive is: "The best data on sustained intellectual activity comes from financially independent authors. While completing a novel famous authors tend to write only for 4 hr during the morning, leaving the rest of the day for rest and recuperation." That is a strong suggestion that 4 hours of creative work is about the daily limit. Why is this not a sufficient counter-argument for a broad "60 hour is optimal" recommendation? After all, a self-supporting author has good economic inventive to create more works, but this puts a limit of 28 hours per week on creative work. Your second link is based on the Nov. 2001 newsletter of "a national firm of Construction Consultants and Claims Specialists, assisting owners and contractors in achieving profitable and trouble-free construction projects", and not, say, a peer-reviewed journal or research organization. The newsletters most recent citation is from 1992, so a bit over 20 years old, instead of a bit over 60 that you are disdainful about. Can you find anything more recent, and research-oriented,…
blogimus · 2009-04-09
I've worked for startups and for aerospace and defense contractors. There are of course different ways to approach software project estimation. I've worked on projects where we needed to do details work breakdown structures: http://en.wikipedia.org/wiki/Work_breakdown_structure And I've been in environments where I had to wing it with ever changing requirements where everything was all over the map. Somewhere in the middle is the happy ground. For perspective, I recommend reading the following book: Software Estimation: Demystifying the Black Art by Steve McConnel (http://www.stevemcconnell.com/est.htm) [Edit] Estimation is an iterative process both within a project (even if you are stuck in a god-awful waterfall) and with consecutive projects. You self train your estimation skills for doing similar work. Its when you hit something new that you don't have the past performance to draw upon that you really have to rely on your instincts. As a bottom line, I'm much less wrong when I go with my gut instincts than when I analyze and estimate ad nauseum.
Zanni · 2025-10-01
He wrote several more books (including a sequel/second edition of Code Complete). None of them had the same impact, though: https://stevemcconnell.com/books/
obscurette · 2023-08-13
mindcrime · 2022-12-19
I'd agree with that. And also add to the list (for later, maybe) two books by Steve McConnell[1] - Code Complete and Rapid Development. [1]: https://stevemcconnell.com/books/
fnord123 · 2020-08-11
Brook's law is also outdated. It's mostly only relevant for when you deliver your software with a forklift. Even Steve McConnell of Code Complete and Rapid Development has argued against it: https://stevemcconnell.com/articles/brooks-law-repealed/
pkroll · 2016-02-08
Obligatory Code Complete reference[1]: "These articles contain the whole goto debate. It erupts from time to time in most workplaces, textbooks, and magazines, but you won't hear anything that wasn't fully explored 20 years ago." [1]http://www.stevemcconnell.com/ccgoto.htm
duncans · 2013-08-28
Here's Steve "Code Complete" McConnell in 2000 on Cargo Cult Software Engineering: http://www.stevemcconnell.com/ieeesoftware/eic10.htm
jacques_chester · 2013-05-29
As an uncontroversial remark, I preferred Code Complete (I have both editions). McConnell has a gift for distilling research[1] into chatty, easy-to-read material. It's been nearly 10 years since the 2nd edition, which sat uncomfortably athwart the tectonic shift to agile practices. If I had a magic wand there'd be a 3rd edition based on what's been learned since 2004 (and a 2nd edition of Rapid Development, which he is at least considering[2]). [1] Yes, I know most software engineering research sucks. But a lot of it is better than stuff found in The Journal of Gross Oversimplifications Conveyed in 140 Characters or Less. [2] http://www.stevemcconnell.com/projects-newbooks.htm
yannickt · 2012-08-07
Your post reminded me of an article Steve McConnell wrote in 1996 about consulting at Microsoft. "While Microsoft was still involved with OS/2, the OS/2 development group requested that the company install a washer and dryer in their building so that they wouldn't have to go home to do their laundry. Although the group never got its washer and dryer, the message was clear: this team wanted to work. It didn't ask for promotions, more money, bigger offices, or fancy carpet; it asked for management to remove every conceivable roadblock so that it could concentrate on shipping a product." Source: http://www.stevemcconnell.com/articles/art05.htm Perks are an effective retention strategy only if they enable an already motivated employee to get more work done. And for the employee to be motivated, the work has to be rewarding.
nernst · 2012-05-31
Well, here are a few of the people "peddling fancy buzzwords". I think their bios speak for themselves. * Martin Fowler - http://martinfowler.com/aboutMe.html * David Anderson - http://agilemanagement.net/index.php/bio_david/ * Steve McConnell - http://www.stevemcconnell.com/bio.htm
jefffoster · 2011-07-08
The team I worked with tried something similar where we broke down tasks into cards, where each card represented something that should take about a day to complete. Knowing how bad I am at estimating how long tasks take, I was sceptical whether this would work, but it did! After a few months, the team settled down into doing 30 or so (+/- 10% or so) cards per week. This proved very useful for bargaining for more time for feature development and generally being more predictable. The takeaway for me is that good estimation is possible, and that by tracking those numbers you can improve your own estimation skills. Some other reading material that I found useful in this area was Evidence Based Scheduling (http://www.joelonsoftware.com/items/2007/10/26.html) and Software Estimation (http://www.stevemcconnell.com/est.htm)
btilly · 2010-02-08
The fact that there is no license in widespread use does not mean that there is no argument for creating one. See http://www.stevemcconnell.com/psd.htm for part of Steve McConnell's argument that we need to create, respect, and for certain kinds of projects require true software engineers sign off on the plans.
felipe · 2008-07-29
I think the main source of this confusion is the lack of understanding of the difference between computer science and software engineering: "A scientist builds in order to learn; an engineer learns in order to build." http://www.stevemcconnell.com/psd/04-senotcs.htm It seems to me that this professor is teaching CS to students who actually should be enrolled in a SE program.
mooreds · 2022-12-04
Hiya, I'd consider these books/articles/podcasts: * Secrets of Consulting by Gerald Weinberg: http://geraldmweinberg.com/Site/Consulting_Secrets.html Every problem is a people problem. * Refactoring by Martin Fowler et. al: https://martinfowler.com/books/refactoring.html talks about how and why to refactor, as well as providing a nomenclature for the process. * Code Complete by Steve McConnell. https://stevemcconnell.com/books/ A bit dated (the last version I could find was from 2004) but a great overview of the entire software process, from requirements to maintenance. * The Mythical Man-Month by Fred Brookes: https://www.oreilly.com/library/view/mythical-man-month-the/0201835959… best practices about software development, written about a project from the 1960 and 1970s. * The Joel On Software Strategy Letters: https://www.joelonsoftware.com/2000/05/12/strategy-letter-i-ben-and-je… is the first one. All of them (I think there are five) are great. * Letters to a New Developer: https://letterstoanewdeveloper.com/the-book/ Please note I wrote this, but I still think it does a good job of discussing the "soft skills" in an easily digestible format. * Pragmatic Programmer by Dave Thomas and Andy Hunt: https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-annive… Haven't read the revised 20th anniversary edition, but the first one opened my eyes to the craft of software. * High Output Management by Andy Grove:…
mattmcknight · 2015-10-13
"Estimating work and committing to those estimates" I agree with you that estimation has value, especially at the large scale when you are trying to budget for a multi-year project. (and at that level- the detail you think should be there simply isn't) You are also right that at some level it is a social problem, estimates and commitments are two very different things- and you don't just commit to an estimate. Estimates are predictions, statements of probability about the unknown future, hopefully based on solid data from past performance and some understanding of the work to be done. Commitments are promises to make things happen that are only partially within one's control. In many cases, an estimate is needed prior to getting the level of information that one would need to make a truly accurate prediction, so we respond with a range of dates to reflect that uncertainty, but this can be too early to make any kind of commitment. If you estimate at the point in time where you are 50% likely to get the job done, and commit to that, half of the time you will be late, even though it is "average time" it would take to do that work. You can't take the easy way out and commit at 100% likely time, because you could be sick in the hospital tomorrow (and with a big enough project, someone eventually is). If you commit to an 90% confidence estimate, you get stuck with Parkinson's law type problems. Not to mention that those predictions with percentages are hard to base on real…
gatehouse · 2014-08-12
Essentially the exact same issues everyone else faces, which are covered exhaustively here: http://www.stevemcconnell.com/rd.htm I'm going to single one out though: tweaking: making changes without adequate anticipation of the effects, or without the theoretical backing to expect that it will be correct. When you have a well structured high level understanding you can make changes knowing approximately what the effect will be and converge on the solution. Without that you end up thrashing around and making changes at random. If you take a random walk you're probably not going anywhere fast. When you are dealing with a well designed and executed system, then tweaking actually seems productive, because you begin from a good place in the solution space, when you explore the "local neighbourhood", then the modifications still produce a functional piece of software and it might actually be better in some ways that you care about. When you are making something new, tweaking gets you nowhere. EDIT: Here is a foolproof process to get me to automatically disregard all your future ideas: 1. Find some parameters that were chosen with theoretical justifications and a real analysis of historical data. 2. Modify one of the parameters based on some flimsy rationale. 3. Run some quick tests that are obviously designed specifically to confirm your expectations, declare victory and act like you've solved something.
cataflam · 2014-03-04
In short, it's not a bad practice in all cases and, like most issues, it depends. The "goto considered harmful" article by Dijkstra is more nuanced (and that wasn't even its intended title) and doesn't really address the way the goto you are seeing are used. They are a very common pattern in C, for error checking and cleanup in case of error. It's much more readable than to nest conditional statements. if (some_parameter > max_valid_value) goto error; if (some_function() <= ) goto error; ... ... if (some_alloc() == NULL) goto error; ... ... ... ... error: // cleanup what needs to be freed,... It can also be quite useful to exit nested loops for example. It's commonly used in low-level C. However, when you start goto'ing backwards instead of always forwards, it becomes terrible for readability, so it is avoided (well, most of the time). For more reading on the subject, this excerpt from Code Complete by Steve McConnell discusses the subject further : http://www.stevemcconnell.com/ccgoto.htm

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close