I’m feeling the same thing I felt several months ago when I find myself lacking the motivation to write codes anymore. I’m starting to question myself, asking what I am actually doing and why am I doing this.
The reason for my doubts stemmed from what has happened lately.
Yesterday I wrote about encountering a bug with the access control. Today, I realized I made another stupid logical mistake in my code and it was related to how online users are determined. And it took me nearly half the day before I realized what was wrong.
I will give a context.
In the project I’m working on, online users are defined as follows:
An online user is defined as anyone who is logged in to the system and that there remains some sort of activity (be it a heartbeat or a click or a mouse move) starting from five minutes before the function call.
It sounds so simple right. And in fact it is.
But you know what I did?
In the function that I wrote to do that checking had the following definition instead:
An online user is defined as anyone who is logged in, has some sort of activity between the time at the point of the function call and five minutes before.
Now compare again with the original definition and notice what’s the difference?
It’s not really subtle either and yet I can make this kind of mistake.
When I realize it I felt so stupid.
And in fact when I did tried to discuss it with my colleague because she notice some oddities with the result returned. But she’s of no help because she couldn’t grasp what I was trying to say. And I swear I was very clear, even articulating what is related to what. She make me go round and round until we finally agree on that original definition is what needs to be done. It was only after that disucssion, I made that discovery of what I have done.
I think deep down, it stems from my frustration and unhappiness about the current fire-fighting mode and my intention of wanting to deliver additional features and functionalities to improve the overall quality is being knocked down repeatedly.
My team lead said this to me: “User didn’t ask for it. Don’t do it since it is not important.”
Yet the features I suggested not only will help the user but also help us when it comes to deployment or maintenance.
I have in fact told my team lead time and time again, I don’t think in terms of project. And I never do. I will always think in terms of product and future use cases. Again it is also linked to why I do what I do. I want to make people’s life easy. Mine included.
And no, I didn’t forget about the user requirement specification document and what the customer signed for. In fact, I think I have consistently delivered on those features mentioned in those documents and have been tasked to me, and then more.
You know, I also felt like there is this nagging presence at the back fo my head that screams, “Fire fire fire! Put it out now!” It has gotten to a point where I could no longer bring myself to devote so much attention to something I’m working on because I don’t know when I will be pulled away.
In hindsight, my colleagues probably don’t feel this way. Whatever stuff that comes will probably roll off their backs without causing much harm or damage. Not for me. Not this highly-sensitive programmer who feels things differently.
And I really don’t think anyone understands what is it like, at least not in my current workplace.
I have also gotten some emails regarding job opportunities and after reading those job descriptions, the feeling that I’m no longer suitable for this line of work comes creeping in. I also recognize that it is the only thing I know how to do well and I have spent the last ten years working with computers in one way or another. So I’m struggling in a way that I don’t know what’s the solution.
Of course I know what is ideal.
Ideally, the kind of work environment that suits me is where the bosses understand where I’m coming from and how I can contribute to their business while I also understand and can support their vision and mission. I honestly am not looking for something extremely large scale like the one I’m working on. To me, even if the application I’m building for is only used by ten people, I will still feel fulfilled if I get to do what I love to do without someone telling me, “this is not important, don’t do it.”
But there is no ideal environment and what I can do is work within the limitation. Yes, I have tried. I have been trying for the last one year in this company and I still feel empty most of the time. So most of the time, I’m like looking forward to my paycheck only.
No amount of sleep or inspiration can make you stop feeling jaded, especially when that jadedness is brought on by the constant crashing into a wall that doesn’t even crack or budge once. And no, you can’t go around it either.