Friday, February 01, 2008

The Do-it-Yourself Degree in Software Engineering: Bonus Round

So it’s six months later, you’re a coding rockstar, you know how to run a team, your organization follows the principles laid out in Peopleware, and now you’re wondering, “Hey, what’s next?” Here are some great reads that are illuminating but not part of the required curriculum. I consider everything I’ve posted earlier as the basic cost of doing business as a professional software developer. These are just for fun, but still very useful in making you an excellent engineer.

Dreaming in Code presents a sweeping view of the history of software engineering, told through the lens of Mitch Kapor and the Open Source Application Foundation’s efforts at developing Chandler, the Personal-Information-Manager-That-Will-Totally Change-Your-Life-If-We-Could-Ever-Ship-Running-Code. It brings together many of the lessons of the Mythical Man Month and Peopleware in the context of a real effort at building a new product.

Go To is another great history of software, focusing more on the sequence of technical developments between World War II and where we find ourselves today. The exciting running thread throughout the book is the number of great advances that have been made by individuals building the exact tool to suit their own needs. If there was every a compelling argument against software design by committee, this is it.

The Innovator’s Dilemma is an excellent read because it shows over and over how entrenched players in a market are unseated by small teams working with great focus on an emerging market or technology. Every time someone tries to convince me that Google can never be unseated from a position of dominance in search, or that Microsoft and Yahoo are the companies we should be concerned about, I tell them to read this book. For a big company, the competition isn’t the hundred-billion-dollar software shop down the road, it’s a few folks in an apartment somewhere using sheets of plywood for desks and borrowed hardware.

There’s a great flipside to the Innovator’s Dilemma, too: if you’re thinking of building something, and you think it’s going to go up against some established megacorp, take inspiration from the number of times that some unproven David has taken down a Goliath.

Lastly, In Search of Stupidity presents a unique perspective on how so many software companies managed to compete with Microsoft and fail completely. The underlying thesis of the book is that Microsoft isn’t necessarily that great, but everyone else is so bad; Microsoft happens to be the one software company that didn’t make any horrendously stupid mistakes in the eighties or early nineties. You can debate that thesis, but it’s still entertaining to read some of the brain-dead things that Microsoft competitors did.

This is now the final final conclusion of my list. Please let me know if you end up reading any of these on my recommendation, and let me know what you think of the books. Enjoy.

1 comment:

Alan said...

I have been on a reading kick for the last year or two. I am adding several of your books to the list. I did want to second your recomendation of The Innovator's Dilemma. It was a thought provoking look at how radical change really happens. I also want to suggest a softer skill book, but is quite helpful when working with a team, or in living life... Crucial Conversations. It provides tools that help understand conflict more clearly, find more agreeable solutions, and help the team all row the same direction towards a solution. Thanks for the posts.