# What Motivates Me as a Programmer

Source: https://www.yegor256.com/2017/09/19/what-motivates-me.html

I wrote a number of [sarcastic articles](/tag/sarcasm.html)
about management and motivation, where some traditional and very popular
practices were criticized. Now I've decided to think it all over
and summarize what actually motivates _me_ as a programmer when I'm
working for someone else. Let's say you hire me tomorrow as a Java coder
and ask "What do you want us to do for you so
that you will be most productive?" This would be my wish list.


{% jb_picture_body %}

The list is in no particular order.

**Remote work**.
I like to be
[in the office]({% pst 2015/oct/2015-10-06-how-to-be-good-office-slave %}),
but I hate it when I have to be there from 9 till 5.
It's very important for me to have the ability to work from wherever
I want. Most companies
[declare that]({% pst 2017/may/2017-05-02-remote-slaves %}),
but in reality I will have to "inform" you
every time I decide to stay home. Instead, I want to inform
you when I decide to visit the office. In other words, my default state
should be "not in the office."

**Isolation of tasks**.
I hate being responsible for someone else's mistakes and I'm not really a good
[team player]({% pst 2015/nov/2015-11-21-ringelmann-effect-vs-agile %}).
I want to solve problems on my own and be responsible for my own
successes and failures. That's why clearly defined and isolated tasks motivate
me and help me stay focused and interested. I want to see them in writing
(as tickets) and I want to know exactly what the
[definition of done]({% pst 2014/apr/2014-04-15-definition-of-done %}) is.
Simply put, what should I do in order for a task to be considered as
completed?

{% quote I hate to be afraid, especially if I don't really know what I'm supposed to be afraid of %}

**Responsibility borders**.
I hate to be afraid, especially if I don't really know what I'm supposed to be
afraid of. I want to know what my possible
[punishments]({% pst 2016/jan/2016-01-05-how-to-punish-employees %}) are and when they will
occur. I need to know the
[rules of the game]({% pst 2015/oct/2015-10-13-competition-without-rules %}).
Say I commit a bug into
the code and we lose $100,000. What will happen to me? Or say I don't finish a
task by the deadline. Or I don't answer an email. Or I miss a bug during
a code review. Or I break the `master` branch. What are the consequences?
Their clear explanation will seriously boost my motivation.

**Open source**.
I'm a big fan of [open source]({% pst 2015/dec/2015-12-22-why-dont-you-contribute-to-open-source %}).
If you are not, I most probably won't like
working for you. If your company makes some code open and I am part of
that process, that will seriously affect my motivation, because I will achieve
two goals at the same time: make money and become more popular in the
open source world. Working in purely closed software projects is a demotivating
factor for me.

**Project visibility**.
I'd love to see my name close to a project that is visible to the world.
And it doesn't necessarily have to be Google or Facebook. Actually, in those companies
regular programmers are way less visible than in smaller startups. So, unless
you make me VP of Engineering, I won't consider a position
in a big company interesting in that respect. The most interesting project
would be a small startup with an ambitious goal and high exposure in the media.
Being there even as a regular programmer will motivate me a lot.

**Clear hierarchy**.
Yes, I've heard about
[holacracy]({% pst 2016/feb/2016-02-18-holacracy-autocracy %}),
[flat](https://en.wikipedia.org/wiki/Flat_organization) and
[self-managing](https://en.wikipedia.org/wiki/Flat_organization#Self-managing_teams) teams, and
other modern ideas. I hate them all. I believe that any management is based
on
[power and force]({% pst 2016/sep/2016-09-27-command-control-innovate %}),
and the best way to avoid negative aspects of these
rather violent concepts is to organize and structure them. Without a clear and well defined
hierarchy of roles a team very quickly turns into a
[snake pit]({% pst 2015/oct/2015-10-13-competition-without-rules %}), with
politics, backstabbing and behind-the-scenes games. So, if you can't tell me
exactly who is my boss and what the chain of command is in the group, I
simply won't consider this place seriously and won't be motivated.

**No Agile/Scrum, please**.
Do I need to say
[anything]({% pst 2016/jul/2016-07-11-mistakes-in-agile-manifesto %})
else here?

**Payment structure**.
I hate to guess about money, I prefer to know the numbers and the logic
behind them. I want to know
[exactly]({% pst 2014/sep/2014-09-24-why-monetary-awards-dont-work %})
how much I'm going to get and when.
I want to know when the numbers will go up and how I can affect that. Also,
I'd like to know the payment policy of the company and, ideally, salaries
or rates of the people around me. Jealousy, which arises with the
surprising information that someone is getting more than I do, doesn't
motivate at all, even if my pay is
[decent]({% pst 2014/oct/2014-10-29-how-much-do-you-cost %}).
It would be much easier for me
if I knew everything from the first day.

{% quote I hate working for big ideas, if they are not mine %}

**Business transparency**.
I hate working for big ideas, if they are not mine. Mostly because I know
that almost all of them
[fail]({% pst 2016/jan/2016-01-12-good-programmers-dont-work-for-equity %}).
Working for a failure and
[being told]({% pst 2015/mar/2015-03-02-team-morale-myths-and-reality %}) that
our future is bright doesn't really motivate me, at all. That's why I would
expect you to tell me honestly why a meeting with investors took three hours
instead of one and why the door was so tightly closed. Also, I would want
to know why our CTO quit a few weeks ago and now works for our
competitors. I'd like to know our honest situation in the market
and why the web traffic stats are going down. In other words,
I'm either a [slave]({% pst 2015/oct/2015-10-06-how-to-be-good-office-slave %})
kept in the dark, or I know
[the truth]({% pst 2015/mar/2015-03-02-team-morale-myths-and-reality %}) and I'm motivated
(no matter how ugly the truth is).

**Payments per results**.
I haven't seen this anywhere, except with my own projects, but I believe it's how
good teams should be structured: everybody must be paid
[for results]({% pst 2015/jul/2015-07-21-hourly-pay-modern-slavery %}),
not per hour/week/month/year. If you want me to be truly motivated you have to
invent a payment structure where my paychecks will correspond to my results.
I do realize that this may require you to change the entire management
system, so I don't absolutely insist. But you have to remember that as long as
you pay me only for my time I will try to do my best to ~~steal from you~~ use
it for my
[own benefit]({% pst 2017/jan/2017-01-24-career-advice %}).

**Career path**.
I have no problem starting as a junior developer, but I have to know exactly
what my future is and when it will happen. I want to become a CTO, no matter
what. And it's not about the title. It's about the amount of technical
[authority]({% pst 2014/oct/2014-10-12-who-is-software-architect %}) and
[responsibility]({% pst 2015/may/2015-05-11-software-architect-responsibilities %})
I will have. I want it all. If I don't see a clear path to
achieve that, I will be very demotivated and will treat my job as
temporary. I will always be looking for a [better place]({% pst 2017/jan/2017-01-24-career-advice %}),
where it's easier
to become a CTO. So it's your job to make that career growth obvious for me.
If it will never be possible for me to become the CTO, make that obvious too.
The truth is better anyway.

{% quote A strong manager is someone who is ready to fight for their own ideas, rights, thoughts, and decisions %}

**A strong boss**.
This is probably the most important requirement I would have. I can't work
under a [weak manager]({% pst 2015/sep/2015-09-22-micromanagement %}),
it will seriously demotivate me from the first day.
I will probably write another blog post about what a "strong manager" is,
but in a nutshell it's someone who is ready to fight for his or her
own ideas, rights, thoughts, decisions, etc. A weak manager is one who is
swimming with the current. Working under such a manager is a huge
frustration and a waste of time. I will be demotivated and no amount of money
will keep me interested.

These things don't matter at all, I won't even ask about them:

  * Mission and vision of the company
  * Business domain
  * Tech stack
  * Location
  * Company size or structure
  * Race, gender, sexual orientation, religious or political beliefs of people in the team
  * Financial status of the company

Of course, I don't think that this list is applicable for everybody. Other programmers
may have some other points or may disagree with mine.

P.S. I would most probably stay away from a business involved in something
I consider unethical, like corruption, gambling, crime, etc.

<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">What motivates you best of all? <a href="https://twitter.com/hashtag/motivation?src=hash&amp;ref_src=twsrc%5Etfw">#motivation</a></p>--- Yegor Bugayenko (@yegor256) <a href="https://twitter.com/yegor256/status/1003355914555002881?ref_src=twsrc%5Etfw">June 3, 2018</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
