Code Complete 2: The Revenge
Reading through this blog, I was just reminded that Code Complete 2* was released. Since this book is the first entry on my prioritized list of Recommended Reading for Developers, and Steve is the patron saint of this web site, you better believe I just placed an order for it! Also, if you don't own the first five books on that reading list, shame on you, and get your ass over to Amazon immediately. If I was rich enough to buy a copy of those books for every developer on earth, I would.
I already own two copies of the original Code Complete; one for work, one for home. There's a list of what changed in the new edition, if you're curious:
There are still far more people who talk about good practices than who actually use good practices. I see far too many people using current buzzwords as a cloak for sloppy practices. When the first edition was published, people were claiming, "I don't have to do requirements or design because I'm using object-oriented programming." That was just an excuse. Most of those people weren't really doing object-oriented programming -- they were hacking, and the results were predictable, and poor. Right now, people are saying "I don't have to do requirements or design because I'm doing agile development." Again, the results are easy to predict, and poor.
Testing guru Boris Beizer said that his clients ask him, "How can I revolutionize and transform my software development without changing anything except the names and putting some slogans up on the walls?" (Johnson 1994b). Good programmers invest the effort to learn how to use current practices. Not-so-good programmers just learn the buzzwords, and that's been a software industry constant for a half century.
Steve is also writing a new book on estimation, Software Estimation: Demystifying the Black Art, or what I like to call the "I'm 99% done except for some cleanup!" book. It won't be released until sometime next year, but he is providing public manuscripts for review comments.
* I have a running joke that every sequel should always be subtitled The Revenge for dramatic effect, hollywood style. You know, like Bridges of Madison County 2: The Revenge