A programmer’s work is never done
A programmer’s work is never done. That isn’t to say that programmers are too lazy to finish the job, or too inefficient to manage their workloads. Quite the opposite, in fact.
The problem with programming is that it’s only ever a work in progress. From cleaning code, to learning new languages, to building the next product integration: there is always one more hill to climb; one more feature to support and maintain.
Some programmers can find this disheartening, others thrive on always moving forward. But why is it the case?
It’s not enough for code to just ‘work’
Maybe you’re implementing a feature, maybe it’s a proof-of-concept. Whatever it is, it’s natural to think that once the code works — once it does the job needed — it’s finished. This is not the case. First you build; then you build better.
As Esther Schindler puts it: “‘The code works’ isn’t where you stop; it’s where you start.” Certainly, when it comes to code, just making it work doesn’t mean that it’s sustainable. Functional code is often only ever a few more releases away from being unmanageable spaghetti code.
So, programmers will often find themselves writing negative code — refining the program so that it works with less code. Then there are code reviews, testing and bug fixing. If a programmer accrued any technical debt getting the code to work, they then need to pay that back.
Making the code work is the starting point. Once it works, the ceaseless task of keeping it efficient, effective and clean begins.
There’s always something else to learn
Every job requires some learning. But in programming, learning is integral, constant and fast-paced. In fact, programmers always need to be learning and improving. After all, technology growth is moving at an incredible pace, so constant learning is a must for any programmer wanting to keep up.
The next new coding language, development style, or hardware adoption is always around the corner. So, one day a programmer might start learning the details of an update in their favourite coding language. Perhaps they need to learn and practice with a new, upcoming language. Maybe they need to learn how to write code that’s compatible with a specific device or operating system.
Then there are the soft skills to consider. It’s all too easy to forget that programmers also have to develop their interpersonal skills. There’s no such thing as a lone tech genius: it’s a myth. Rather, innovation comes from teamwork. So, contrary to popular belief, programmers aren’t excluded from the need to continually hone soft skills.
This makes programming a never-ending educational journey. Be it technical or interpersonal, there’s always something new for programmers to wrap their brains around.
Products need updating and upgrading
You’ve released a product, but that doesn’t mean your work is over. There are now four distinct categories of software maintenance to complete.
There’s preventive maintenance, keeping ahead of security threats. There’s corrective maintenance, fixing the defects that slipped through the net. When new hardware comes out, you need to adapt your software to run on it: aka adaptive maintenance. And sometimes, programmers need to tweak their code to perfect the design, functions and experience of the software. This category is your perfective maintenance.
This vast array of ongoing work hammers home the point that code is more about construction than keystrokes. As with any building project, maintenance is just as important as assembly.
Plus, in software, a so-called ‘finished’ product is usually just the first draft of the next upgrade. The next sprint is always around the corner. Before long, programmers will find themselves working on the next upgrade. The ‘finished product 2.0’.
Keep calm, and carry on coding
It’s hard to call anything truly finished — because it rarely is. There’s always something else you can do to improve, fix, or build upon a project, product or idea. When it comes to programming, always moving forward is par for the course.
So, no, a programmer’s work is never done. But that’s precisely what makes the job worth doing. Programmers are always injecting innovation into the tech world. They’re always improving themselves and their products. And these efforts enable the increasingly tech-infused lives we lead.
So, to all the programmers out there: keep calm, and carry on coding.
Note: We originally published this article here: https://medium.com/swlh/a-programmers-work-is-never-done-7e77e0e3c82a