You've hit a problem you can't solve by yourself. You're stuck and have been for a while now. You could do with help. Before you turn to the next person to ask for help, let's hit the pause and think about the implications for a bit.
Everyone on the team has a certain amount of social capital, a kind of goodwill credit. When you join the team, you start out with a good amount of these credits. But then you start to spend it. With certain activities it goes down faster than with others. Interrupting someone with a good question? Chips away a little. Doing the same, but asking the same question they explained to you an hour ago? It drains it a lot more. Repeating this multiple times? Oh boy, you're going bankrupt awfully quickly and won't have many people to willingly help you.
While social capital is invisible, it's good to be aware of it, use it as smartly as possible, and refill it frequently. So how do you make the most of social capital? Do it by using your social capital smartly. Put in the work upfront, before you use someone else's time.
- Do your research. If your question can be googled, google it first.
- Read the documentation (RTFM). If you are stuck on something that has documentation - an external library, a framework or something similar - go through this resource first.
- Read the code. If you're stuck on the code, read the surrounding code and use code search tools to find clues.
- Debug your issue and narrow the problem space. If you are facing a problem with your code, use your debugging skills. Read through logs, double check assumptions, step through the code and narrow the problem area.
- Ask educated questions. When asking a question, summarize your problem, describe what you've tried, and be specific on what help you'll need. This will not only show to the other person that you've put effort into solving things yourself - it will also save them time to go down the same paths you've already tried.
Don't forget though: you're new on the team or have less experience, you have a lot more social capital and you should ask questions. It's far better to ask more frequent questions the first few weeks on the team than to be stuck for hours, making little progress, and getting more and more frustrated. Just check in with yourself after a few weeks: are you getting along with less help? Are you able to ask more specific questions? Are you succeeding in unblocking yourself more often than before?
Refill your social capital frequently, and do this often by doing the opposite of using it up:
- Express thanks after someone helped you - both to the person, and consider mentioning it in front of the team as well. Describe what you've learned from the exercise that you didn't know before.
- Volunteer to do work that helps the team. This could be as simple as updating documentation, fixing noisy alerts oncall or automating a process that team members previously did manually. It can also be things that improve the team morale, like organizing an event or getting small snacks for the team on an afternoon.
- Help team members solve problems they're stuck on. When you see someone stuck, offer to pair, or talk problems through. Even if you don't know the solution, having someone they can explain why they're stuck could help. Try asking things like "Do you want to rubber ducky the problem on me - explain it to me, and see if it makes more sense?" or offer to do a whiteboarding or drawing brainstorm session.
- Share your learnings with the team. As you learn about new methods, tools or practices by yourself, try these out and share your learnings with the team. These could be writing a new type of test, trying out a new framework. People will appreciate you sharing what you learn: and you'll also inspire others to do so.
Be mindful of your social capital. And after the first few weeks or months, be sure to play it safe, and keep filling it up. If there's an area you don't want to go broke, it's this one.
Featured Pragmatic Engineer Jobs
- Senior Android Engineer at DuckDuckGo. $160K + equity. Remote (Global)
- Senior iOS Engineer at DuckDuckGo. $160K + equity. Remote (Global)
- Senior Software Engineer at Antenna. $140-180K + equity. Remote (US)
- Cloud Engineer at Redox. $120-200K. Remote (US)
- Engineering Manager (ML) at Truebill. $180K+. Washington DC or Remote (US)
- iOS Engineer at Wealthfront. Palo Alto (CA) or Remote (US)
- Senior Software Engineer at Progression. £75-90K + equity. Remote (EU). I'm an investor.
- Senior Product Engineer (React Native) at Attio. £80-130K + equity. London.
- Backend Engineer at Aidence. €70-100K + equity. Remote (Global)
- Engineering Manager, QA at Clipboard Health. Remote (Global)
- Founding Engineer at General Collaboration. $145-225K + equity. New York City, San Francisco, Remote (US)
- Senior Software Engineer at Pave. $185-247K + equity. New York, San Francisco