The most important aspect of a company I look for is respect because it drives every interaction among the engineering team, among the company, and with customers.
“No Asshole” Rule
We demonstrate respect in all areas of our work. The agile methodology requires collaboration as a team and with stakeholders. This can only happen if we effectively communicate to each other. If I can’t empathize with a stakeholder or another developer, I could easily say something that would hurt or offend. Now we’ve got a hostile work environment, morale drops, people quit, and the entire company is affected. Nobody wants to work with that guy.
If I talk to others with an understanding of their feelings, I would never say something to create this situation. I would:
- critique the code, not the developer
- never feign surprise
- never dismiss something as “stupid”
- say “yes, and” instead of “no”
We are also optimistic. We understand that no code is perfect, but it can always get better. It is our code, not Developer X’s, so we must all work to improve it. We use the Boy Scout rule (Girl Scouts need apply too!) to keep our code base clean.
There are downsides though. Many of our decisions require consensus - they’re transparent and we hear what others have to say. This causes more overhead to getting things done on occasion, but as our team grows, we discover new ways to balance collaboration and delivering.