In the popular imagination, being a programmer is a pretty great gig. Not only do many developer positions command excellent salaries, but programmers get to spend their time writing interesting code that does cool things. Or so it may seem. In reality, programming work--like most kinds of work--comes with its fair share of drudgery. With that said, many of the most tedious roles and responsibilities of software developers are also among the most essential. They are rarely rewarded with praise from other developers or end users, but they keep development operations running smoothly and securely.
Here’s a look at what these essential but unappreciated developer tasks entail, and why they’re so important.
1. Commenting on Code
For most developers, writing code is fun. Writing comments that help other people understand what your code does is considerably less so--especially if you are really concerned (as you should be) with crafting comments that are concise yet explain clearly everything another developer may need to know to interpret how a given chunk of code works.
Comments are also, of course, a critical part of any codebase, especially for applications that may need to be updated or maintained by developers other than their original authors. And even if you are certain that no one other than you will ever see your code, adding comments is still important because you yourself may need them to understand your own code at some point down the line.
2. Writing Documentation
If writing comments is boring, creating documentation brings the tedium to a whole new level, at least for many developers. Writing detailed instructions on how an application works and how to use it is not many programmers’ idea of a good time. Even worse, documentation is a never-ending obligation, because every time you update your application, you need to update the documentation that goes along with it.
Writing documentation might seem less strenuous if it resulted in the accolades of end users. In reality, however, people have a tendency to complain about documentation for being confusing, poorly written, incomplete or inaccurate. You can help mitigate these complaints by following best practices for writing good documentation, but, even then, you’re probably not going to receive flowers in the mail for all the effort you put into documenting how an application works.
Still, documentation is essential for anyone who writes software that other people will actually use. And while everyone loves a good Easter Egg, undocumented features are rarely a good idea.
3. Deleting Extraneous Code
Sometimes, you are having so much fun writing code that you end up with more code than you need. Or you write a feature, only to be told just as you finish it that it’s no longer going to ship. Or you find yourself maintaining an application that someone else wrote, and notice that parts of its codebase no longer do anything.
In these and similar cases, you have to invest time in purging unneeded code from the codebase. That’s slow, tedious work, especially if you’re working with a large codebase that is not documented or lacks clear comments. But it’s essential if you want to keep your codebase lean and mean, and remove the extraneous cruft that will only slow down development operations more and more the longer you let it stay in your codebase.
4. Managing Bug Reports
It’s easy to file a bug report. It’s much harder to close one in an honest way.
Modern bug tracking software is pretty simple to use, and a fair number of software projects (especially open source ones) allow anyone in the world to file bug reports. So, as a developer, you might find yourself having to respond to bug reports not just from your colleagues, but from random people on the Internet. These people may or may not have read your documentation before filing the report or collected all the information you will need to troubleshoot their issue.
Of course, if you simply ignore bug reports, or close them without actually resolving the issue, you end up with buggy software and technical debt that grows larger with time. Developers may not get up in the morning excited to deal with bug reports, but it’s an essential part of their jobs. And although end users may rarely appreciate the work developers put do in this regard, bug reports play a key role in ensuring that the software end users get works reliably.
5. Learning Other People's Code
Stereotypically, at least, developers are an egocentric lot. Each programmer tends to think his or her code is the best, and the rest is rubbish, as they say in Britain.
Unfortunately for such developers, learning to work with code written by other people is often an essential part of programming jobs. It’s rare to be in a position where you write all the code yourself and never have to manage legacy applications produced by programmers of bygone generations.
Understanding why other programmers chose to structure their code, name their variables or indent their lines in the way they did may not be pleasant, but it’s critical to being a productive developer in a world where coding in most cases means collaboration.
Whether you’re an elite hacker or just a cog in a corporate programming team, being an effective developer means performing tasks that are unlikely to be very fun or earn you much glory. And while it’s easy to write up reasons why it’s so great to be a programmer, keeping in mind the less-than-amazing requirements of the job is important, too.