When IT professionals talk about technical debt, they’re usually referring to inefficiencies that undercut the productivity of an organization. But the pitfalls of technical debt don’t end with businesses. Technical debt can affect individuals, too. In other words, it’s not only enterprise-level applications and infrastructure that can become ridden with technical debt. The software and hardware that IT pros use to do their jobs can also be a source of technical debt.
This type of technical debt, which I call personal technical debt, is a real problem. Not only does it undercut productivity, but it makes the jobs of IT pros less enjoyable and more frustrating.
Here’s a look at some common sources of personal technical debt and how IT pros can address them.
What Is Technical Debt?
Before delving into examples of personal technical debt, let’s make clear what technical debt means.
In a nutshell, technical debt is any kind of shortcoming within an IT system that forces the system’s users, or the system itself, to perform extra work. (Some folks restrict their definitions of technical debt to problems that are caused by poorly written code rather than other problems, but I prefer a more expansive definition that includes any type of technical shortcoming.)
Technical debt could be caused by poorly written code that causes an application to take longer than necessary to start, leading to wasted time each time the application launches. It could be the result of failure to compress data before transferring it over the network, thereby causing transfers to take longer and consume more bandwidth. It could be caused by an application that logs data in a non-standard format and requires admins to translate the logs before they can parse them.
In these and similar scenarios, technical flaws result in recurring “interest payments” in the form of extra time or labor. If the underlying cause of technical debt were addressed, the need to pay this interest would disappear.
Personal Technical Debt
As noted above, most conversations about technical debt focus on how technical debt impacts the large-scale IT systems used by businesses, not individuals. But if you step back and analyze the hardware and software tools that you rely on personally to do your job, I'll bet you’ll find some significant sources of technical debt there, too.
For hints on where to look, consider the following examples of personal technical debt, drawn from my own experiences.
1. Failure to Sync Your Devices
If you’re like most IT pros today, you probably rely on multiple devices to do your job. You might do most of your work from a workstation in your office, but use a different machine when you work from home. And you probably use a mobile device or two on occasion for work-related tasks.
There are good reasons to have multiple devices at your disposal. But, if you’re like me, you haven’t taken the time to set up full data syncing between those devices. Although I sync most of my work files using a cloud-based storage service, I don’t sync other important information, such as Web browser data. The result is that, for example, when I am working on one device and want to find a website I visited recently on a different one, I have to find the site again manually, rather than simply looking in my browser history. I have a similar problem with passwords: On some of my devices, I use a password manager to store all of my login information. On others I haven’t set up the application, so I have to try to remember my passwords--or, as is more often the case, reset them--in order to log in to my work tools.
Solutions (such as Firefox Sync) are readily available to solve these problems. Most mainstream Web browsers offer services for syncing data among multiple devices, and password managers can also work across different devices. I just haven’t taken the time to sit down and set up these tools on all of my devices. And that’s one reason I am in personal technical debt.
2. Lack of Cloud Storage Space
I mentioned above that I use a cloud-based storage service to sync files between my devices. That comes in handy in lots of ways, but I do have one major problem with it: I’m constantly running out of space. As a result, whenever I need to add a new file of significant size to the storage service, I typically have to move other files out in order to make space. This requires tedious manual effort that wastes time.
One simple solution to this conundrum would be to increase my storage quota. But I can’t convince myself that paying more for extra storage is worth it. I could also try automating the management of my cloud-based files by, for example, writing a script that would periodically identify which files I haven’t used in a while, then move them out of the cloud in order to free up space. Of course, that would leave me at the risk of accidentally removing files that I still need, even though I haven’t opened them recently.
In short, I’ve yet to find a good solution to the challenge of running out of storage space, and so I’m left paying interest on technical debt whenever I add a new file to my cloud storage service.
3. File Backups
Speaking of files, another major problem they pose is the difficulty of backing them up in a reliable way. While the files that I store in the cloud are backed up there, I don’t do a good job of backing up other data.
I suppose I’m a bit ashamed to admit that; I spend part of my day telling other people how important it is to keep their files backed up all the time. And I fully realize why backups are important. I just do a poor job of acting on my own advice. For the record, I do back up my files to removable disks. The problem is that I don’t have a regular backup routine; instead, I do the backups manually, on an ad hoc basis.
Not only does this approach leave me at risk of failing to back up an important file, but it also wastes time. It would be much more efficient and safer for me to automate my backups and make them happen automatically on a periodic basis.
Here again, though, I have yet to invest the time in setting up such a solution. And so I’m technically indebted.
4. Software updates
Like file backups, software updates are something that everyone should perform routinely and automatically. Also like file backups, software updates are something I fail to complete in a responsible way.
Instead of enabling automatic updates to ensure that my operating systems and applications are always as up to date as practicably possible, I disable most automatic updates and wait until the fancy strikes me to let my systems download and install patches.
Why, you ask? The reason is that automatic updates, in my experience, have a way of sucking up network bandwidth and CPU time right when I’m in the middle of doing important work. They sometimes even force a reboot. Because I don’t want to be interrupted, I disable automatic updates. The main price I pay for doing this is the inefficiency of running software that is not always up to date. I also have to perform updates manually, which is not an efficient use of my time.
What this amounts to is a short-term gain--not having my workflow interrupted by updates--in exchange for long-term inefficiency. That’s technical debt.
The examples of personal technical debt that I’ve listed above are drawn from my own IT life, which may or may not resemble yours closely. I hope that most folks are more responsible than I am, and don’t let so much personal technical debt creep into the hardware and software that they rely on.
But I also suspect that most of us--even those of us who work in IT and should know better--live with at least a little personal technical debt that reduces the efficiency of the systems we rely on. If you’re looking for a way to reduce the overall technical debt that affects you and the organizations you support, your personal IT systems might be a good place to start.