If you're a fan of the website Joel On Software, you will enjoy having so many of his postings in a single volume. More Joel on Software: Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and ... Luck, Work with Them in Some Capacity by Joel Spolsky takes a number of his blog postings over the last six years and presents in a context that was unavailable as they unfold over time. This aspect of book over blog allows him to consolidate thoughts or explain the evolution of concepts that he's experienced as one of the A-list bloggers in the tech community.
Part 1 - Managing People: My first BillG Review; Finding Great Developers; A Field Guide to Developers; Three Management Methods (Introduction); The Command and Control Management Method; The Econ 101 Management Method; The Identity Management Method
Part 2 - Advice to Potential Programmers: The Perils of JavaSchools; Talk at Yale; Advice for Computer Science College Students
Part 3 - The Impact of Design: Font Smoothing, Anti-Aliasing, and Subpixel Rendering; A Game of Inches; The Big Picture; Choices = Headaches; It's Not Just Usability; Building Communities with Software
Part 4 - Managing Large Projects: Martian Headsets; Why Are the Microsoft Office File Formats So Complicated? (And Some Workarounds); Where There's Muck, There's Brass
Part 5 - Programming Advice: Evidence-Based Scheduling; Strategy Letter VI; Can Your Programming Language Do This?; Making Wrong Code Look Wrong
Part 6 - Starting a Software Business: Forward to Eric Sink on the Business of Software; Forward to Micro-ISV: From Vision to Reality; Hitting the High Notes
Part 7 - Running a Software Business: Bionic Office; Up the Tata Without a Tutu; Simplicity; Rub a Dub Dub; Top Twelve Tips for Running a Beta Test; Seven Steps to Remarkable Customer Service
Part 8 - Releasing Software: Picking a Ship Date; Camels and Rubber Duckies
Part 9 - Revising Software: Five Whys; Set Your Priorities
The thing that either resonates with or infuriates you about Spolsky is that he has very strong opinions that don't always mesh with the "common practice" of our industry. For instance, he has some extremely defined ideas about what all programmers should be able to do, and most of them are only possible as the result of a computer science degree. He only wants "great developers", and these developers are only going to come out of high-end college programs. While he might only hire those who fall into that classification, the reality is that the industry is far more populated with solid and competent developers who don't work on code for software products that are designed to be released as saleable products. He would consider a development job in a regular company a life of hell. On the other hand, some of us like it. :)
But not all the topics are controversial. Some articles shed light on common industry problems, like "Martian Headsets" (backward compatibility) and "Why Are The Microsoft Office File Formats So Complicated?". It's easy to bash Microsoft for bloated and buggy software, but you start to understand a bit more after reading that last one. With popularity comes legacy, and with legacy comes compatibility and general nastiness. "Martian Headsets" also explains the "no win" situation Microsoft is in when it comes to IE8 and "standards". They're raked for not supporting strict standards, yet most existing sites would fail to render under a browser that adhered to strict standards. So do you bow to reality and accommodate quirks, or do you stick to ideals and break sites? It's not an easy argument...
More Joel on Software is a book that will challenge you on a few things that you thought you probably already knew. You won't agree with him on everything, but it's always good to be forced to think...