Keep calm and ship it
February 9, 2014
I consider myself a calm guy. Part of it might be due to my personality, but it's also a deliberate choice. I've seen very closely how terrible stress and depression can be and keeping my stress levels down is a factor that influences my decision making.
I work developing software. Software is fragile. If I forget a comma in an array and deploy that code, boom: my software isn't usable and my stress level skyrockets as soon as I notice because I know that my users are frustrated, or angry, or gone. Most of the feedback I typically get as a developer could cause anxiety to anyone: bug reports ("your software is wrong"), feature requests ("your software isn't good enough") or estimation requests ("when can you have this ready?").
I develop web applications, a field where new technologies and practices appear every single day. I can't assimilate such amount of new stuff. Heck, I still don't have a deep understanding of many of the technologies that daily interact with the software I write. I love learning new stuff and experimenting with it, but I have to pick my battles and, as frustrating as it sounds, consciously decide to stay ignorant in many areas while I learn more about others because my time, energy and talent are limited.
Fragility, anxiety, frustration... how can I deal and stay calm with such a job?
I love this job, because...
- ...even if my software has bugs, it's helping someone. I shoot for perfection, but I'll always prefer working on a buggy tool that can be improved and somebody is using than on a perfectly crafted artifact that solves nobody's problem. The prize for solving a new puzzle is making someone's life a bit better. That's my goal, that's my vision and I like it.
- ...despite having a to-do list longer than my arm and acknowledging that it's a neverending war, I keep celebrating small victories like fixing a bug or releasing a new feature. Progress is something to celebrate, no matter how small it is.
- ...learning something, even when it's a tiny fraction of an expanding galaxy of knowledge, helps me to get better, and noticing your progress feels good.
I enter on a "make some progress/ship it/celebrate" cycle. If I have a meaningful vision to work for and my work contributes to it, if I can feel I'm getting better at it, and the shipping cycle is short enough... that feels great and keeps me excited – in a good sense :)
PD: One of the things I'm getting better with the time is at is recognizing patterns, techniques and tools that make my life easier and more relaxed as a developer. I'll be blogging about them soon, subscribe to my blog's feed or follow me on twitter and I'll keep you posted.