What do language lawyers, unit tests and performance goals have in common?
Answer: They might be the ideal combination to help differentiate staff for next year's performance review!
Fred Brooks' introduced the idea of a Language Lawyer on page 34 of The Mythical Man Month as one role within a surgical (or Chief Programmer) team. Feature Driven Development adopted the lessons this not only with the well known Chief Programmer role but also with the Language Lawyer as a supporting role. Stephen Palmer describes this on page 30 of A Practical Guide to Feature Driven Development.
Typical language lawyer roles in an FDD team include a Java language lawyer, a design patterns lawyer, a persistence layer lawyer and a domain modeling (in color) lawyer. However, more recent developments in agile techniques have created the need for another language lawyer role - the Unit Test Lawyer. Unit testing has come along way since the introduction of JUnit and CruiseControl. Now a unit testing expert is required to understand best practices in design-for-testing, use of Mock Objects, and patterns for using them.
Generally, language lawyers are not dedicated members of staff on an FDD team but developers or chief programmers who also carry a specific specialist role as an expert in one area. By giving specific team members a specialist role as a lawyer for a specific technical area, the manager creates the opportunity with which to differentiate for the purposes of performance reviews. The team will have specific goals and every member is expected to pull their weight as a functional member to achieve those team goals - delivery dates, production rate, quality goals. However, a specialist role such as Unit Test Lawyer gives an individual a chance to shine, build respect and trust from colleagues and show off their ability to their boss.
Individual team members can be set specific goals and behavior objectives which may include: attending specialist training, attaining certification in the specialist area, keeping up with industry trends and new developments in the technology, knowledge transfer, maintenance of a standards document used at design and code inspections, and coaching of fellow team members. By making the language lawyer responsible for sharing and communicating, the whole team can benefit from the individual contribution. The adoption of the techniques across the team and the code can be measured. The team members who work harder to learn, communicate better and articulate their thoughts best, will generate the most shared knowledge and the greatest team benefit.
For the manager it's a win-win-win. The individual gets to develop and show off worthwhile new skills. The team gets to learn and use new and better techniques which help to maintain or improve production rate, quality and lead time. The manager gets a method for measuring individual performance which is aligned with the best interest of the team, the customers and the stock holders. It may even be possible to survey team members for their opinion on whose individual contribution made the biggest difference. This allows the manager to place the rewards in line with popular opinion.