DMO Framework - Developer Motivation Explained

For Managers

Everyone wants the best developer performance. In many companies, the whole company depends on development delivering features.

To gain the maximum performance, there is a lot of talk about developer experience (DX), and performance metrics. About SPACE and DORA.

They all are fine, but…

You are an engineering manager, and you have done everything by the book. Good developer experience (DX), excellent DORA metrics. But still, some developers seem motivated, some developers are not motivated.

A mystery to you - it was to me.

All these ideas are like talking about the tail of an elephant. Or the trunk. Or tusks. But not the elephant in the room. If you want to look at developer performance, you need to look at the developer. That is the core of the matter. The developer is in the center. Therefore, you need to look at developer motivation (DMO). If developers are motivated, everything is fine. If they are not motivated, everything is in crisis.

Developer Motivation DMO

Clients ask me, “How do I motivate a developer. How do I motivate the developer I have just hired? How do I find out if a candidate is motivated?” Which shows a wrong understanding of motivation. Motivation is just a word. A concept to abstract things to make it easier to talk about it. It’s not actionable.

Millions of words have been written about motivation, but people still don’t know how to “motivate” others.

Let’s solve the mystery. There is no motivation. Motivation does not exist, it is just a nice word. What we call Motivation is a shortcut for three unrelated things.

These three things are

  1. Joy
  2. Discipline
  3. Frustration

Motivation (DMO) = Joy (J) + Discipline (D) - Frustration (F)

For many people, motivation is confusing, because they look for the one thing, when in reality it’s three unrelated things. Someone looks motivated when they have joy or discipline and frustration is low.

Joy

If someone has joy in doing a task, they look motivated. For developers, they need to enjoy coding. If they enjoy coding, they will be motivated writing code. Though the task needs to be interesting to enjoy it. Adding another boring, superficial feature that will not work for customers does not create joy. Adding an interesting feature that moves the needle or is a challenge, there you have joy.

If the developer is a 9 to 5 person, and doesn’t care about coding, they never can have joy and need discipline to fulfill their coding tasks. Some developers don’t see the joy in doing things, and you can show them the joy of coding. Some people don’t enjoy anything, and there is nothing you can do.

There are many other things that reduce the joy of coding. Friction comes to mind, bad tools, bad code, an architecture that is always in the way. Colleagues that are not the best coders, or don’t do what they have said they are going to do. Developers enjoy creativity, creating things. If they only are told to execute other peoples ideas, there is no joy. Too many meetings that cut the day into small slices of coding. All of these destroy joy and to stay “motivated,” developers need to fill the empty space with discipline.

Discipline

If someone does not have joy in their task, they need discipline to fulfill the task. Discipline is the art of doing things that you do not enjoy nevertheless. To look “motivated,” if there is no joy, developers need to have discipline. For all the boring coding tasks. For all the tasks that they think make no sense. For the long tasks where there is no end in sight.

Some people have discipline to do tasks they don’t enjoy. They look like they are always motivated. Some people don’t have the discipline to finish a task when they don’t enjoy it. They always look unmotivated, and you think about how to motivate them.

Self-Discipline can be increased for some people. A monetary bonus helps some people to show the necessary discipline. Some other carrot might work to get them through. But many people who do not have the necessary discipline to do things they do not enjoy, there is nothing you can do. You push push push, and they walk a short while, then stop again. There is a long process for them to learn the necessary self-discipline to do things they do not enjoy.

Frustration

There are many things that frustrate developers. Slow machines, too many meetings, hard to debug code, hard to understand code, interruptions.

Some people are easily frustrated and react with a high frustration level on encountering frustrating things., Other people are hard to frustrate, they just shrug their shoulders and have a low frustration level on encountering the same things.

One important factor for frustration is Developer Experience (DX).

Frustration both kills joy and discipline. It takes away the joy you have and it destroys the discipline you have build up.

To look “motivated”, frustration levels need to be low.

Motivation For Developers

DMO also works for you if you are a developer. If you wonder why you are sometimes motivated and sometimes not, or wonder why you can’t be motivated, but you want to be:* There is no motivation but Joy and Discipline. *You need to work on things that bring you joy. And work on your self discipline for the things that need to be done but you do not enjoy. Which should be the minority. Work on the things that frustrate you, like hard to understand code or a bad developer environment. If the company doesn’t let you, get a new job.

Stephan Schmidt, CTO Coach

I’m Stephan Schmidt, a coder by ❤️ heart, and ex-CTO coaching CTOs. I have been working as a coder and engineering manager for more than 40 years. In that time I have struggled with motivation, my own, and those of people I have managed. The DMO model of joy, discipline, and frustration is the result of more than two decades of working on the challenge to "motivate" developers, find "motivated" candidates, and manage underperformers. If you are a #CTO, I can help you with CTO Coaching.

©️2024 Stephan Schmidt, CTO Coach ❤️ | Imprint