The power of cultures January 11, 2012

Our world and behaviors are shaped by the cultures and rules that conform it. 1  The power of people and the culture they embrace are some of the most powerful tools in the software engineer’s toolbox, and are also the greatest hurdles.  The best solution to any problem is the non-technical solution, that uses the power of culture and community to achieve a greater goal.2

Engineering Cultures

There are many examples of the deep impact positive cultures have on their populations, no matter how large or small the population is.  For example, take Do-It-Yourself (DIY)- the culture and camaraderie within it have existed for decades.  It’s become a way-of-life for some individuals.  The culture is so powerful, it has even been adapted into a personality trait ala I’m a real do-it-yourself’er.

Similar effects can be found in technical organizations and even within software projects.  Ruby has had a profound effect on the approach and adoption of software testing.  TDD is the norm for Ruby developers (especially those using Rails), to a degree that wasn’t previously seen in other languages or projects.  Likewise, I’d argue that Clojure is causing a “Thinking” culture to emerge- where careful, deep, purposeful thought and dissection of the problem space are the first steps of all ideal solutions.

This concept of “purposeful culture” can be leveraged to boost your own engineering team.

A tale of engineering at Etsy

I credit my experience at Etsy as the first great example of how powerful a team/company culture can be and what results given one.  At the earlier days of Etsy, everyone was more or less equal.  The entire company (at the time I left, 65 employees), was roughly a horizontal organization.  Every idea and criticism was valuable and received the same amount of attention- as long as you had the data to back it up.
We decided as a team (and to some degree, as a family) what was important to us, what we thought we should work towards, and how we should go about doing that.  Employees were valued above everything else.  Being in a room where everyone was a first class employee not only allowed us to get to the winning ideas faster, but made everyone feel important.
Data and democracy ruled.

It didn’t stop there either.  Etsy has continued this tradition of optimizing for the employee and driving all their decisions by real data.  Chad Dickerson sums it up nicely in a talk he delivered at railsconf.

Culture’s effects on process

Effective process comes from effective cultures, not the other way around.
If you want the best possible process for your team, you must first create a culture where the natural outcome is that process.  Here are some things that worked for Etsy and have continue to work for me as I’ve built out engineering teams:

  • Strive to be objective, always.
  • Give everyone access to all points of data
  • Encourage innovation and create clear paths for bringing the fruits of labor before the group
  • Drive ownership across everyone
  • Continual and constant learning
  • Mistakes are ok, Failures are ok, Adaptation is essential
  • Ask “why” more than “what”
  1. Much work has gone into studying the network and behavioral effects of populations given different societal inputs.  See Networks, Crowds, and Markets by Easley and Kleinberg []
  2. Here I’m using powerful in the terms of “work effort over time,” based on an assumption that social interaction amongst people is solving a specific problem.  In the same regards, I’m using best to refer the lack of software/hardware/”systems” engineering in the elegant solution. []