Motivation – the general desire or willingness of someone to do something. If we know what drives the developer to further achievements and what is crucial for him in making decisions, we can already guess what code he writes, what technologies he likes, and how he copes with the task.
Motivation is what gets you started.
Habit is what keeps you going.
– Jim Rohn
During my time working, I realized that having a source of motivation is actually the main defining feature of a programmer. I see three possible sources of motivation for a programmer.
The center of the triangle is occupied by a spherical lack of motivation in a vacuum (I'm sure there are none among the readers of this article), and each corner of the triangle represents the main motivational force.
Inside this triangle, we draw the plane of a personal motivational triangle whose vertices are determined by the strength of striving for one or another area. My personal triangle looks like this:
I am sufficiently interested in both technologies and common business processes, but first of all I am captivated by the very decision of the task assigned to me. In other developers, the accent can be shifted to the full extent in one corner of the main figure. Either way, one of the motivators will always be dominant. I see each motivatior in a particular way.
Some programmers have the desire to do everything right for the client. Such programmers often develop functionality quickly, without unnecessary questions. Add that new function at the last minute? No problem. Their approach is "you can do everything if you need it", even if it slightly disturbs the harmonious architecture of the system. In the context of the code, they think very concretely, and are usually not strong in abstractions necessary for reuse or other non-functionality purposes. They just want to finish everything and see the working product. Such developers are needed in every project.
Programmers that are driven most by technology have a love for learning new things and for process of learning itself. They usually know everything about the latest language, framework or methodology, and they want to try them all in the current project. There is the new library released last week written by a crazy loner over the weekend? Need to try! These people are aware of all the trends. They devote free time to studying them, they try them all, and want to understand what works better. At the time of project creation, they are irreplaceable and do everything to bring the best of the current technology world into it. When the project becomes mature, and once the new code becomes obsolete, they begin to look for a new latest and greatest that can be utlized. They will look for ways to redo the old code with new technologies, even if it hurts the system.
Programmers that are most motivated by solving puzzles are encouraged to solve complex problems, regardless of what technologies are used, and in this case, how profitable it will be for the business. Victory for these programmers is to find an elegant, graceful, harmonious decision to solve a puzzle. It's great if it also positively affects business processes (and often it does). Such developers are interested in new technology only if it provides an opportunity to solve the problem in an interesting and concise way, but they do not usually follow the news of the technology field. They are focused on finding solutions and generally do not care about the details.
This visualization of motivation sources helps me at work by helping me to identify the differences between cool performers, technological geeks, and puzzlers. It allows me to know about the strengths of each project participant and how each of them can make the maximum contribution to the development process.
For example, when running a project, we need developers who will tell us what modern frameworks can help. As soon as the project gets bogged down in analysis and investigation of unsuccessful decisions, executors come into play, able to write working code in any situation. When a problem appears that seems to be unsolvable and a dead end, you can turn to puzzlers who will be able to pull the project out of the swamp. Each type has its own special value. Let me leave you with something to think about:
What is your triangle of motivation?
Questions for our Product Development Team? Email email@example.com.