The Chief are experienced developers who have been through the entire software development lifecycle a few times. They
participate in the high-level requirements analysis and design activities of the project and are responsible for
leading small teams of three to sic developers through low-level analysis, design, and development of the new
software’s features. Chief Programmers also work with other Chief Programmers to resolve day-to-day technical and
resourcing issues. Self-driven to produce quality result on time, Chief Programmers combine great technical ability
with enough people skills to lead small teams to produce results every few days. Other typical characteristics of Chief
Programmers are that they are trusted and respected by both their managers and fellow developers, are determined to
make the team succeed and usually live the work.
Feature-driven development requires someone to lead the DBF/BBF processes, feature by feature, leading by example (as a
designer and programmer) and by mentoring (especially by way of inspections). The number of chief programmers limits
how fast and how far you can go with your project. If you want to increase project speed, recruit another chief
programmer. A chief programmer in this context is someone who is significantly more productive than others on your
team. The amplifying factor comes from a combination of raw talent, skills, training, and experience. Occasionally all
those talents come together within one human being. Adding more programmers tends to slow down a project. We find this
to be true with one exception: with small, client-valued features and lightweight processes, when you add a chief
programmer then you can add people around him and actually accelerate a project by increasing the amount of in-parallel
development you can tackle—but again, only to a point.
|