Chapter 34. People Power

Two things are infinite: the universe and human stupidity; and I’m not sure about the universe.

Albert Einstein

Programming is a people pursuit.

Almost since the first programs were constructed we have realised that programming is not a solely technical challenge. It is also a social challenge. Software development is a pastime that involves writing code with other people, for other people to understand. It means working with other people’s code, joining and leaving software teams, working under your boss’ supervision, managing developers (which is rather like herding cats), and so on.

Many of the most enduring programming tomes are devoted to the people problem, for example, The Mythical Man Monthfootnote::[Frederick P. Brooks Jr., The Mythical Man Month (Boston: Addison Wesley, 1995).] and Peopleware.footnote::[Tom Demarco and Timothy Lister, Peopleware (New York: Dorset House Publishing, 1999).]

Just as the people working with a codebase will inevitably shape the code they produce, the people who work with you will inevitably shape you.

Key

Purposefully place yourself beside excellent programmers.

That is, if you want to be an exceptional programmer, then you must consciously place yourself daily amongst people who are exceptional programmers. It’s a really simple but profound way to make sure that you improve your skills and attitudes.

We are products of our environment, after all. Just as plants need good soil, fertiliser, and the correct atmosphere to grow healthily, so do we.

Spending too long with depressing people will make you feel depressed. Spending too long with run-down people will make you feel tired and lethargic. Spending too long with sloppy workers will encourage you to work sloppily yourself—why bother trying if no one else is? Conversely, working with individuals who are passionate about good code and strive to make better software will encourage you to do the same.

By immersing yourself in the environment of excellent programmers, you will treat yourself to:

Find people like that and marinate yourself in their company. Consciously seek out the people who care about good code, and about writing it well. In that kind of environment, you won’t fail to be nurtured and encouraged.

By working with high calibre developers you will gain far more than technical knowledge; although that knowledge itself is very valuable. You’ll enjoy positive reinforcement of good programming habits and attitudes. You’ll be encouraged to grow, and be challenged to improve in your weaker areas. This isn’t always comfortable or easy, but it is worthwhile.

So make a point of seeking out the best programmers and work with them. Design code with them. Pair program with them. Socialise with them.