15 ms·
We Invite Everyone at Etsy to Do an Engineering Rotation
- drderidder 12y agoKudos to Etsy for doing this. I think there's great value in learning basic programming skills even if not everyone has the inclination to become a software designer. Kind of like how taking music lessons has all kinds of tangential value even if the student doesn't turn out to be another Van Cliburn.
- frsandstone 12y agoThis is awesome.
- zavulon 12y agoIt's a great idea, but I'm having difficulty understanding the specific task non-coding employees are doing: adding their own photo to Staff page. Shouldn't there be a nice user-friendly back-end interface that would let them do that in about 10 seconds without any code knowledge?
- bradleyankrom 12y agoThat probably exists, too, but I think the idea is to expose folks in non-engineering roles to the code without it being overwhelming.
- Fomite 12y agoIndeed. I've seen this in academic labs as well that have a lot of undergrads exposed to research - deliberately keeping something undone, or less efficient than it might be to have an experienced postdoc do it, do that someone without a lot of experience can get their feet wet without having to try and tackle a full-blown project (coding or otherwise). "This is what we do and how we do it" with a non-critical system that's approachable seems to be a great way to set up rotations.
- blktiger 12y agoI assume it's more about understanding the processes. Once they understand how everything works, they probably just add the image to the code base and add an html tag to the about page. Nothing complicated, and it doesn't sound like they are really "coding" but it seems like the idea is more to give them some perspective on how the engineering team works.
- mcfunley 12y agoOne answer is that it's convenient to have the task around for engineer first-day deploys, which serve a greater purpose. A second answer is building a database-backed CMS to replace editing html for every dumb page on the site would be a boondoggle and not an improvement.
- kellanem 12y agoWe actively resist automating this process. Because of the way Etsy development is structured this gap gets fixed periodically and then we have to go back and un-automate it. It's a key part of our 1st day push program: https://codeascraft.com/2012/03/13/making-it-virtually-easy-to-deploy-on-day-one/ https://codeascraft.com/2012/03/13/making-it-virtually-easy-... Also it would violate my first rule of engineering which is: "Never build a CMS"
- zavulon 12y agoThanks for the explanation. Totally agree with "Never build a CMS" rule. But why not use a pre-built CMS in the first place? Either use Wordpress, or a CMS plugin for your framework if you're using something like ROR. If you're not using a CMS, how are you updating the copy on pages like About? Does that process require a developer each time?
- chucklarge 12y agoThe Etsy blogs use Wordpress, so we do use existing third-party tools where is makes sense. Kellan might have a rule to not build a CMS but we certainly have built one to manage help page content and other knowledge base pages. That content is largely managed by our support staff. I wrote the current tool but it is actively being replaced. We chose to to roll our own since we'd have to do some work to integrate a third party tool into our database architecture and authentication system. The tool is heavily integrated into other internal tooling and has specific workflows that also make using an existing tool challenging. The About page content is largely static, aside from the staff photos mentioned in the above post.
- machinshin_ 12y agocan you explain this? i've always thought a CMS is a good thing to allow non-engineers to work with and edit non-critical data like this.
- bojo 12y agoI think the point is "use existing technology" vs. "roll your own."
- badmadrad 12y agoFrom a UI perspective, I don't love Etsy but I think they really have a world class engineering team. This not the first time I've heard of good things from that outfit.
- Wonnk13 12y agoGreat idea. I'd love to see a writeup about a rotation in the other direction, ie give engineers a taste of the business side of the house. As a data scientist I speak a lot with Sales and Engineering and sometimes the two teams seem worlds apart...
- sharkweek 12y agoDifferent leadership roles in our company spend the occasional day on different teams. Whether that be IT on the phone doing sales or someone from engineering writing ad copy, etc. Obviously the direct output isn't great but the experience is always beneficial.
- lexap 12y agoA customer service rotation for everyone in the company is more important.
- indymike 12y agoI think sales may be more important. Getting an appreciation for how hard it is to get a customer would alter how a lot of engineers think about features. Customer service is honestly easy in comparison.
- einhverfr 12y agoAgreed, but one huge problem here is that getting a customer often requires more than a checklist of features, but rather a product that solves a customer's problem well. I agree that sales, support, and engineering should all have rotations. The sales and support give you very different insights into what customers need which help you out with your engineering.
- tomjen3 12y agoIf you want your good engineers to leave you, yes. Oh and have even less care for your customers after that.
- 12y ago
- pvnick 12y agoThat is just the coolest idea ever. For non-engineers, software can be a sort of black box filled with "code," whatever that means. This knowledge gap frequently leads to conflicts when engineers take longer to build a feature than non-engineers would like, or when things break that just seem so simple. Getting everybody involved in the deliberate, painstaking process of writing quality software is a fantastic way to ensure the everybody is on-board with the way code is written and minimizes interdepartmental friction. Kudos to Etsy!
- karmacondon 12y agoI'm a huge fan of cross disciplinary rotations of all types. A startup company, or any organization, should act as a unified whole. "It's not my problem" is not an option, especially when the company is small and the stakes are high. Sales depends on engineering which depends on support and management, an interconnected web. Rotations build empathy, lead to innovative thinking from outside perspectives and give people greater context. I've proposed them at several of my past jobs only to be shot down each time. It says a lot about the management of Etsy that they encourage designers and product managers to do a rotation on the coding side, when I wasn't able to convince my team leaders to let php developers from one project rotate to work on another. "Human resources" has come to mean paperwork and discipline, but the real value of the term is much closer to its literal meaning. Developing peoples' innate capability is very important. Any company can compete to hire the "best people", but the really smart companies put that effort into increasing the value of the people that they have. The capacity of the human mind is one of the broadest and most versatile things in the universe, but most of us quickly settle into limiting patterns of thought. Just a few days of seeing things from a new perspective can make all the difference in the world. Etsy's engineering rotations seem like fun, but I think they will pay off in a big way. It's hard to put a number on increasing teamwork and understanding. Programs like this are a great way to maximize that value.
- pnathan 12y agoI'm continually impressed by Etsy Engineering's descriptions of their practices and process. Rotations are a wonderful idea and, IMO, should be done more regularly.
- code_duck 12y agoTheir descriptions of their practices and processes are the best part about their practices and processes. For all of Etsy's talk about how wonderful they and the enlightened philosophies that drive them are, it's very hard to see evidence of this working with them as a customer or developer.
- deleted 12y ago[deleted]
- Havoc 12y agoWish my employer had that. I'd kill for an engineering / IT dev rotation...since those we're close 2nd & 3rd on my choice of career.
- robertwalsh0 12y agoI loved everything about this article. At my company, we've also found that providing spaces where people are able to work in a cross-disciplinary fashion gives the opportunity for innovative ideas. Every Thursday, a team member is paired with another from somewhere else in the company. While say, a marketing person can get to learn tech – it's also very rewarding to an engineer to be able to work with a marketer or a sales person to see that side of the business. Exposing a marketer to engineering may help her have epiphanies like, "i might be able to track how effective my last campaign was by doing X" and an engineer might think about things that could be added to a feature to maximize user growth. We wrote a blog post about our intra-company pairing here: http://blog.scholasticahq.com/post/91759651948/pairing-thursdays-how-we-keep-our-team-sharp-by#.VJhVvsABA http://blog.scholasticahq.com/post/91759651948/pairing-thurs...
- radicalbyte 12y agoIt's not just tech companies doing this. At Volvo we did it as part of our continuous integration process. It was great fun, it really helped you to understand the business better.
- Fomite 12y agoMany academic departments do this as well, to give people exposure to lots of different projects in their first few years of graduate school.
- productcontrol 12y agoIt is true, i used to clean the bathrooms there and i went on code rotation, or as we called it "stink patrol". I thought the stalls were bad, but man, that codebase was far worse!
- pkaye 12y agoI wonder how to do this with engineering that requires deep knowledge. At my work we have SoC designers, layout, analog designers, board layout and firmware among the engineering departments. I don't think we can even rotate within the engineering departments as everything is so specialized.
- sytelus 12y agoThis should be also applied to within engineering teams as well. Employees when encouraged to move from team to team after certain intervals (such as 3-4 years). There has been argument that this doesn't allow people to specialize but I feel 3-4 years is long time after which returns are probably diminishing in developing specialization. This keeps life interesting and you get insights on how other teams work, their process and tools etc.
- gohrt 12y agoThank you for not putting "Why" at the beginning of the article title.
- frostmatthew 12y agoI like the rotation idea, but I can't say I see much logic in the desire to have new engineers deploy to production on their first day mentioned/linked in the opening. At VMware (or at least on my team) we try to have new engineers commit code their first week (this doesn't always work out, and when it does it's usually the 4th or 5th day) and I almost feel that's too soon...first day just seems nuts. You don't see this in other professions, e.g. I doubt doctors are performing surgery or lawyers are going to court on their first day at a new hospital or firm. I'm just not seeing the value in having someone commit code before they're possibly familiar with the codebase and [unless it's a product they used before getting hired] may be equally unfamiliar with what the product even does.
- rahij 12y agoIn my experience, I think it has more to do with getting an engineer acquainted with the pipeline from writing code to getting it live on production. Once he/she is familiar with this, it takes a huge barrier out of the way for the person to be productive whenever they are ready to write some non trivial code in the codebase.
- enjo 12y agoThat's exactly right. It's not about pushing meaningful or complex code to production, it's about pushing a small change so that a new engineer can see the whole process from end-to-end. We do have people push on their first day here at Gridium and I think it's really beneficial. The new engineer sees how we work, and the rest of the team sees that new name in the git logs, on chat, and everywhere else. It sends a strong message that there is a new member of the team who is going to be contributing from now on. It helps to establish cultural norms (everyone makes a big deal out of that first commit which is fun). I really like the effect it has on our team. Even changing two characters in a string feels like a big deal and that's awesome.
- frostmatthew 12y ago> it's about pushing a small change so that a new engineer can see the whole process from end-to-end Is that really an accurate portrayal of the process though? Most changes aren't small and take days of development, not minutes or hours. Not to mention code reviews and QA.
- hw 12y agoAs much as the rotation idea is interesting, and can be beneficial on the surface, I'm not sure if doing so on a recurring basis provides more value than interruption and the setup/teardown costs of context switching. Sure, a non engineer could learn a thing or two about how code works, and an engineer as well on handling support, but I'd be cautious about these sessions leading to a false sense of understanding how things actually work, which might eventually lead to, for example, a support person making wrong assumptions about an issue a customer is having just because he/she paired on the relevant code base. IMO cross disciplinary 'rotations' should happen naturally, instead of making it explicit on a certain day in the quarter. Engineers should have exposure on a day to day basis on what customers want as well as have exposure to the product and business side of things in the planning stage of a sprint, understanding why a story or task is prioritized the way they are, etc. Same goes for non engineers like product managers or support personnel who often deal with engineers on an ongoing basis, and the sharing of technical knowledge should come naturally with each discussion.
- logicallee 12y agoThis is like an opera company inviting everyone - altos, contraltos, baritone and bass male singers, the conductor, the symphony orchestra - to do a rotation as a soprano singer.
- deepGem 12y agoThis is really cool. What would be awesome is a design rotation for engineers. The way some of the top designers work is a joy to experience. Even their scratch book looks so well organized.
- kevinSuttle 12y agoSo many parallels to other industries. The greatest chefs often describe how they'd held every job in a restaurant before becoming chefs.