Focus on Delivering Results
A senior software engineer is trusted and expected to do the most important work and to do it reliably. The way to accomplish that is to focus everything you do on the delivery of results.
At a previous job, I was responsible for the purchasing and refund logic of a large e-commerce website. One day, Mary (one of our customer service representatives) emailed me with a problem. Mary was attempting to refund a customer but the system wouldn’t let her, instead giving her a cryptic error message.
I didn’t immediately know what was wrong, so I was about to write her back with the message “I’ll look into it”, but I stopped. What value would Mary get out of such an email? What purpose would it serve to send her a promise, but no real answer? I decided that she deserved exactly one response from me: an email with a definitive answer in it.
I did some research and realized that a constraint of our credit card processor was preventing the type of refund she was attempting. She would have to wait 24 hours from the time of purchase for the refund to go through.
I made a small change to detect this special case and show a more helpful error message. I deployed the change and wrote Mary back with my findings. I explained that, while there was no way to avoid the 24 hour waiting period, she would at least get a more instructive error message in the future.
She sent me a problem and I replied with a solution.
After this, I began to approach every task this way. Instead of making promises or publicizing plans, I resolved to focus on delivering results - and results only - as much as I possibly could. I wanted everything that I produced to be a definitive answer or working code or both.
You must make this change as well. By focusing on the delivery of results, you will become more reliable and your work product will be of much higher value to the company (or yourself).
You might think that the phrase “focus on delivering results” is a simple sound-bite or that you already take a “results-oriented” approach. I used to think this too, but the results and focus I’m talking about are more specific, more literal. Let’s first understand these two terms and then see how this will change the way we work.
On any reasonably-sized software project, there are a lot of deliverables however few of these are what I would call a result. Most teams have some sort of project manager whose function is to keep the team moving, often by facilitating a process for development. To do this, a good project manager will use various tools and techniques such as project plans, estimates, and delivery schedules.
While these are useful, they are fundamentally different from working software and it’s important that you and your team understand the difference. Your company’s customers don’t pay for project roadmaps. Users cannot get their work done with a project schedule or burn-down chart. Working, shipped software is what pays the bills and solves users' problems.
Of course, shipped code isn’t necessarily a result. A result from shipped code is one that causes a positive change in how the business works. Code that doesn’t have a measurable impact on the application it’s a part of is not nearly as important as code that does.
Results are more than just working software, however. As my anecdote above demonstrates, sometimes a result is as simple as a definitive answer to a question. An explanation about how something works is supremely useful, whereas an email that you’ll “look into it” is not.
A result then, is an artifact of direct business value. Working code, documentation, and definitive statements are all results. Anything else must be understood as fundamentally different.
This isn’t to say that project schedules, status reports, and other similar “deliverables” have no value. You just need to treat them as a means to an end, not an end unto themselves. If you start treating progress toward a goal as being just as acceptable as actually achieving said goal, you or your team will lose focus and momentum, and be less and less valuable to the company over time.
Now that we understand what a result is, let’s talk about what it means to truly focus on its delivery.