Has everyone watched Mr Robot? It’s a great Amazon Original series about a hacker who works for a security company and he [SPOILERS]. I’m going to assume you have. If not, you should go watch it now, and all you need to know for this episode is that in episode three the protagonist monologues1 throughout the episode about bugs and the nature of them, and because originality is for losers, I’m gonna use part of that monologue here to do some of my own monologuing. Monologue is no longer a word. MONOLOGUE.
The blog post will have the whole monologue but I’m not going to read it out. A lot of this is for dramatic effect, plot, and the nature of the character, but there are some points there.
A bug is never just a mistake.
It represents something bigger.
Okay, so sometimes a bug is just a mistake – mistakes happen, people are human etc. However, sometimes it’s worth just checking in and seeing if there is an issue. Sometimes it could just be the issue is a typo, distraction, something simple. Sometimes it could be a symptom of something deeper – fatigue, inexperience, maybe even something more serious, like a health issue. It’s worth the time to check in, even if it’s with yourself if you find you’re making mistakes. It could mean anything from taking a break and getting a drink of fresh air to more substantial action.
When a bug finally makes itself known, it can be exhilarating, like you just unlocked something. A grand opportunity waiting to be taken advantage of.
I assume this is actually more like finding the cause of a bug for a developer, right? I mean, finding a bug isn’t a huge revelation to me, but figuring out the pattern of a weird bug, or getting to grips with a particularly complex piece of functionality feels like a win. And having a piece of work come to me and it work as I expected it to also feels like a win.
It did take me a while to divorce not finding any bugs from productivity in my mind – if I’m not finding bugs how do I prove my worth? But I’ve realised that the work I do upfront reduces bugs in a way, or at least reduces ambiguity, which leads to less issues from the client, and that’s part of my worth.
Bugs are useful, or they can be, but I don’t think finding bugs is the only way I can be valuble.
The bug forces the software to adapt, evolve into something new because of it. Work around it or work through it.
No matter what, it changes.
It becomes something new.
The next version.
The inevitable upgrade.
I just really enjoy this section – the idea that the bug forces the software to evolve, to work around, like Darwinism in binary. The inevitable upgrade – code is never finished, it’s only ready to ship, then we continue working and ship, work and ship, a constant building, improving, changing of code. And that’s why we test, right? To ensure that the constant evolution is a good thing, not something likely to end up on WTF Evolution2
I just like the idea of bugs being good things; even if I don’t celebrate finding them. I like the philosophical approach, even if the cause does end up being a simple, silly mistake (because this isn’t tv, not everything has a deep meaning, nor is it burdened with glorious purpose).
It’s a good episode of a good series, and I highly recommend it.