Please sign in to comment.
Thoughts on Dreaming in Code by Scott Rosenberg
As someone who has spent nearly 21 years as a professional software developer, I have often asked myself the question: "Why isn't building software like building a house?" *Dreaming in Code* attempts to answer that question. Rosenberg follows a software project ("Chandler") from inception to completion, and writes about the successes and pitfalls. Along the way, he detours to talk about all aspects of software development. There were several things I really liked about this book. 1. It was not a "how-to" book; not a business book; not a project management book. Like the best books for learning, it was a journalistic effort to understand a real-world example of software development. This wasn't a theoretical exercise. It was about real people trying to make software, and the challenges that they face in doing so. 2. Where I work, we often talk about how we do things, and how those things are done "in the real world." Reading *Dreaming in Code* reassured me that how we do things--the things we stuggle with most--are the same things that everyone struggles with, and there is no magic bullet. 3. The things we do struggle with: requirements, specifications, knowing when the software is finished, making sure it is fully tested--these are things that are part of the process. If there was any lesson I took from the book it is that the struggles that surround these are here to stay. A new process won't eliminate them. Instead, it is better to embrace them for what they are. 4. I particularly liked some of Rosenberg's chapters that went off to explore different corners of the software development world--like his discussion of Donald Knuth and the development of TeX and Metafont. Or the evolution of software like Basecamp. As a software developer, reading the book helped shine a light on places that I've stressed over on and off for years. For someone who is not a software developer, the book provides an excellent case study of what it is like to be one.
- Loading branch information...