The Science of Motivation: Mastery

This is part four in a series on motivation. To recap the basic idea: rather than external motivations, what we actually need are internal motivations. This idea is from Dan Pink’s book Drive, and you can also watch an inspiring TED talk about it which I highly recommend. The three main ideas (which we are exploring in three parts) are Autonomy, Mastery, and Purpose.

What It Means In Software

Let’s talk about Mastery and what it means for software engineers.

Mastery means the engineer is getting better and better at something. Something that matters. For example, learning a new language, library, or framework is a frequent requirement of the profession and lends itself to mastery as one starts from scratch and ends with doing something useful and beautiful. If an engineer believes that this new language or library is valuable, this can be a wonderful thing to master.

Beyond the mastery of a technology, one can also master the product under development, or the domain in which the product is used. If the product or the domain is incredibly interesting to someone, mastery in that area could be highly motivating even if the technology choices are boring. Conversely, if the domain or product is incredibly boring (at least, boring to the kinds of people who become software engineers) then it would be motivating to find a way to incorporate new technology into a product.

Whatever the topic of mastery, there are some important elements. The engineer not only be actually learning something new (and recognize that they are mastering something), the engineer must care about what they are learning about. The topic under mastery should be something that they find valuable. Obviously one could master something that they find tedious or uninteresting and it would not be an enjoyable experience!

Let’s Find Something To Master

Can you promote your internal motivation by introducing elements of mastery into the workplace? Of course!

If you’re at a startup or a small company, you may have the autonomy to introduce technologies that you want to master. If you’re at a big company and don’t have a lot of leeway to change the underlying technologies of your product, internal tools are good places to introduce a new technology or language. New technologies can be introduced on the periphery, and as they prove themselves (and you master them!) they may eventually find a home in your product. And then you’re the go-to person for that technology! How to introduce new technologies in the workplace is a topic worthy of an article all by itself.

Finally, if you are at a larger company and have less power to introduce technologies to learn, you may find it an interesting challenge to try to master the product or learn more about the business. Using the product in its intended domain is an entirely different skill from writing the software. And learning the business is an entire world unto itself! But there are opportunities there for you if you choose to discover them. The support team, business development, and sales teams would probably be happy to have someone with your technical expertise to help them out and show an interest in what they do. It can’t hurt to start a conversation and see where it might lead.


Engineers often suffer from boredom and loss of motivation. Finding something new to master may be the internal motivator that can make you excited to go to work again!

Leave a comment

Filed under Software Engineering

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s