It's really important to me to be a nice person. I like to be nice to people. I help out, I smile, I answer questions without making people feel stupid, and I bring treats to work. I thank teammates when they're nice to me.
I've been lucky to be on software development teams where people do nice things for each other. Today, I was struggling to get a Watir test script running. Three times in about 20 minutes, I asked a coworker to come look at something I couldn't figure out. Each time, as soon as he was standing there, I realized what my problem was. He was nice about it. He didn't make me feel stupid or as if I had wasted his time.
As I've had more opportunities to get out into the world and meet people on other teams and in other companies, I've learned that on some teams, people aren't so nice. Good people may feel pushed to the sidelines or disrespected or deliberately hurt by their teammates. They're afraid to make (or admit) a mistake, because it's seen as a failure rather than a learning experience. They can't raise any issues, because it is perceived as criticism, or they're labeled as complainers. Of course, that means they never innovate or experiment, and the team can't improve.
Testers are often the target of disrespect. Some mean-spirited developers think testers are failed programmers, rather than valuable software development team members. Conversely, testers are often mean to programmers, gloating or finger-wagging when they find bugs.
We know in our hearts and heads that if your project doesn't have good people who are allowed to do their best work, it's going to fail. The various agile development approaches understand this, but they don't all prescribe exactly the same solution. Respect for people is a pillar of Lean development (see www.poppendieck.com for more). The principles behind the Agile Manifesto mention trust, working together, support, and motivated individuals. The XP values outlined in Kent Beck's Extreme Programming Explained are simplicity, courage, feedback and communication. Extremeprogramming.org adds respect to this list. Industrialxp.org includes learning and enjoyment in its list of XP values. The Scrum community's values include commitment, openness, and focus in addition to courage and respect.
Wouldn't we naturally embrace most of these values if we just focused on being nice to each other? Being nice certainly includes trusting teammates and treating them with respect. And, if you know others respect and trust you in an atmosphere of openness, courage comes more easily. All of this helps us work together and communicate better. I know from personal experience that it's more motivating to work with nice people than with people who might hurt my feelings or tell me I've failed. If I'm not afraid to make mistakes, I'm free to experiment, starting with the simplest approach, and keep learning every day. I can fearlessly ask for help when I need it.
I was thinking about this subject yesterday when I read "A Community of Thinkers" by Liz Keogh, Eric Willeke, and Jean Tabaka. Being nice extends beyond our homes and our jobs and into our professional communities. I wouldn't be where I am today without a bunch of nice people in the agile and testing communities. I try to pay that forward every day. I've been hurt by well-known practitioners who have told me things like "You don't know anything about testing." What benefit do statements like that have? We can have a civilized discussion-even a heated one-without being rude and disrespectful.
Some of you reading this may be thinking thoughts