Presentation: The Effective Remote Developer
What You’ll Learn
- Learn how to become not only a productive member of a distributed development team, but also how to better communicate with, mentor, and guide developers from a remote location.
- Understand that even given all the tools such as video chats and conferencing, building and maintaining trust is the real key to working effectively with others remotely.
- Hear how Stitch Fix has built a culture of responsibility among its developers where code talks and showing demonstrable results speaks volumes.
Abstract
Being on a distributed team, working from your home or coffee shop isn't easy, but it can be incredibly rewarding. Making it work requires constant attention, as well as support from your team and organization. It's more than just setting up Slack and buying a webcam.
We'll learn what you can do to be your best self as a remote team member, as well as what you need from your environment, team, and company. It's not about technical stuff—it's the human stuff. We'll learn how can you be present and effective when you aren't physically there.
QCon: You are the senior-most contributor to Stitch Fix, what does that mean?
Dave: In a lot of companies I might have the title of architect, but it's very much not that title to emphasize that I'm working on projects. I'm thinking about the technology, whereas a VP of engineering or a CTO might be thinking about the people and the strategy; I'm thinking about whether the technology is going in the right direction and what am I doing to make it go in that direction.
QCon: Your talk is about being a remote developer -- being the senior most contributor at Stitch Fix and being a remote developer. That alone has to have a huge amount of challenges.
Dave: Yeah, and in fact, the more you get away from coding 100 percent of the time and talking with people, the remote situation becomes harder. Video chat is great, but it's not the same as being in person. So, you really have to double down on being good at communication and being clear, forming relationships, and building trust with people. Because if you don't trust somebody they're going to think you're a talking head or a person that generates email and it's really hard. So, it's challenging but I think it's achievable.
QCon: My past job was an architect at HP and I spent probably 10 to 15 percent of my time writing code and about 40 to 50 percent of the time in meetings and the rest of the time was usually mentoring, firefighting, helping people with code issues, working through tracer bullets and those kinds of things. How do you do that as a remote developer? How do you pair up with somebody and work through a problem?
Dave: It's tricky. We try to do things asynchronously, like a design doc, even if it's just a one-page, quick thing so we can be aligned before we before we sync up. Maybe write a spike of code and then talk about that in a pull request. But you have to schedule time if you want to be synchronous, so I'm still trying to figure it out, because I can't have a one-on-one with all 80 people that work for us. Do I have office hours or do I just focus on certain projects? I think that trying to decide what are the things that I just can't focus on so I can focus on these others is the only way it can work.Scheduling time to have ad hoc conversations is a little weird, but if you get past it it does work.
QCon: I would assume the audience you're talking to in this talk are developers -- SEs or senior SEs?
Dave: Yeah
QCon: What do you want that persona to leave your talk with?
Dave: One of our values at Stitch Fix is called responsibility and it's a mindset that means you take control of what happens to you as much as you can. So, what I've learned being remote is that responsibility. So, what I've learned being remote is that while I need the company to do things for me, there are many, many things that I can do that I have complete control over. And, I wouldn't do them without being intentional, and making sure I do them. And that is what makes it work.
So, Hopefully it will remind people that they are in control of their own destiny. And here are some specific things that if you do them consistently will help regardless of how much support you're getting on the other end.
Wes: Can you give me an idea of one?
Dave: One of them would be to adopt the mindset of assuming good intentions. Right so text is cold and harsh. Even these video conferences can be rough. But if you just assume everyone is trying to help and everyone is a good person and good at their job, then you're just going to approach every problem better. But you have to tell yourself that a lot before you learn it because it kind of goes against a lot of what developers feel. So, a lot of the stuff in the talk is about the mindset we need to adopt. And then there are a couple of behaviors that that mindset might drive.
QCon: What do you feel is the most important practice, technique or technology that a lead developer should be focused on today?
Dave: In general, I would say finding a way to drive things to completion expediently. Remote or not, getting things done, showing a result that is demonstrable and clear is super-important. Because talking about a result is way better than talking about a theoretical thing you can do. Having a result is great. And that's what we're here to do as developers, is to get things done, deliver them and do it well.
Similar Talks
Scaling DB Access for Billions of Queries Per Day @PayPal
Software Engineer @PayPal
Petrica Voicu
Psychologically Safe Process Evolution in a Flat Structure
Director of Software Development @Hunter_Ind
Christopher Lucian
PID Loops and the Art of Keeping Systems Stable
Senior Principal Engineer @awscloud
Colm MacCárthaigh
Are We Really Cloud-Native?
Director of Technology @Luminis_eu
Bert Ertman
The Trouble With Learning in Complex Systems
Senior Cloud Advocate @Microsoft
Jason Hand
How Did Things Go Right? Learning More From Incidents
Site Reliability Engineering @Netflix
Ryan Kitchens
What Breaks Our Systems: A Taxonomy of Black Swans
Site Reliability Engineer @Slack, Contributor to Seeking SRE, & SRECon Steering Committee
Laura Nolan
Cultivating High-Performing Teams in Hypergrowth
Chief Scientist @n26
Patrick Kua
Inside Job: How to Build Great Teams Within a Legacy Organization?
Engineering Director @Meetup