The well has dried up but it’s okay

You have just finished work and arrived home. In a bid to make yourself healthier again, you decided to reset your workout routine. And you thought, Monday is a good day to mark the start of your new workout routine. A quick run around your neighbourhood seemed to be the right choice.

After you’re home, had your shower and dinner, you realised you are doing everything else but the one thing you should be doing. Maybe you have to paint a piece of art. Maybe you have to prepare a new set of musical beats for your upcoming song. Or maybe you have to write an essay.

Not wanting to feel like a failure, you tried to get yourself to do that one thing. Seconds went by. Then minutes. Then hours. As midnight draws closer, you recognised the futility of the effort. There was simply nothing you can draw on from inside of you to do it.

And you know what? It’s ok.

Maybe you are really mentally exhausted and couldn’t do it. Or maybe you are really out of ideas. Whatever the situation or issue maybe, it’s important not to blame yourself for this failure. Trust yourself to deliver. After all, you have been doing it for a long time, right? The skills are there. You need to be kind to yourself and catch yourself before you go deep into that “I hate myself” speech.

And what you probably need also is a change up in the environment to put yourself in the right frame of mind to continue. In my case, it was as simple as going out of my room to get a cup of cold water, switched on the air-conditioning in my room and sit back down.

That’s how I break free from my initial writer’s block and write this. It may not seem much but I hope this help anyone who’s suffering some kind of creative block.

Meet short term goal or minimise long term pain

Every day of our lives, be it professional or personal, we’ve got to deal with situations that require us to deal with it now with quick solutions or come up with a better solution and taking the time to implement it to minimise long term pain.

Ideally, there should be a balance between the two but reality tends to force us into coming up with an immediate solution to deal with the current pain. Usually, it’s because someone above you, your customer or that a life depends on it made the issue a high priority.

And it takes someone with experience in certain situation to be able to make a decision that seemingly strike a balance.

As a software creator (I don’t call myself an engineer or developer but that’s a story for another day), I lost count of the times when I have to sacrifice the solution that’s good in the long run to deal with something that the customer wants it now. And then there’s always this “we are behind schedule” speech by the management. So much so, it makes you want to roll your eyes. It can make one feel like the management is always reacting to something and not preempting and executing on a plan.

Of course, perspective matters here. More time spent in doing something means more money spent. The manpower could be better utilised to work on something else that deliver on more value (money) to the company. Not to mention, to the customer, it’s like they don’t get their money worth of goods or services on time.

However, cutting corners on a solution just so that you can deliver on time can lead to long term pain that ultimately translate to time and money wasted.

Let’s take something that I’ve experienced at work as an example.

The system my team and I are working on requires a constant patching of data in the database. It can be either to insert new records or to fix old records with updated information. As the system is still undergoing development and deployment, the data is constantly in flux. And the customer will send us spreadsheets of data for us to do matching and patching.

And instead of spending maybe a week to build the user interface and implement the business logic that not only validates the data but to allow us to upload those spreadsheets and update the database in a few clicks and change existing data all from one UI window, my colleagues have to take the time to review through those spreadsheets. Sometimes, two persons are involved. What any one of them will do is use their eyeballs to scan through the records in order to determine whether to match and update existing records or to insert. Then they will manually write the SQL scripts to insert or update the data into the database.

No doubt the scripts run fast and the database will be patched within seconds.

However, what the project lead and management didn’t take into account of the time and effort needed to validate the data manually every time, prepare the scripts and run them. And that’s not forgetting humans can make mistakes. If the data is patched wrongly, the whole system may not work as intended and then we will need to “rush” someone down to the customer office to fix that issue. Time spent at customer office is time not spent on delivering features.

And if you are someone who panics very easily, and you have to deal with such high pressured situation, more mistakes will happen.

The management of course have a defence. Their stance is that this kind of data patching doesn’t happen often. By my last count, it has happened five times since the project started and we aren’t even at the end yet. And I suspect this data patching will repeat several more times until the end of the project. How many more, I don’t know. In fact, I’ve just recently spent half an hour to de-associate the relationships between two datasets because it wasn’t patched properly. Mind you, those de-associated relationships need to be rebuild again once the data has been reviewed and cleaned up again.

I may not be in a management role but it’s obvious to me that taking the time to build that user interface and implement the necessary business logic to help us match the data, validate the data and update the database in as few click as possible is the better option here.

And given what I know about the future plans of the company with regard to this project, the current way of doing things is just not scalable. Oh, I raised the point a lot of times but I’m always overwritten. Well, mostly.

This is what I mean by meeting short goal or minimising long term pain. There are many other examples that I could think of but this is the clearest one to me.

In conclusion, always strive for the mid-point between meeting short term goal and minimising long term pain by evaluating as much data point as possible before making a decision. It’s especially the case if it’s something that affects your persona life and you don’t have a higher up to answer to. And depending on the culture of where you live and work, you can either fight to the death for what you believe to be the right course, find a compromise or swallow your pride and let the other party win. In an asian context like the one in Singapore, you are better off choosing the last approach if you are an employee at the bottom of the ladder or an underling. Or management will make your life miserable.