Its common to discuss the production environment in public but it is a black art on how to construct the development environment correctly, in fact it is a common problem that development doesn’t closely mirror the production experience. However, if you think about how much time an engineer spends in the dev world, it is actually one of the most important things to pay attention to and get right. This is a largely unsolved problem that Etsy has put a lot of effort into solutions for. We will address why it’s important, some common anti-patterns, and how it can be done correctly.
The further the development environment is from production, the more of a “throw it over the wall” mindset is introduced into your culture. Conversely if your development environment closely reflects production its easier to instill a culture where developers have more emotional attachment to what happens after they finish writing code, and can deploy their product and better understand how it works.
The development environment should not be haphazardly thrown together, otherwise its difficult for new developers to get up to speed and for everyone to have a consistent understanding of how that code works when its put into production. This is error prone and introduces bugs due to the fact that the code is running in different worlds, and debugging these problems can be even more difficult. Therefore it is important to have a reproducible environment that is maintained by means of configuration management. If not people will too quickly fall out of sync with each other and production itself.
There are several common anti-patterns that we will go over which we’ve seen over the years at various companies that should be avoided when setting up the development environment. We’ve also talked to several large companies about how their development process works and will go over the various pros and cons as well as tooling that works for people including what works for Etsy. We’ll cover how we keep dev in sync with prod, how to experiment with and add new services, communication for maintenance windows, and how we leverage our internal cloud based infrastructure to keep the environment fluid.
The development environment is something that should not be taken for granted and is something that Etsy takes seriously. We’d like to pass on what we’ve learned to you so that you can avoid the common pitfalls of a misconfigured development setup and have a comprehensible and transparent system that engineers understand.
John Goulah has been working in New York City over the last several years for a number of web sites in both technical and management roles, as well as the co-founder of several startups. Having spent much of his youth touring in rock bands and hacking from the road, he is no stranger to crowds, be it a smoke filled room or presenting to the company board. He strives for non mundane tasks and has automated himself out of his last few endeavors, which has landed him in his current role as an Engineer at Etsy, the leading marketplace for handmade goods.
Erik Kastner has given presentations large and small, from the international Rails conference to informal company brown-bag. He strives to find the laziest way to get things done – even if it ends up being a lot more work. Automation, exploration and the simple joy of building underpin just about everything he does. Other than a strange, dream-filled few years in San Francisco, Erik has lived in New Jersey his whole life. He works at Etsy in Brooklyn hand-crafting code, crafts and tools.
For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or firstname.lastname@example.org.
View a complete list of OSCON contacts