Mar 21, 2023 · 2 min read · Career Growth and Technical Leadership
The Work Outside the Ticket
My work changed when I stopped treating a merged pull request as the end of a task. I started looking at how the change would behave in production and affect the rest of the system.
Early in my career, progress was easy to see. A ticket had requirements. I implemented them, added tests, opened a pull request, addressed the review, and moved the task to done. That was useful work, and learning to deliver it consistently mattered. Closing a ticket still feels good. Over time at Softcraft, I started noticing that the most important questions often existed outside the ticket. How would this change affect another workflow? Could the deployment be performed safely? What would happen if an external service was unavailable? Would support be able to understand an error? Was the requested solution addressing the actual problem? The code was still my responsibility, but the work around it was too.
Looking Beyond the Ticket
On one enterprise platform, I received what looked like a small request: add one more behavior to an existing backend workflow. The local implementation looked straightforward. The same data, however, was consumed by another part of the application and included in an integration contract. Changing it in one place without understanding those dependencies could make the feature correct locally and wrong for the platform. I spent more time tracing the existing flow, speaking with people who understood the dependent areas, and identifying what needed to remain compatible. The final code change wasn’t large, but most of the work happened before I changed it. The size of the diff didn’t represent the size of the decision. I also had to get out of the habit of mentally closing the work as soon as it reached production. Was it being used as expected? Did latency change? Were new validation errors appearing? Did users find a path we hadn’t considered? Could the team identify the operation in logs if something went wrong? The deployment wasn’t the end of the work either.
After changes like this, I became more interested in what happened outside the code I was editing. I wanted enough logs to see the behavior in production, I paid more attention to the deployment and I asked other people when the change crossed an area they knew better. Not every task became an architecture discussion. Many were still small changes, and I still liked moving a ticket to done. The difference was that “done” started to include more context for me. I wanted to know that I hadn’t fixed one screen by creating a problem in another workflow, and that the team could understand what happened after the change reached production.