Orphans Preferred

Contents

Personality Types

Personality Characteristics of Software Developers

Software Demographics

Programming Heros and Ball Hogs

Programming Heroes and Ball Hogs

Combine a shortage of workers with the common tendency to set overly optimistic schedules, and the stage is set for the programming hero. Programming heroes take on challenging assignments and write mountains of code. They work vast amounts of overtime. They become indispensable to their projects. Success, it seems, rests squarely on their shoulders.

Project managers both love and fear hero programmers because these programmers are smart, temperamental, and sometimes a little self-righteous, and because the managers don't see any way to complete projects without them. In a tight labor market, replacing them isn't an option.

Unfortunately, the reality is that, for every programming hero capable of monumental coding achievements, there are other pathological programming disasters who just don't know how to work well with others. They hoard design information and source code. They refuse to participate in technical reviews. They refuse to follow standards established by the team. The sum total of their actions is to prevent other team members from making potentially valuable contributions. A significant number of programming heroes don't turn out to be heroes at all; they turn out to be prima donna programming ball hogs.

Individual heroics can contribute to project success, but teamwork generally contributes more than individual accomplishment does. A study at IBM found that the average programmer spends only about 30 percent of the time working alone. The rest is spent working with teammates, with customers, and on interactive activities. Another study of 31 software projects found that the greatest single contributor to overall productivity was team cohesiveness. Individual capabilities also significantly influenced productivity but were less influential than team cohesiveness.

Many people like to take on challenging projects that stretch their capabilities. Those who can test their limits, follow sound software engineering practices, and still cooperate with their teammates are the true programming heroes.

Cult of Personality

Upon examination, many aspects of the programmer personality stereotypes turn out to be accurate. The worst part of the stereotype-pathological heroism-might be due in part to industry demographics. The perennial labor shortage means that anyone with a strong enough interest in software development work can get a job as a computer programmer. The job market protects workers who become self-styled heroes.

The labor shortage contributes to increased hours for all available workers-heroes and others-which means less time for their self-education and professional development. This situation gives rise to a sort of "catch 22": we can't implement better development practices until we find the time for education and training, and we can't find the time for education and training until we implement better practices.

Working in favor of moving toward true software engineering professionalism is the fact that software developers are getting older. The longer the software field exists, the more the average age of software developers will begin to match the age of the rest of the working population. The extreme personal sacrifices that are tolerable to workers in their 20s become harder to justify as those workers marry, have children, buy homes, and move into their 30s, 40s, and 50s. As the current cohort of software workers grows older, the present hero-based approach to software development may naturally give way to an approach that relies more on working smart than on working hard. Software workers will become increasingly interested in the practices that allow them to complete their projects as promised and still be home in time for dinner.

Steve McConnell is president and chief software engineer at Construx Software, where he divides his time between leading custom software projects, teaching classes, and writing books and articles. He is the author of the Microsoft Press books Code Complete (1993), Rapid Development (1996), and Software Project Survival Guide (1998). His books have twice won Software Development magazine's Jolt Excellence Award for outstanding software development book of the year. In 1998, readers of Software Development named Steve one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds. In his spare time, Steve serves as editor in chief of IEEE Software magazine. He is on the panel of experts that provides advice to the Software Engineering Body of Knowledge (SWEBOK) project, and is a member of IEEE and ACM.

Steve earned a bachelor's degree from Whitman College and a master's degree in software engineering from Seattle University. He lives in Bellevue, Washington with his wife, Tammy; daughter, Haley; and dog, Daisy. If you have any comments or questions about this book, please contact Steve via e-mail at mailto:%20stevemcc@construx.com or via his web site at http://www.construx.com/stevemcc/

________________________________________________________

[Back to] Personality Types