Keep on moving

There are a couple of places I can always go to to recharge my batteries, like MopGarden, Taudriel and Day9. These places are where I can go, say I had a rough week and immediately have a good community to just lift you up. I am also there in times of being okay and help lift others in their time of need.

Day9 had an AMA this last December, and in it he described a very good technique for people to hold on to. The question that got asked was how to I keep doing a thing when the willpower is not there? So not blocked creatively but just lacking the drive to do something.

I am going give credit to Day9 fully, I am just rehashing it and applying it to the software engineering domain and not the writing example he used.

We all have days where we feel a little meh, a bit bland, low-key and otherwise incapable of driving ourselves to do the things we on normal days love to do. It is okay to write shitty code from time to time, laugh about it and say to yourself okay I am going to write shitty code today.

If it works, it works

Sometimes you do not need to deliver robust, future forward proof, highly professional code for a feature. It is okay to just write something to make it work, accrue the technical debt and survive. The client has a working feature and you can continue. A lot will say, but temporary is permanent or something along the lines. There is a difference between continually writing sub par code and a method of a class that has to do one thing and does it good enough.

Foundations should be solid

Your overall architecture should be good, foundations in order and then from time to time it is totally fine to just write something that will make it work. At the end of the month you cranked out the features, the client is happy because he can sell those features creating a stream of cash flow in order for you to erase technical debt.

Technical debt

Technical debt is not a bad thing in and of itself. It becomes worse and worse the more you pile up. Create issues in GitHub, then manage it via a project and work on them. You will feel it is manageable and doable and accomplished once the debt is lessened again. Also when you choose the moment right, it means you learned enough to actually solve the issue correctly and not with assumptions.

Output is important

If you written so much code, and some is not good and some is okay and some is excellent you also get to pick and choose and reflect on what is written. You learn constantly and most likely can write the feature quicker when in the right frame of mind. Ask your team lead for the moments to work on the refactoring to be focused on that. It gives the project the best chance of succeeding.

The caveat is of course, moderation. Do not let the technical debt grow to a proportion it is unmanageable and insurmountable. Then no matter what you strike away the size of the problems never seems to become smaller.

Quality

The quality of the output is important, but not all consuming important. If you are a lead or a reviewer on a PR, be gentle and kind and look at it with neutral eyes at least. Suggest some small improvements that can be done now and you feel have to be done now, but if there is something bigger maybe just create an issue for it and assign it to the person currently under review. Then when the time comes let that person work some more on it. That way the feature is in, it is completed, but you keep learning and growing and making things better.

#devlife