Some days I can give more than others. Sometimes one day can look much different than the next. I had a hard time falling asleep last night. I've been working on a project that has me working more than usual. Mostly because it keeps me up at night thinking about it. We are migrating applications, data stores, and services to AWS, and we're a little light on resources (That and maintaining the existing and dated infrastructure). On top of that I'm fighting off a head cold, and I was up at O'dark thirty this AM with the cat waking me up. I'm not complaining, as this is the name of the game. This is life. However, I'll admit my best today looked mediocre compared to others. In some ways, it seemed to suck pretty bad. At the same time though, I get to show up and produce value.
I think a lot of the time developers get this one thing wrong. We're not there to write code, we're not there to show off how much inside knowledge we have of a specific language. Sure what we do requires knowledge that is specialized. What we're hired to do is produce value and help others solve problems with the things we build. Being a developer requires analytical skills, and the ability to communicate effectively. My position more so, as I'm the only developer on my team and I'm considered a shared resource, so I get to work with a lot of people in not so technical roles. But today, I was pretty content to not have to deal with people today. I got to work on a couple of python scripts for automating data deliverables for a co-worker. Shaves days off of a process that used to take a week.
"The best is the enemy of the good." ~ Voltaire
Even when I know some subroutine could be optimized a bit, or that email could maybe explain something a little better, I still ship something. I still do my best to communicate. Not to say that I'm going to ship something I know that's buggy shit, but if it works and is an improvement sometimes that really is good enough. I worked on some legacy VB .NET code a couple years ago that was atrocious. If I were to have tried to refactor that code to be the best every time, I would never have delivered. I did eventually get the opportunity to rewrite that application into C#, but it was piecemeal, still not what I exactly wanted, but it was a vast improvement in both performance and re-usability of the code base (plus it had unit tests!). I don't say this sort of thing to brag, I say it to offer the idea that there needs to be a balancing act of sorts.
This post, for example, I really just want to Netflix and chill, maybe watch a couple of the new Ozark episodes and take a NyQuil. At the same time though, I made a promise that I would deliver posts regularly. I've blogged before and never was consistent. This is my attempt at being consistent, even if it's not exactly what I wanted to do this evening.
I find largely it comes down to a specific attitude. That attitude is "I get to". It probably was something I read in a book like "Seven Habits of Highly Effective People". I get to show up. I get to be a part of something and contribute. No hand holding needed. Not that I don't ask for help, but I don't expect others to pick up my tasks if at all possible. I believe in being part of a team and as such want to be consistent even when I'm not at my best. This tempered with the understanding that we're all humans and have our weak moments. Don't let the small stuff be the deciding factor for the long run.
We should always play for the long game. Playing for the short term doesn't get me very far, short term can be chaotic. If I focus on the long game, it really helps to put things in perspective when things seem to be falling apart and maybe suck.