I started to work as full time software developer one year ago. Viewing this time in retrospective I can state two things: The first is that I didn’t regret my choice of profession a single time. I don’t know any other branch out there, which is so dedicated to collaboration, productivity and innovation. My learning curve throughout the last year has been steep and I’m not willing to let it flatten – there is just too much cool stuff happening, which is worth to be explored. On the other hand, there is a thing which I dreadfully miss and which I, as yet, was not able to deal with: Having time for my own projects – fiddling around with new technologies, following up own ideas and creating things, even if it’s only for amusement’s sake.
Challenges for software developers
This blogpost is a classical 3-episode essay: introduction, analysis, conclusion. So let’s step into the body, which deals with the two biggest challenges, that I faced during the last year.
Satisfying one’s motivations
There is a thought-provoking vlog post by Mattias Johannson (“Silly side projects”)1, where he describes a phenomenon of decreasing motivation, which can be traced back to the overjustification effect:
The overjustification effect occurs when an expected external incentive such as money or prizes decreases a person's intrinsic motivation to perform a task. The overall effect of offering a reward for a previously unrewarded activity is a shift to extrinsic motivation and the undermining of pre-existing intrinsic motivation. Once rewards are no longer offered, interest in the activity is lost; prior intrinsic motivation does not return, and extrinsic rewards must be continuously offered as motivation to sustain the activity. (Source: Wikipedia)
That sounds a bit heavy (originally, it’s from a psychologist after all…), but especially in the software industry there is indeed a shift in motivation for many young people nowadays. The decision to work somewhere is no longer driven by the priority that one can make a good living or bank on a future-proof job, at least not in the first place. Differently from the ancient days (or from other branches), they now seek for goals, which reach from just having a fun time up to building meaningful products that have an impact on the world.
When someone asks me about my job, I always respond that I am a software developer. For example, I would never term myself a programmer. And this is not for nothing: Just accomplishing my “daily lines-of-code goal” or working through a given task list isn’t anything that gets me up in the morning. My primer motivation is to build products based on software. Writing code itself is great fun, but in the end it’s nothing else than employing a tool.
Rapidly progressing environment
As I explained in the introduction, I find it super exciting to work in this fast pacing industry. However, there are two sides to this coin. Sometimes, it feels really exhausting to keep on track with all these things, that get released everyday. You can easily spend your whole time by merely consuming the output of others. Moreover, some domains have already matured so much that developing software has become more about choosing, assembling and orchestrating third-party components than to actually develop or invent something on your own.
Don’t get me wrong: Building software (in which I mean: making software products) never has been easier and I appreciate this a lot. It is awesome to be able to pull up a complete website within just a few hours; to be able to utilize hundreds of thousands of tools, that save you months and years of work; to be able to focus yourself entirely on the abstraction level of your core business without being thwarted by low-leveled necessaries. There are wheels to drive on nearly every terrain. But isn’t it exciting to leave all that out for a moment and explore the paths on your own account from time to time?
My resolution for 2016
In order to counteract potential dissatisfaction, I came up with quite a proactive resolution2. I like to publicly announce: From now on till the end of this year, I will publish one blogpost per week. There are two main reasons behind this decision:
- I want to cut my own path in order to find out what really drives me and where I am good at. I don’t claim to come to an eventual answer by the end of the year. But I feel that I have to invest time in this issue just to make progress in the question.
- Time is limited and I often observed in the past, that I tried to set about hundreds of things at once instead of focusing on one particular topic at a time. Constantly recurring deadlines will help me to bring my ideas and thoughts into an order, slice each topic into a bite-sized chunk and get that finished. Done is better than perfect.
So, what can be expected from the next fifty weeks? Technically, there will be one blogpost, which I publish every Sunday evening (CET) at the latest. However, in terms of content and topics there isn’t anything settled: I will choose a topic arbitrarily3, dive into it and put it down in writing. Truth be told: I’ll do this for myself in the first place. However, if you can take pleasure in this either, just let me know. (I probably will launch a comment section in the blog later on.)
Let’s see, where this leads to!