Don’t Run From Pain, Embrace It

Sandor Dargo - Jul 1 '20 - - Dev Community

This article has been originally posted on my blog. If you would like to receive my latest articles, please sign up to my newsletter.

How many times have you thought, oh I will find a way to get out of the way of this problem? Just this time I promise! And then you gently stepped aside. Later you were looking with eyes open wide they asked if you knew about. Or even worse, when someone presented how she solved that issue you thought you could have done it too. You even felt some envy, right?

If you see a problem, you have to realize it will not solve itself.

Even more, sweeping a problem under the carpet would only let it grow, like a snowball rolling down its way through the slope. If you take the lead right there, you can still solve it relatively easily - compared to what it will become -  and you can even benefit from it. If you let it grow big, it will bite you and the team. And you'll always feel ashamed - hopefully at least! If we keep doing the same repetitive task like we used to do, someone will eventually implement that automation and harvest the success. You will tell at the coffee machine, that yeah it's a brilliant idea that you also had, but you had to work too hard, there was no time to make things better.

Busy to innovate

Nobody will care and you know it. Anyone can have ideas, but few sit down and implement them.

Writing that tool might be painful. It might hurt. A lot. But only once. Or maybe it will not and you even enjoy creating it. But for sure, doing the same shit over and over again will hurt you a little. Well, only a little. But every single fucking day. It's like a starting toothache. You can live with it and you might even prefer that little misery than going to the doctor. Even though you already know deep inside that soon you'll welter in your bed in serious pain.

Stopping what you are doing and report the problem will be an interruption to your work. Especially if you are more autonomous and will actually provide a possible solution, or even solve the problem. It will take time. And they might ask you to fix the problem anyway. It's perfectly understandable that you try to protect your time.

But sometimes you have to take the pill, you have to recognize that if you continue what you were doing, you will not get forward. The way leads through that bump, the obstacle is the way.

Your perception is key. If you think about a problem like something purely evil that will eat up your time, you'll live difficult times. On the other hand, if you see it as a challenge, an opportunity to grow, you'll face it with a better attitude and you'll grow while you provide a solution. Maybe your tech skills will not get any better, but your mental strength for sure will benefit.

Let me tell you a story of a positive example.

It was a calm week. Change freeze in production, half of the people were laying somewhere in a food-induced coma and even the ones in the office were in a rather merry state. Yes, it was right after Christmas.

From one day to another, our CI/CD pipeline broke. Building, not to mention merging pull requests became an impossible feat. We didn't understand at all what happened as we changed literally nothing. Then we saw some errors in the logs that we didn't understand. None of us in the office was a shell guru. Personally I knew close to nothing about shell scripting. I could have kept complaining. It would have been so easy. I could have even continued my work on a bit longer-lived feature branch while the one who put in place our pipeline returned. It would have been so easy.

Instead, with a colleague, we dropped all our current tasks and commitments, rolled up our sleeves, and started to work on this other issue. It took a few days to understand that it was a kernel version change on the Jenkins server and the shell code was written without considering most of the - shell scripting - best practices. Little by little, we fixed everything, even what was not yet broken. And the pipeline hasn't broken since. I took up some shell scripting skills, understood much better our delivery pipeline, and people started to treat me as someone who knows well our CI and who can help with it. Is it a good thing? Mostly, it is.

Should I have just step aside, I wouldn't have gained all these benefits for what? I could have probably done yet another user story without a lot of added value to the team, to the others, to my skills.

I encourage you to do the same. If problems are coming in your way, don't just step aside, don't just duck down, but take the lead and make the most out of it. Learn new skills, become a more autonomous engineer, grow as a leader!
And remember what is told for - at least almost two thousand years -, no pain, no gain!

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .