I'm working my way through Larry Constantine's Beyond Chaos. It's an anthology of columns on various aspects of managing software projects. Columns are divided into sections about managing people, managing projects, dealing with pressure, dealing with risk, requirements, processes, and teamwork.
The authors are really well-known names from the industry: Larry Constantine, Ed Yourdon, Peter Coffee, Dave Thomas, Steve McConnell and others. There are lots of points of view represented here, but the general feel of the book is pretty consistent: there's a lot of work to do, and we've got to roll up our sleeves and do it. And that attitude is backed up with management experience from these software commentators (the same ones who regularly appear at conferences like Software Development and Software Development Management Summit).
I came across an interesting quote today, originally from Robert Townsend (the guy who turned Avis around), relayed by Peter Coffee:
The manager's primary task is to eliminate people's excuses for failure.I've always said that a manager's job is to remove external uncertainties for his staff. I can't remember who or where I stole that from, but I like this quote much better. Thanks, Peter.
Another observation, this time from Peter Coffee but relayed by Larry Constantine, is about blindly replacing software systems without examining how requirements change over time:
A preoccupation with rigorous requirements can lead to "paving over the cowpath," in which new software replicates all the warts and wandering workflow of manual systems or outmoded applications being replaced.
I've worked on paving cowpaths before. It's not fun. Lots of hard work, and in the end the effort feels shallow and unfufilling. Then I thought about Perl5, and how it's feeling like a well-worn cowpath. Fortunately, we have Dan and Simon working hard on Perl6 and Parrot, the antithesis of a "paved cowpath" project. :-)