After a 5-year stint, Kellan Elliott-McCrea, left Etsy. Elliott-McCrea was Etsy's CTO for the past 4 years and VP of Engineering before that. During those five years both the software product and the engineering team underwent radical changes. In the article announcing his departure, Elliott-McCrea expounds five theories that guided him through those changes.
Back in 2009, Etsy, a large online marketplace for handmade goods, was struggling to scale. The site reliability was worse than it should due to an architecture stemming from a pre-DevOps culture. The developers, the DBAs and the sysadmins all worked on their own silos. Deployments were large and infrequent. Developers couldn't touch production. These were pre-DevOps days - the first DevOpsDays conference, at Ghent, happened in 2009 - so at the time this was the most common way of developing and operating web sites.
When Elliott-McCrea joined, change was already on the way, so there was an opportunity to test his theories.
Theory 1: Nothing we “know” about software development should be assumed to be true.
Building software is a team endeavor but most tools, processes and mental models for developing software assume solo developers.
Theory 2: Technology is the product of the culture that builds it.
Culture is the foundation upon which everything else is built. Culture allows you to scale in a loosely coupled way. And culture is how you act, not how you talk.
Culture does not mean monoculture. As Elliott-McCrea puts it: "Five years ago, suggesting that better software is written by a diverse team of kind people who care about each other was antithetical to our self-image as an industry."
Theory 3: Software development should be thought of as a cycle of continual learning and improvement rather a progression from start to finish, or a search for correctness.
Etsy deploys dozens of times per day, so that it can learn and improve. Interestingly, Elliott-McCrea says that "maturity is knowing when to make the trade off and when not to."
Theory 4: You build a culture of learning by optimizing globally not locally.
Improvement must reach the whole team, with shared beliefs, tools and mental models. Relying upon a few rock-start programmers is neither the best solution for high productivity nor as satisfying as a whole.
Theory 5: If you want to build for the long term, the only guarantee is change.
Your current answers are either wrong right now or they will soon be. So the team must continuously ask questions, posit theories and test them to find the new answers.
One distinct aspect of the engineering team's changes is how it opened itself to the world. This culture of openness brought about many open source tools. Some of them are quite well known, such as StatsD, a metrics aggregator, Logster, which generates metrics from log files. Etsy's presentations also became a common feature of many conferences around the world, where its engineers speak about all aspects of software engineering, both technical and cultural. Etsy also hosts guest speakers at its Labs, in Brooklyn, on a semi-monthly basis.