According to a study conducted by Dariusz Jemielniak in 2007, the majority of programmers perceive their own managers as highly incompetent. We don’t expect our bosses to be coding-savvy—this level of technical competence is not a requirement for an average manager. Additionally, we don’t expect them to excel in Gantt Chart wizardry or adhere strictly to risk management protocols—these are management practices that are not commonly observed in software teams today. Instead, what we do expect from them is the ability to gauge our productivity: recognizing and rewarding the best performers while taking action against those who are less motivated. Unfortunately, this is a management competence that they lack… or perhaps, fortunately.
I believe that the ability to measure results objectively is what makes a competent manager. The recent desire of large tech companies to restrict and/or entirely prohibit remote work has highlighted the lack of this ability in the industry. Indeed, a manager who knows how to evaluate the work of the team and its individual members wouldn’t worry about whether they are co-located in an office or working remotely. It simply wouldn’t matter! If programmers know that rewards will be given for deliverables and that penalties will occur in their absence, they can find the best place to create these deliverables, be it at home, in the office, or at a coffee shop (I’m one of them). However, if programmers don’t have such a straightforward “reward and punishment” system, they can become lazy and demotivated. To get back on track, they need a manager, an office, and daily supervision.
Google recently said that “working together in the same room makes a positive difference”… for Google’s incompetent managers, I guess. They may judge productivity by the amount of time their coders spend staring at monitors. They don’t need to concern themselves with establishing an objective performance evaluation system. They don’t need to count the lines of code (it’s nonsense, because Bill Gates said so!). They don’t need to break down the scope into tasks and then assess their complexity (that’s unfeasible, since we programmers are artists!). They don’t need to risk damaging morale and creativity by introducing the concept of productivity evaluation (that’s unthinkable!). They can simply reward the most disciplined clock-watchers and call it a management.
On the other hand, perhaps it’s not entirely detrimental for some of us. If the management is incompetent enough to “make office attendance part of performance reviews” (as Google just has), let’s play along and provide them with what they want: let’s attend! Let’s display our loyalty, engagement, and enthusiasm, rather than our lines of code and pull requests. Let’s focus on fitting into the group rather than contributing to the codebase.
Woody Allen once remarked that “80 percent of success is showing up.” I would propose that we repurpose this as career advice for us programmers: Just Show Up. This mantra applies not only to office attendance, but can also be applied to many other activities throughout your career development. You should be where your boss(es) can physically see you. No, not your work—that’s immaterial. They need to see you in person. Here’s what you can do to truly “Just Show Up”:
- Participate in all meetings;
- Attend all events, workshops, and team-building activities;
- Situate yourself next to the boss;
- Become a member of all committees;
- Seize every opportunity to ask questions;
- Be vocal in the office to ensure that your boss hears you;
- Submit proposals whenever they’re requested;
- Respond to all emails;
- Upvote every chat message.
This strategy might not necessarily make you a better programmer, but it will certainly convince your boss that you are one.