I often tell my team that there's 2 questions I constantly consider for our team and each individual in it (myself included).
1. Are we working on the right things?
2. Are we working well and efficiently?
What we work on (#1) is extremely important for feature and product execution. But how we work on them (#2) is more consistently in each individual's control and directly tied to career performance and will be the focus of this post. [Should add more disclaimers about #1 being important also, but maybe will save that for another time.]
How we work
It's not unusual for junior engineers to be assigned the similar tasks as senior engineers, but the expectations for execution and output are very different. I've categorized them into a few buckets below.
- Velocity - Code and feature throughput. Frankly, senior devs should be significantly faster and more efficient than juniors.
- Thoroughness and completeness - Error handling, accessibility, globalization, edge cases, testing and automation
- Quality - Pixel-perfection, performance, craftsmanship, eng excellence
- Collaboration and leadership - Driving clarity, working with partners and dependencies, fostering positive energy, generating excitement and visibility.
- You can excel with (almost any) assignment. While managers strive to give level-appropriate work to everyone, reality is that there's work that needs to be done, and "level-appropriate" can have a wide range.
- Expectations are not the same across junior and senior devs. This isn't new, but really worth internalizing. Using others, esp in different levels, as benchmarks for your own performance is dangerous.
- Be intentional and don't play down to your more junior peers, which is especially a risk for seniors working on feature execution.