Practice: Pair Programming
  • One drives; the other observes; everyone listens and learns

  • Telecommuting: phone headset and fast connection [taxes 2000]

  • Courage

Notes:

Pair programming is taking code reviews to the extreme. One person drives while the other observes and comments. There's a constant quiet banter. Listening skills are very important.

[taxes 2000] The most intense pair programming session actually involved three people. We had a failure in our tax generation software caused by a defect in Adobe Acrobat. Acrobat won't render PDF forms when printing if they haven't been displayed. People were printing out tax forms with the first page filled in and the rest blank.

After discovering the problem, we had to work around the problem in Acrobat. The existing software made too many assumptions about PDF forms complying to the spec. We had to change the approach. The entire team, all three of us, divided the problem and programmed in parallel while maintaining constant communication by phone. Since we were working on a web product, we were able to share very easily. We rewrote the tax package in a (long) day. Problem solved only because three heads are much better than one.

Pair programming takes courage, because it means you have to accept making mistakes in front of another human being. It can be great, if everyone is humble. It fails when someone is not willing to discuss openly.