The publishing part of Microsoft, started in 1984. They actually have quite good books on Software Engineering - I can especially recommend the books by Steve Maguire, with second place going to Steve McConnell. They call the series these are in the "Best Practices" series (and it is a pain to find on their website).

Books in this series include:

  • Writing Solid Code, by Steve Maguire - if "invariants" does not immediately ring a bell, this is a must read. Includes a lot of techniques for making sure that you keep bugs out of your code.
  • Debugging The Development Process, by Steve Maguire - also a must read. It is a tiny (200 pages), easily read book about how to make software development work - with a lot of concrete advice.
  • Code Complete, by Steve McConnell - a good overview of different software engineering theory, so if you've not tracked that field, this is a good place to start. The book is large but easily read - though I think it would have been even easier to read if it had been less wordy, and instead covered more material. Note that there are some errors in the example programs.
  • Rapid Development, by Steve McConnell - McConnell's attempt at cloning "Debugging The Development Process" (or at least so it seems). Worth reading, but if you're only going to read one, pick "Debugging The Development Process".
  • Dynamic Of Software Development, by Jim McCarty. A case study in how the Visual C(++) team managed to tune their development to do quarterly releases, more or less on the day. Includes a number of interesting observations in team dynamic - worth reading, but not a must-read (though some people disagree with me on this.)

I have no clue how Microsoft Press can have this good books on these topics and Microsoft still release with the software quality they do.