I hate not landing things. And I didn’t land anything this past week.
Last Monday, I was given a task that seemed simple. Like we’re thinking 20 lines changed if you count the unit tests. It ended up taking all the way to Friday to resolve, and the ticket was closed with a PR and a doc abandoned and no changes to the actual product. I wanted to go stand in the rain.
This post is for me to reflect on how that even happened, and to remind myself to give Regina (me) some grace. Shit happens, so I might as well know exactly what “shit” happened and what I could do better to dodge that “shit”. Plus sharing is fun so 💃
Here’s what happened in those 5 days:
- Scope creep. We all had different ideas on what should be done for this ticket and why - it took a day to figure out what’s the goal of this ticket, what’s the tightly-related-but-still-non-goal part we can split away, and what’s the actual done bar.
- Implementation is not as easy as we thought. Classic. 😑 And the more we were trying to implement it, the solution started to feel a bit forced . Really made us wonder if this is really fixing the problem.
- Finally, we were slowly finding out, “Wait, how big is this problem actually?” . By Thursday, we learned that we can expect that the issue was not gonna be as big as a problem as it was previously. Completely tanked the importance of the ticket by Friday. Goodbye, my sweet PR—you will be missed.
Anyway, we’re all about learning from experience out here. I’ve talked to my manager, and here are useful questions he’s suggested me to often check in on:
- What’s the context of this ticket? What’s the problem we’re trying to solve? Why is that problem a “problem”?
- This is also a good time to double check the current proposed solution — sometimes a solution that seemed good at first might not be the best solution once you have a better sense of the problem.
- What’s the “done bar”? What are the conditions that if fulfilled, this ticket is considered resolved?
- “If I don’t do this right now, what would happen?” This is a good way to check the importance of this task compared to other tasks.
I’m teaching myself that it’s okay to take the time to check in often with people. I’ve been on the other side of this where I forge forward on a task without checking in on these, only to come back with a PR that’s not addressing the right thing (too big, or the problem evolved, etc.) or no longer needed. That actually sucks more than being, what, “annoyingly communicative”? “Checks in often”? You see how these are not problems compared to “wasted X days implementing stuff we don’t need”?
And ultimately, honestly, after all that, shit just might not work out. Priorities and understanding evolve—they can get outdated. Hey, maybe the real treasure was, say it with me, ✨the friends we made along the way✨
I’m interested in y’all’s thoughts on this. Have you encountered this before? How did you avoid it?
Top comments (0)