Dreaming in Code is one of those books about the ups and downs of a software project. Tracy Kidder's The Soul of a New Machine (1981) created the genre, and in my view it has never been equaled. Scott Rosenberg is an equally gifted writer--his explanation of Python and its place in the programming universe (pages 70-79) is masterful--but he picked a dud project.
Dreaming in Code is about building a new personal information manager code-named Chandler. Famous folks in the programming community turn up in the story from time to time--Mitch Kapor (creator of Lotus 1-2-3), Andy Hertzfeld (an early Mac programmer), and Lou Montulli (co-founder of Netscape)--but their experience and contacts were still not enough to make Chandler a success.
Design began in the spring of 2002. With the powerful Lotus Agenda as a historical rev 1.0 (however, Microsoft's Outlook cleaned its clock in the marketplace), Chandler was going to be a new rev 2.0. Besides helping users manage their e-mails, appointments, contacts, tasks, and notes in a very hyperlinking kind of way, Chandler would be cross-platform, running on the Windows, Mac, and Linux OSs. However, the project never really got off the ground, and it was scaled back in January of this year.
So if you want to get a feel for what's it's like to work on a struggling software project, read Dreaming in Code. It's interesting, but depressing.