I’ve been developing software for 10 years now. Every now and again I wonder what it is that makes me tick. What’s the element that makes me come to want to go work in the mornings. In other words, what is it that motivates us as software developers?
After some serious introspection and discussions with other developers, I’ve gathered a list of 13 items that keep us programmers going. I think I covered most of the important things. Check it out and see what relates to you most.
1. Creating something
As developers, we are constructing new things every day. Each line of code is another building block. We’re watching our product evolve with each feature. In a way, we’re not engineers, we’re builders. There’s something very satisfying about creating something new.
2. Learning new Stuff and Evolving
For better or worst, programming involves endless learning. Every day you get to work with a new framework, see some new code, learn a new API, etc. This process of self-improvement is very gratifying. Every day you’re a bit smarter than the day before. Comparing this to a video game, you’re gaining experience points and levels with each new thing you learn.
3. Making a Work of Art
While some programmers like to get things done as quickly as possible, others like to think of their code as a beautiful creation. That variable was named exactly right. And that class was so nicely decoupled from that other class. And those tests cover my code base perfectly. It goes on. One can look at his own code for hours, admiring the beauty.
Creating readable, maintainable, clean code is not a bad thing by any means. Sure, it might be disheartening when another programmer brutally destroys your creation with an ugly patch. But overall, it’s very satisfying to make something beautiful.
Unlike some other professions, there’s always a new challenge in software engineering. We are constantly thrown into the water, having to learn to swim all over again. You might have to create a huge application in a short time. Or maybe to develop an impossible algorithm. Or solve a bug where you don’t even know how to begin.
It can be difficult to face challenges so often, but it’s also interesting. The bigger the challenge, the more interesting it is. And it’s also very rewarding when you get over the challenge.
5. Getting Things Done
As software developers, we’re constantly building or fixing stuff. We might be adding new features or solving bugs, but every single day, we’re making progress. Whenever we mark tasks as done, we get a healthy rewarding dose of dopamine flowing through our body.
If you’re anything like me, then you’re addicted to completing tasks. The harder the task, the better it feels to finish. This continuous process of getting things done is very motivating.
6. Improving Self Worth in your Company or the Market
As you learn more on your company’s domain and on your specific technology, you’re gradually improving your value. It might be as an authority figure in your company. Someone that everybody turns to for advice. That guy who knows everything and every junior developer seems to admire.
Or it might be your overall worth as an engineer. As you add to your knowledge and experience, fantasies and delusions of grandeur might manifest. Next time you’ll be looking for a job, great opportunities will come, companies will offer enormous amounts of money and recruiters will throw themselves at your feet. That’s a nice thought to come to work with.
7. Being in a position of influence
Sometimes, we find ourselves in positions of influence in the company. It usually happens for seniors, tech leads, and team leaders. You will find yourself in important meetings where you can steer the company’s fate in one direction or the other. Power is addicting indeed.
8. Belief in your Product
Once in a while, you get to work in a company whose product you truly believe in. Maybe this product will save the world from poverty. Or maybe it will just become wildly successful, making you obscenely rich. Whatever the case, believing in your products provides a sense of purpose, which is very motivating. I imagine many engineers are willing to suffer low compensation and perks to work for such a product.
9. The Money
Depending on where you live in the world, software engineers are usually very well paid. Some places like silicon valley pay incredible amounts of money to senior engineers. Nobody ever objected to more money and this alone is a very motivating factor. You can spend your days thinking of all the wonderful things you can buy or calculating how much money you make in an hour… Glorious thoughts.
10. Fancy Coffee Machine and Perks
Besides money, tech companies offer an abundance of benefits to their employees. Fancy coffee machines being one of them. But also game rooms, expensive presents, free Gym, etc. Some companies, like Google, make the rest of them look bad. What with their sleeping pods, in-office massages, amazing chefs. I keep applying but those bastards…
11. Fear of Getting Fired
Generally, software development is a very comfortable job market. That is, comfortable for the developer. Good engineers are fought over and courted. Mediocre engineers find jobs pretty easily. In some fields, perhaps cyber and node.js, it’s enough to have some experience and a pulse to get hired.
That being said, you might be hanging to your job for whatever reason. Maybe your location has few programming jobs, or you just like working there. Adding to that a real possibility that you might get fired can get you to work harder.
Another option is that some people just don’t like to work. They prefer spending their time on Facebook, drinking coffee, sleeping in Google’s sleeping pods or reading blog posts (like this one hint). In fact, the only reason they ever do anything is the fear of getting fired.
12. Being Respected by your Fellow Team Members and Manager
Programmers have a very special culture. We tend to judge everyone by their ability to program. This somewhat implies that a good programmer believes he is smarter than most lawyers and doctors. I’ll let you complete that thought trail yourself.
An interesting phenomenon is that most programmers think they are better than average. StackOverflow’s survey of 2019 found that almost 70% of developers think they are above average, while less than 10% believe they are below average. This is statistically unlikely.
So it seems very important for us to be regarded as excellent developers. The wish to be respected in your team and organization can drive you to write faster, better code.
13. Working with awesome People
Every now and again you get to work in a place with amazing people. You become friends, a magical atmosphere sets in, etc. When that happens, coming to work becomes a joy. You might spend an extra hour at work, or take the job more seriously.
On the other hand, this sort of thing can lead to non-productive chatting and too many coffee breaks.
So what Motivates You?
I’m very curious about what motivates different developers, so I created a simple poll. Please answer with up to 3 answers below:
Hope you delved into some introspection yourself after reading this and discovered what it is that makes you tick. If you’ve got some other motivating factors that I didn’t think about, please write in the comments section below. Cheers.
Want to become an expert problem solver? Check out a chapter from my book Practical Debugging for .NET Developers