Here we go for a review of Peopleware: Productive Projects and Teams, 2013 (1st edition in 1987) by Tom DeMarco, Tim Lister. Another long overdue review since I read the book twice again since I first decided to write this review.
This is a book about teams of software developers, what makes them produce exceptional software and how (for the management) to avoid being in their way of such a noble aim. To me, this is also the logical sequel to the Mythical Man Month (reviewed here a few years ago).
The core idea is that developing a software product is an intellectual work (of communication and reflection) in an environment (market and technology) that is changing fast.
I would group the other main ideas in the following categories:
- software projects are unlike traditional ones
- teams and motivations
- creativity and change management
Despite spending currently more time using my WaterOnMars feed reader than developing it, I’m still making small improvements to it. And to make my life easier I could count on a solid little project: fabric !
fabric is a Python based command-line utility designed to help running commands remotely: typically to deploy a web app on a remote server.
So I’m using it to deploy WaterOnMars on my personal server and also to deploy the demo version on heroku. But more recently I added fabric’s configuration file (the “fabfile”) to the sources of the project as an officially maintained helper for development tasks. It’s now usable to run the test suite, to launch the web app locally, to set-up the db and to deploy it on custom servers.
This is a long overdue review of a long overdue read of the famous software project management book: The Mythical Man Month by Fed. P. Brooks, 1995 (1st ed. 1975).
I’ve heard about it several years ago, about how relevant it still was to current projects and more precisely how well it described what is systematically going wrong in software development. And all of that is true, impressively so !
Despite the vintage touch you can expect from a software-related book written at the dawn of software development (1975 !), the permanent disbelief of even the best educated developers toward the unavoidable occurrence of bugs and schedule slippage and managers’ natural tendency to look for manpower and neglect the productivity gains that could come from improving the information and tools available to a team, all of this is finely described and analyzed in this book.
Interestingly the author extended the book in 1995 to add more information and jeopardize his own previous assessments: answering some of his critics and reckoning some of his mistakes. This book embeds its own review !
This book is obviously a must read for anybody interested in project management and yet the first thing that struck me is how well the author characterizes the pleasure of programming, listing:
- the joy of making
- the joy of being useful
- the fascination for puzzles and minutes mechanics
- the joy of always learning
- the joy of working on “pure thought” stuff
In the following, I will try to categorize a selection of the main other arguments that struck me, into three categories: Planning, Development and Organization.