Saturday, March 17, 2007

NFJS Day 1 : Teams and Software

(This weekend, I am attending NFJS here in StL. I'll post a full review later. For now, here are some random ideas from various sessions.)

Teams and Developing Software

1. In my experience, the best teams have a passionate domain expert: someone who truly cares about the customer base and the functionality of the product. This passion is often contagious and permeates the team -- the quality of the code, the tests, the doc, and so on is always better when the team has spirit.

2. Another factor that increases team spirit is individual responsibility. Rather than simply ordering a developer to implement a spec, if you give them a sense of ownership and responsibility (e.g. by requesting their design input), magic happens: s/he will be engaged, empowered, and happier. And will do much better work.

3. Having code reviews (or pairing) is important, but so too is calling on different people to review. This is because different reviewers have different flavours: over time, you will gain a broader perspective. If the team chemistry is right, it can be fun to role-play. e.g. "Now, you know if I were Kevin, then I would ask you about unit-tests... how many have you written?"

No comments: