Personal Excellence And Integrity


The initial QPW development team comprised highly productive professionals who viewed each other with the highest respect. These perhaps sound like hollow words that most managers would apply to their organizations, until one looks more deeply into what "highly productive" and "respect" mean.

The QPW development team has chronologically mature membership by industry standards. "We have professionals, not hired guns" noted one member of the development team. People are brought into the team for their recognized expertise in domains of central importance to the project: spreadsheet engines, graphics, databases, and so forth. No one is viewed as a warm body, or general engineer, or interchangeable employee: Each brings special talents to the effort: DomainExpertiseInRoles. Implicit here is that developers were trusted to conduct their business: DeveloperControlsProcess.

QPW had a small core team--four people--who interacted intensely over two years to produce the bulk of the product (ArchitectureTeam; ArchitectAlsoImplements). Prototyping was heavily used: Two major prototypes were built and discarded (the first in C; the second, called "pre-Crystal," in C++). Additional programmers were added after six months or so of intense effort by the core of four (BuildPrototypes). These prototypes drove architectural decisions that were discussed in frequent (almost daily) project meetings (StandUpMeeting). Based on feedback from these meetings, the team made architecture and implementation changes and re-integrated and tested before the next meeting--usually the next day. This cycle closely approximates the patterns surrounding ProgrammingEpisode and, in a broader sense, DevelopmentEpisode. A million lines of code were written over 31 months by about eight people: that's about 1000 lines per person per week. And that doesn't include the code in the prototypes.

The trust level is so high that developers felt code reviews are unnecessary. But while reviews are rare, group buy-in and trust are important. Each project member must personally sign off on a set of project delivery media before they can be released to the next stage (e.g., beta test or to the "street"). This is a strong sign of CodeOwnership and OwnerPerDeliverable; both of these were strong in the project, partly because of the high degree of specialization, and partly because of a high degree of personal pride in craftsmanship. Personal evaluation of the software, as well as informal dialogue, build the confidence for such a sign-off.
There is a complex and highly non-linear relationship between project productivity, programmer skill, and project organization. There will always be debate about how much of the phenomenal productivity of QPW owes to its culture, how much to its choice of staff, and how much to other factors.