Software projects are accomplished by programming. In the end, only the code matters. Therefore, maximize the time programmers spend programming a correct solution. Minimize interruptions and non-programming tasks. Make sure that the work they're doing can't be done by less expensive members of the team.
Be careful in applying this: It's no good for a programmer to spend 100% of her time programming if she's not programming the correct solution. Other tasks are necessary to produce the correct result. Some people feel that design and testing are necessary; others feel that talking to the customer, taking bug reports, and observing users at their job is necessary. Balancing the need for correct software with the desire to maximize programming time is an important and difficult issue that isn't addressed here. It's discussed further in BalanceCorrectnessAndProductivity?.
Possible Techniques:
- SupportSwami
- StandupMeeting (as a replacement for other meetings)
- ProjectManager
- (From the ProjectManager page): In the past seven years, I've had the opportunity to work with exactly one really good project manager. Let me tell you: This guy was amazing. Working for him was a real pleasure. He felt that his job was to keep us away from useless crap so we could get on with our jobs. We were never dragged in to useless meetings. We never dealt with paperwork. Despite not being a programmer, he had a very strong grasp of the techology, and worked together with us to make appropriate technical decisions. He understood the need to refactor code, and spent days explaining to our client why we were extending our schedule. If we had an amazingly productive week, he'd tell us not to come in on Friday. Vacations were never rescheduled or denied. --AnthonyLander
CategoryProtoPattern CategoryProcessPrinciple CategoryTimeManagement