2009-11-10

Peopleware

Productive Projects and Teams, by Tom DeMarco and Timothy Lister

This is a classic text on software project management. DeMarco and Lister cover much of the same ground, as in DeMarco's novel The Deadline.

The major new idea introduced here is that software is written by people, and writing software is creative, intellectual work, which needs immersion and flow. So one has to create conditions where people are able to concentrate on that work: offices without constant interruption. Kind of obvious, but still ignored, even today, in a lot of workplaces. Doors that can be closed, phones that can be muted, fewer meetings that need to be attended, no public announcement systems. Having enough space. Having a human touch to the offices also helps.

Second, Scotty-like deadlines ("How long to fix the flux compensator, Scotty?" "Three days, Jim." "You have two hours.") are counterproductive. There is a limit on how much you can work, and if you put in overtime every day for months to meet some ridiculous arbitrary deadline, you will burn out. People do not work better under pressure, and Parkinsons law (that work extends to fill the time allotted to it) does not mean that work can be compressed arbitrarily by cutting the time allotted to it.

The third important insight is that you can not force creative work. You can not theory-X (people are lazy and need to be forced to work) manage programmers. Controlling what they do in detail would be so costly, that it is entirely uneconomic. So software is all about self-motivated people doing great work. Therefore, it is important to get the right people and keep them happy. DeMarco offers such wisdom as letting people demonstrate they can code in interviews for the "get the right people" part (you wouldn't hire a juggler who can not show you how he juggles, either). For the "keep them happy part", it means combating bureaucracy such as software Methodologies with a big M -- lots of paperwork that keeps you from doing useful stuff. It means investing in training and growth of your staff, giving them the best tools money can buy, and giving them responsibility. It means pride in the workmanship. Quality is free, if you are prepared to pay for it, as it creates pride in the work, and it lowers followup problems so massively. It means providing a clear goal for the team to fight for -- together. It means not wasting their time with ego-driven status meetings. It means respecting people.

Originally DeMarco believed in the value of measuring software development (Glibs Law: Anything you need to quantify can be measured in some way that is superior to not measuring it at all). However, this is a tricky issue for knowledge work, because the measuring it may be too costly and complex, and if simplified will lead to "You get what you measure" simplistic and wrong solutions. DeMarco also changed his view on the subject later.

No comments:

Post a Comment