As developers, we seem to do things to ourselves that are just plain evil. Perhaps it is a shortcut right now, but sometimes in the future it will come back to bite us hard. This isn’t always what we might consider technical debt, but that can be a part of it. Sometimes we even do evil things just because we are lazy.
When coding, we perform evil by writing legacy code. Code that nobody else can understand, and code that we ourselves will curse at when we come back to it at a later time. We don’t update the documentation when changing something. We don’t bother to read and figure out the intent of the existing tests, if there are any; instead we just add @Ignore
to them, which is an evil in and of itself.
Wasting Time
We don’t test the code we write. We don’t bother to install and run it locally before we just push it up to some shared server somewhere. Even if the rest of the team may be expecting this, we still waste all of their time when an obvious error crops up that needs to be fixed, or the build or deploy pipeline fails in a remarkable way. We are evil by not respecting their time.
Again related to respecting time, we are evil in how we use meetings. This one most definitely isn’t specific to developers, but we are still not innocent in this regard. I know that I’ve personally scheduled meetings and then didn’t even show up on time to them myself. I’ve scheduled meetings that should have just been an email. I know we have all been in meetings like that, and we end up walking away afterwards grumbling about it. But how many of us have later sent some helpful suggestions to the meeting organizer about either how the meeting could have been more productive, or simply could have avoided the meeting all-together? Again, we are evil in not respecting other’s time. It would probably take you less than 2 minutes to give some advice to the organizer, and end up helping him or her save hours of his own time, not to mention hours of other people’s time too!
Process
We are evil in hiding behind processes. “Oh, I’d love to help you, but that’s not in my current iteration” or “We do ‘own’ that service, but we are currently not keeping it up to date because we are working on this other piece of software”. While some of this is truly a guard to keep you both productive and sane, a lot of these types of excuses are just thinly veiled selfishness, and we misdirect the blame to various processes in place. These processes are meant to help us and others get work done, but we often use them to rebuff incoming work in order to avoid it.
Humans have a disease in them that causes them to act in evil ways much of the time; often without even realizing it. It is part of this fallen world and our fallen nature. And it is a disservice to ourselves and others to just ignore this, or even to accept it as the ‘way it is’. Instead we need to call it out and fight back against it every single day.