Julia Evans

How do you make an awesome team?

I was talking to my awesome friend Amy Hanlon (who is a software engineer at Venmo) about teams!!

She was talking about how she loves her team, and how she tries to make her team an awesome team to work on. I thought the idea that you can make your team awesome as a team member (not as a manager!) was really awesome, and I wanted to know how she does it! She told me what she does, and I thought it was so interesting that I wanted to tell you.

Talk a lot about your work in a public channel

She said that her team has a public (to the company) Slack channel, and that probably 95% of her communication with other people on her team is in that channel. Awesome things about this:

  • if you put what you’re working on in public, sometimes someone will know a key piece of information that can really help you! Sometimes people will come in and say something that’s not helpful, but on the balance we think it’s worth it to talk in public :)
  • if you talk about decisions in public all the time, everyone feels like they know what’s involved in the decision making process!
  • if you write down what you’re struggling with and then write down how you fixed it (even if you fix it yourself) then people can learn from what you found!

Ask a lot of questions in public

Asking questions in public is a super awesome thing to do! Some questions you can ask of your team:

  • How should we be doing X?
  • What should we be working on? What should our priorities this year be?
  • Is X or Y a better way to do this thing? why?

Scheduling brainstorming meetings

So the first two things – talk in public, and ask questions are things that I kinda do, sometimes. But a thing that I never do that she talked about is – scheduling brainstorming meetings with her team! These meetings are pretty small (maybe 4 people). I thought this was cool because setting aside time to talk about how we should do something is something I haven’t proactively done a lot, but I think it could be really helpful!

It’s really important to come in with an open mind to these brainstorming meetings – we agreed that we don’t think that our initial ideas about a thing are usually right (“I’m probably wrong 70% of the time”). If I’m not attached to the first idea that I come up with, then we can come to better ideas!

When having a discussion, talk like you might be wrong

Amy reminded me that this is a thing I want to do more!

Suppose we’re trying to decide whether to do X or Y. Let’s say I think that Y is probably the best thing. There are two ways i could approach this:

  1. I think Y is better, explain to me why that is not right
  2. I don’t understand yet why X might be better, but probably you have some different knowledge / assumptions than me, can you help me understand?

Coming into a discussion with the attitude “I don’t know if I’m right, I’m ready to change my mind” (and really honestly believing that) has been really really helpful to me – a lot of the time I do need to change my mind, and I think it’s just a much more productive way.

I do not always manage to do this, but I am trying to get better at it and I think it’s an important part of team-building / working well with others.

Don’t forget you have power over how your team is

This conversation was super inspiring to me because – I sometimes think of teams as kind of a static thing, like either “this team is working well together” or “this team isn’t working well together, I don’t know how to fix it”. But of course I am a member of the team, and it is partly my job to help make that team awesome!

I tried to argue to my manager a while ago “i can’t make my team more awesome, I don’t know how!“. I think I was probably wrong to argue that – like making teams more awesome is not trivial but I think it is something I have done before, at least a little, and something I would like be even better at in the future.

Most of these things are things I already believe (“admitting you might be wrong is important”, “asking questions in public is helpful”), but want to get better at putting into practice more often and maybe more loudly :)

(and of course, this post itself is a public question: how do you make an awesome team? :))

An idea for a programming book Rules of programming experiments