Staying motivated is sometimes hard
Recently I thought a lot about motivation for programming work. I get the feeling that motivation plays a big role on how I work and especially in open source. Motivation seems to affect how I enjoy work, how good the result may be and how fast I find solutions for tricky problems.
Motivation and Open Source
For me motivation is especially critical for open source work. I get no money or deadline for open source stuff. It’s completely up to me when I take the time to work on or do nothing for a while. That’s why I need a lot of motivation to do it. Big parts of open source work are not that fun: triageing issues, reviewing complex pull request, fixing complicated bugs, reproduce issues etc. If it’s not fun and nobody pays or expects me to do it, why am I doing this anyway? Those are some of the reasons why I postpone some open source stuff.
Intrinsic And Extrinsic Motivation
I just started reading the book “Working in Public - The making and maintenance of open source software” by Nadia Eghbal. I came across this quote:
“Creation is an intrinsic motivator, maintenance usually requires extrinsic motivation”
- @BALUPTON. via isaacs/github
This quote really sums it up in a simple way. I enjoy programming (and work in general) the most when I can create new shiny things that I like and see value in. Working for long stretches on bug fixes and stuff that is less interesting is really hard for me personally.
I like to create new features and projects from scratch with new technologies and ideas. If you can see your success quickly while working and you move forward fast this keeps your motivation going. Seeing pieces come together and people liking your work creates intrinsic motivation because you can see your impact of work and therefore you like to work on this because it is fun.
Working on complex stuff where you need to consider 1000 different things, not knowing all moving parts and dealing with issues all the time, needs a lot of discipline and perseverance. If you are stuck on something for a long time it’s easy to loose motivation and start procrastination. Finishing work requires external/extrinsic motivators like people waiting for the outcome of your work or you getting paid to spend this time on stuff that is not really fun.
Motivation is tricky, programming should be fun. Programming and creating new things is such a nice thing that can make me really happy. But a lot of programming at work or in open source is just not fun (maintenance). Possibly the best thing we can do as programmers is to find a good balance between creation and maintenance to get just the right amount of motivation to keep on finding joy in what we do.