I am often asked what is it that I do that results in the programmers with whom I interact being so productive; what is it I do to get them motivated and to keep them motivated; and where can I find / who is the World’s Best Programmer.
My answer is many fold and I provide a framework towards greater understanding in part 1.
The path to the motivated programmer, the happy programmer, is unique to each individual. There are, however, some general, instructional guides towards better understanding for all involved parties, and especially regarding those conditions that make for that highly motivated programmer.
Today, let’s take a deeper look at Focus.
Many very good programmers will frequently feel the pull of new technologies, newer more exciting projects, tangential and/or ‘very cool’ innovations. It is very important to allow for the artistic, curious, knowledge seeking side of every programmer to be able to explore exciting alternatives, from new hardware and languages to discussions on new technologies, new vendor tools and other programmer-y things.
However, it is also very important to facilitate the needed Focus that will empower the programmer to stay on track and on schedule, to be able to point to front-line accomplishments while also allowing for the time for growth. ‘Exploration time,’ as can also be seen in the case of the World’s Best Programmer, announced at the end of this series, can result in …
- Fresh ways of thinking,
- New and exciting group discussions,
- Constructive and illuminating debates, and
- Company-applicable ideas and solutions.
Helping a programmer with Focus can be as simple as implementing some of the Organizational tips already discussed, or limiting general business-side Q&A to specific times of the day/week. Further examples on delivering oft sought after Focus are …
Process. In offices where the programmers share the dual-responsibility of creating and maintaining, or overseeing, production support to keep the organization running smoothly and rapidly addressing bugs and the common real-time production issues, the introduction of processes for the minimization of work-stopping, deadline-killing, frustration-inducing, time-and-money-wasting, Focus-sapping distractions are truly useful.
For example, instead of everyone sharing simultaneous oversight of production, have a rotating schedule where one individual (or a subset of the team) is on-call for a specific day. And, while this individual, with all production issues diverted their way, is focused on the short-term handling of ‘putting out fires,’ the remaining team is 100% removed from the fray and 100% Focused, shielded from the issues of production, empowered to Focus, on their current projects, deadlines, strategic long-term planning, design, etc.
Scheduling. As I briefly touched on above, ‘exploration time’ is an important part of any programmer’s growth in their job, spent on anything from reinforcing the basic to exploring the latest, coolest framework. However, as most can relate, when you are working on that cool thing, or deeply focused on learning a concept, other action items can quickly fall by the wayside.
Every programmer should have time for exploration. Simply allot that (sacred) time in the programmer’s schedule, appropriately take into account this time in project scheduling, and provide clear business deliverables. To bring more structure to this ‘exploration time,’ provide a recurring venue (e.g. monthly lunch) for people to share their own goals, findings, and accomplishments with one another; in turn, this results in ‘exploration time’ being a valuable experience for all, existing within a focused environment, not distracting nor detracting from the business milestones or long-term strategic goals of the company.
Prioritization. A fundamental characteristic present in the environment of the World’s Best Programmer is Prioritization and the added boost in productivity over the loosely prioritized or non-prioritized list they receive. Such Focus supporting prioritization can be achieved through the maintenance and presentation of a personalized short-list of to-do items to each individual programmer within the organization. The list should consist of clear priorities, with no overlapping / identical priorities, so the programmer can work on each item, one at a time. As a society, we often make claims of being able to juggle multiple, simultaneous projects and priorities – more recent studies …
- Multitasking Can Make You Lose … Um … Focus
- The Autumn of Multitaskers
- Is Multitasking More Efficient?
… have proven this to be false, misguided, and harmful to productivity and correctness. As a very wise programmer once told me, as I tell you here today, “while we like computers to multi-process as much as possible, having humans do that usually comes with a price of context switch and mistakes from lack of focus.”
A good programmer, as does the World’s Best Programmer, will value the freedom to explore and learn, but equally value, and be motivated through, the successful efforts you take to help remove unnecessary distractions and provide for an environment that permits Focus on their short-and long-term goals.
The Search Continues
In addition to…
… and before this individual, World’s Best Programmer, is announced, the characteristics…
… will be further explored and discussed in the subsequent articles of this multi-part series.
Subscribe now (click here) to make sure you don’t miss any part of this series highlighting many of the key driver’s of your team’s motivated programmers, nor the denouement of World’s Best Programmer, as well as other insightful posts from The Product Guy.
The Product Guy
|Add to Social Bookmarks:|