Stay in the Trenches

Seduced by the siren song of a consumerist, quick-fix society, we sometimes choose a course of action that brings only the illusion of accomplishment, the shadow of satisfaction.

George Leonard, Mastery


As a result of your dedication to learning, you have established a reputation as someone who can effectively deliver software. Within your organization, exceptional work is rewarded with promotions up the hierarchy.


You have been offered a promotion into a role that will pull you away from programming.


The offer of a promotion will test whether you have Sustainable Motivations and are willing to walk The Long Road. Most people equate promotion into management with success. They assume that taking a promotion into management is a no-brainer, a sign that you are on the right path. Aspiring craftsmen must not be fooled into believing that they will remain a “technical manager” for long. As Pete McBreen wrote, “as soon as a person stops practicing, her mastery fades.” Every day that you are not programming is another step away from becoming a journeyman.

So to remain on that path, work with your employer to find other mechanisms for rewarding you. These may include more pay or nontraditional technical leadership roles such as internal consultancy. If your organization is inflexible, then it is better to seek opportunities elsewhere (see Draw Your Own Map) than to permit yourself to be promoted away from the craft.

Staying in the trenches is a way to Nurture Your Passion for software development. When you accept a promotion that allows you to continue programming full time, remember to Use Your Title.

It’s very easy to apply this pattern in a selfish way by being blind to the needs of those around you. However, as you become a more experienced apprentice you may find yourself trying to change your working environment so that others can keep doing what they love. This can easily become a full-time job unless you’re careful to maintain the balance or find ways to create a self-sustaining environment for increasingly senior programmers.


How does your employer reward excellence? If their current rewards aren’t appealing, start thinking of other ways they could reward you. Consider whether there are standard constraints that could be loosened in your case. Perhaps there are restrictive clauses in your contract or you have a radical idea that needs sponsorship. Prepare a list of these alternative rewards so that when you reject that promotion, you’re in a position to negotiate based on a clear understanding of your own motivations.

Get Apprenticeship Patterns now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.