Programmer and Team Dynamics
Success in software development depends most upon the quality of the people involved. The core problem of software development is human behavior; software development is a human-centric process, not an engineering discipline. An emphasis on managing the people process helps to ensure success. People and time are not interchangeable.
Communication is the most difficult part of any human endeavor; it is one of the required processes that cannot be hurried along. This is also the primary reason that programming teams don’t scale; more programmers mean less, not more, productive work.
“Emphasize individuals and interactions over processes and tools.” — The Agile Manifesto
The best programmers outperform the worst, in productivity and quality, by about 10 to 1. In addition, there are precious few nines or tens. Programmers from the same company tend to produce similar results. That is, good, mediocre, and bad programmers tend to cluster together under the same roof. This is often based on the fact that the acceptable skill level for the “average programmer” varies from company to company. Count on the best programmer being about 2.5 times better than the median performer. Count on the half that are better-than-median performers out-doing the other half by more than 2 to 1.
If you have to pay twice as much to get a top-10-percent programmer rather than a bottom-10-percent programmer, jump at the chance. You’ll get an immediate payoff in the quality and productivity of the programmer you hire. Because of “clustering”, you’ll also get a residual effect in the quality and productivity of the other team members.
People with 10 years of experience do not necessarily outperform those with 2 years of experience.
Personal character is one of the most decisive factors in the makeup of a superior programmer. The people who are best at programming are the people who realize, with humility, how small their brains really are and then learn to compensate for it.
The workplace environment has an enormous effect on programmer productivity. Minimum accommodation should be 100 square feet of dedicated space per worker, 30 square feet of work surface per worker, and outstanding noise protection in the form of six-foot walls or enclosed offices. Workers with acceptably quiet work places are one-third more likely to deliver zero-defect work. One of the worst enemies of productive work is interruptions. This is often due to phone calls, walk-in visitors, overhead paging, etc.
Projects where the boss applies no schedule pressure whatsoever had the highest programmer productivity rates, by far.
Studies show that exemplary organizations invest in 10 to 20 days of training per person per year.
Other Programmer Dynamics
People want to be part of a winner.
90 percent of what makes a team successful is the chemistry. Successful team building happens when choosing the members, not after the fact.
69 percent of employee job satisfaction stems from the manager’s leadership skills. 50 percent of a group’s success or failure is a direct effect of managerial performance. The manager’s function is not to make people work, but to make it possible for people to work.
40 percent of the difference in performance between work units can be attributed to employee satisfaction.
The people most likely to leave are those with the highest performance level.
The successful team needs the following personalities: the visionary, to anticipate needs and to inspire the team; the architect, to design and organize; the producer, to catalyze the team and foment cooperation; and the grunt, to create.