Managing software teams: the definitive reading list

Frederick Brooks once wrote:

The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination.

In his classic essay, “No Silver Bullet”, he also wrote about software’s “essential” complexity:

The complexity of software is an essential property […] Hence, descriptions of a software entity that abstract away its complexity often abstract away its essence. For three centuries, mathematics and the physical sciences made great strides by constructing simplified models of complex phenomena, deriving properties from the models, and verifying those properties by experiment. This paradigm worked because the complexities ignored in the models were not the essential properties of the phenomena. It does not work when the complexities are the essence.

It’s therefore no surprise that once a team develops expertise in a technical domain and starts to evolve a product from that foundation, there is still a huge heap of complexity left over.

This is made worse on bigger problems where more people are involved, thanks to Brooks’s Law. In addition to the software’s essential complexity, you also need to navigate the built-in complexity of human communication, and the associated combinatorial explosion of information pathways on growing teams.

Modern software management practices have thus evolved two distinct skillsets for navigating the problems of team coordination around complex software delivery. These two areas are product management and software engineering management.

Product management centers around areas like market positioning, product strategy, and customer-focused iterative development. The product manager, working closely with the engineers, determines the “what”, aligns the team around the “why”, and acts as a liaison to users and the wider market.

Software engineering management focuses on the practice of coordinating teams of programmers in the delivery of high-quality shipped software, often leveraging programming languages, tools, frameworks, cloud services, and lots of open source technology. Pithily, this is “the how”, as well as the art of making informed engineering tradeoffs, e.g. as relates to time-to-market, performance, quality, and cost.

This post will cover some of my favorite reading materials spanning product management and software engineering management, as disciplines. A preview of some of the titles is here:

I have curated these resources carefully, and I have recommended them at various times to my own product managers and my own software engineering managers over the years. I hope you find this a useful starting point for your own study.

Continue reading Managing software teams: the definitive reading list

The New Novel has an interesting article about the craft of writing. It’s from 2010, but still interesting.

… far more money can be made out of people who want to write novels than out of people who want to read them. And an astonishing number of individuals who want to do the former will confess to never doing the latter. “People would come up to me at parties,” author Ann Bauer recently told me, “and say, ‘I’ve been thinking of writing a book. Tell me what you think of this …’ And I’d (eventually) divert the conversation by asking what they read … Now, the ‘What do you read?’ question is inevitably answered, ‘Oh, I don’t have time to read. I’m just concentrating on my writing.’”

When I was younger, I thought there was no greater ambition than becoming the writer of the next great novel. However, this article made me reflect on my own media consumption habits, and what a small audience I would affect even if I did write such a work.

I think similarly about painting and sculpture and classical music. These expressive forms are certainly demanding of skill, but who is the audience?

It would be unfair to consider television programming or film the new novel. Certainly, these media have the capacity to change people’s ideas and have a wide impact. But, even with the technology and cost barriers breaking down on film production, it lacks the visceral nature of writing. Anyone with an idea and a pen (or laptop) can pursue writing, but you have to be a technician of sorts to make a film.

By this disqualification, software — though increasingly recognized as an art form — is definitely not it, either. So, what is?

“Facile anti-intellectualism is the order of the day”

A book review by Thomas Frank, on a biography of John Kenneth Galbraith.

What astonishes the contemporary reader is, first of all, that a genuine, independent intellectual like Galbraith was permitted to serve in government, let alone become the confidant of presidents. Facile anti-intellectualism is the order of the day now, as even Democrats race to embrace the free-market logic of the Chicagoans. The ”New Industrial State” that the great liberal economist described in 1967 is now Public Enemy No. 1 of financiers and rebel C.E.O.’s determined to, as Tom Peters put it in 1992, blast ”the violent winds of the marketplace into every nook and cranny in the firm.”

Yet reading Parker’s comprehensive account of the 20th century’s economic battles, I can’t help thinking that this ought to be Galbraith’s moment. An old-school scoffer like Galbraith would remind us that all our elected officials have done with their heady incantations of the virtues of privatizing Social Security and the glories of deregulation is resurrect the superstitions of our orthodox ancestors, and trade in our affluent society for a faith-based 19th-century model in which the affluence accrues only to the top.

Or, as I sometimes like to put it, “Economics is too important to be left to economists.” Galbraith would have agreed.

Seemed particularly relevant to me as I have just finished reading books by Galbraith and Frank in the last few months.

Free and DRM-Free E-Books

I got a Nokia 770 for Christmas, to replace my aging and dying Palm V. I’ll probably write more about the 770 and the Palm V later, but suffice it to say that I got the Palm V when it came out, approximately 10 years ago, and have used it ever since. My main uses for it were AvantGo and Vindigo, although in the past I did get other uses out of it as well. I plan to keep the Palm around mainly for the Vindigo features, which I haven’t seen done better anywhere else. (No book on the planet has as much information about NYC as my 8MB Palm V with Vindigo loaded on it.)

I basically got the 770 because of all the great stuff I heard on Teleread and other sites about its use as a portable e-book reader. Indeed, that has been the most pleasant experience on the device. With the Evince PDF viewer and with FBReader (an Open Source ebook reader for a lot of different formats, including HTML, Plucker, and zTxt), I am able to read a ton of stuff while I’m in my commute, and all on a beautiful 800×480 screen that fits in the palm of my hand. (Yes, finally I get to read with serif, anti-aliased fonts!)

I have been overwhelmed with how many free e-books you can find online, thanks in part to efforts by groups like Creative Commons. Here are some good ones:

Feel free to post more in comments!