Recently started a job as a new grad at a fast paced company. It's not unusual for priorities to change and for previous work to get scraped off. Recently I spent a few days working on a ticket trying to do something that is not possible to do (ie the ticket requirements itself was faulty, the ticket was made by a senior engineer). We only realised the ticket was faulty few days into the task so I had already "wasted" a bunch of days, writing a whole bunch of code, that stayed in my local machine and never got pushed. How do I get "credit" for the work I did that week? Because I don't have any tangible output to show for that week.
This example is a minor example as it only involved a few days. What if it was months instead? What if company focus shifted and whatever you worked on never makes it to prod (or worst case it just stays on your local machine). How do you deal with these situations, particularly when performance review time comes up? Because from what I know, most companies/managers pull the stats from github and use that as a strong indicator of someone's performance.
Great question! If the company is reasonable, they shouldn't hold you responsible for impact since you're a junior engineer as I talk about in-depth here: https://www.jointaro.com/course/nail-your-promotion-as-a-software-engineer/impact/
For junior engineers in particular, it's more about quality of execution as the onus is on your tech lead/engineering manager/product manager to give you projects with meaningful purpose.
This example is a minor example as it only involved a few days. What if it was months instead?
Yeah... This is the painful one. Again, you shouldn't be punished for this as a junior engineer in performance review if the company is reasonable, but working on big projects that flopped has broader implications:
This happened a lot at Meta, and the main way to get credit for it (very important at senior/staff and beyond) is to extract and formalize as much learning as possible. When we had a big workstream that failed, we would always write a long note (effectively an essay/paper) eloquently covering what we did, what we learned, and how this should all affect our product direction going forward. In other words, we needed to make a case that while this failed project obviously didn't have immediate impact, it will bring delayed impact.
It's all about showing value. There was a reason that the work got scrapped, so you should frame this in terms of a benefit for the company: