Tag Archives: mentoring

Being a good colleague

It could just be my impostor syndrome but I’d never claim to be a good developer. I’ve always felt like I was more of a hacker, and not in the cool movie sense. But I’ve gotten enough feedback that I think I feel comfortable claiming to be a good colleague. At the very least it’s something I put a lot of effort into being. I do find it challenging because until someone gets to know me and builds a little rapport, I feel I can be off putting. I’m often blunt, have difficulty with eye contact, speak in monotone, and I’m very introverted. So what do I think makes a good colleague?

  1. Be kind. Mr. Rogers is a big hero and inspiration of mine and probably said it best: “There are three ways to ultimate success: The first way is to be kind. The second way is to be kind. The third way is to be kind.” Everyone is going through something, often something you don’t know about. Try to be empathetic. Give people grace when they have challenges. Be the person you’d want to encounter when you’re struggling the most.
  2. Build people up. Compliments are free, sincere ones are invaluable. We all are a bit unsure of ourselves. Try to be observant about what you like most about your colleagues, then tell them about it – preferably in front of others. Remind them that they’re awesome. Build confidence in others, even if you struggle to have it in yourself.
  3. Offer solutions, not just problems. Often as a developer I’m presented with a solution to build. Sometimes it’s one I feel is non-ideal. But we have to be mindful that everything is a tradeoff. There is an adage I enjoy that basically says: “good, fast, or cheap – pick two”. So when presented with a solution that you feel is non-ideal or you’re not sure will solve the problem, try to offer an alternative and why you’re suggesting it. Not just “we shouldn’t do that” but “we should consider doing this instead and here’s why”. Sometimes you just have to dig deeper too: “what is the problem we’re really trying to solve here?”
  4. Strong opinions, held loosely. This was one I struggled with for too long in my career. We should have and offer opinions, and be able to justify why. But we should also recognize that we work with a lot of smart people that also solved a lot of problems to get to where they are on our team. So we need to be open to new ideas, information, and be willing to compromise. There’s always someone smarter or better than you, even if (especially as a developer) it’s hard to admit that sometimes. Some of my favorite colleagues over the years were low ego – they would tell what they thought, they would back it up with data or examples, but if you went another way as long as they had a voice at the table they didn’t take it personally. Those are some of the best developers to work with.
  5. Accountability. Admit when you’re wrong or don’t know something, especially when you’re a senior colleague / developer. People earlier in their careers think it’s bad to say “I don’t know, but I’ll find out / research it” when presented with a problem. They often feel it will hurt their career. So if you’re a senior developer and you can admit you don’t know something or that you made a mistake it gives them permission to do the same. Which allows them to grow and become better colleagues. Plus having a team where it’s ok to do this prevents people from hiding things only to find out about them at a worse time – like when something goes to production. Also, ancillary to this, as a developer QA is one of your best friends. They are literally helping you look better. Be respectful of and thankful for what they do.
  6. Be additive. For this I can only mostly speak to developers and code review. Offer good, useful constructive criticism. It doesn’t have to be perfect, just a little better is often good enough. Leave things better than you found them – if you’re working in a section of code and it’s non-ideal, don’t just fix the thing you were there for, clean up that function / component. But also don’t rewrite the whole application. Finally you’re often going to have to make non-ideal solutions for some reason – document why that compromise was made. Others coming after will appreciate it, including future you who will have forgotten why you did this and be very critical – until you git blame and realize it was you.
  7. If you have privilege, use it responsibly. Magnify others, talking them and their contributions up especially in front of stakeholders or skip level leadership. Listen to them. If they mention in private conversations questions they have but might be uncomfortable to ask, ask them yourself without mentioning their name so they get answers without risk. Offer advice, especially what you might have done differently at that stage in your career. Admit past mistakes. We’re imperfect and the sum of our mistakes. That’s a feature, not a bug. 
  8. Mentor. Pass on knowledge, tricks, tips, why you do things or use tools you do. Make it easier for the next generation. Advocate for them – more responsibility, better title, promotions. Write them recommendations and help them build their network. You had help along the way, pay it forward. Not everything has to be transactional, sometimes it’s just about putting good out in the world and hoping that it improves for all of us collectively.

I know, nothing new or mind blowing. All just a flavor of Wheaton’s Law or the Green brother’s “don’t forget to be awesome” or really all the things Mr. Rogers taught me growing up. Still, I think it’s worth repeating and being mindful of.