Monday, November 1, 2010

Being Geek

This article appears in slightly different form in the November/December 2010 issue of IEEE Micro © 2010 IEEE.





This time I look at a book that is remarkable for its author's exceptional insights and uncommon points of view.


Being Geek: The Software Developer's Career Handbook by Michael Lopp (O'Reilly, Sebastopol CA, 2010, 334pp, ISBN 978-0-596-15540-7, www.oreilly.com, $24.99)

Michael Lopp has worked in Silicon Valley for more than 15 years. He is an engineering manager at Palantir and has worked for ground-breaking companies like Netscape, Apple, Borland, and Symantec. He was also part of a failed startup. He is the author of Managing Humans and the Rands in Repose blog. Being Geek draws heavily on postings from that blog.

Geeks

Lopp's target audience consists of software developers and people like them. He calls them nerds or geeks interchangeably. He chose the word geek for this book because he liked the sound of the resulting title. 

If you're one of Lopp's geeks, you're socially handicapped in ways that he describes in a chapter called The Nerd Handbook, a guide to give to your friends and family. Your sense of humor grows out of your bitterness over your early life as an outcast. You have a project, and it's always on your mind. Your relevance detector tunes out small talk, making it difficult for you to relate to others. You are a systems thinker. Your model of the world is a computer. If you know the rules, you can figure out what to do next. Ambiguity makes you anxious.

Unlike many software developers, Lopp has no difficulty interpreting the non-verbal aspects of his surroundings. He observes the behavior of colleagues and generalizes the lessons he learns. He picks up on the unspoken cues in situations, so developments rarely take him by surprise. Following some of Lopp's advice, however, may require more facility at interpreting the non-verbal than many potential readers have.

Rules of three

Lopp thinks strategically, so he can react to unpleasant surprises by remembering the big picture. He may have a manager in his job, but Lopp is the manager of his own career. His two-pronged approach to this book is as follows:
  • Teach you a system of improvisation so that you can navigate the day-to-day unpredictability of the work world.
  • Help you develop a strategic career plan, so you know what to do if the sky falls in your current job.
To teach you a system of improvisation, Lopp takes you through the kinds of situations that are likely to arise in software development firms and helps you understand the underlying system and rules. He shows you tools and techniques for managing your time and workload. 

To help you develop a strategic plan, Lopp provides a narrativea single job in all its aspects, from interviewing to leaving, seen largely from the perspective of a manager. He likes the number three, so he gives you three questions and asks you to keep them in mind as you follow the book's narrative: 
  • What am I doing? 
  • What do I do? 
  • What do I care about? 
To Lopp, your day-to-day work, your management philosophy, and your career plan should be driven by another set of three questions:
  • Am I setting the technical direction?
  • Do I know what I have to do to grow?
  • Am I keeping my commitments?
Lopp uses technical direction as a shorthand for all of the technical aspects of your career, from choosing an area to work in to writing a piece of code. You might not get to make all of the decisions, but if you write code, you should know what’s best for it at all stages of its life.

Failure to grow brings quick death in the technical world. Information has a short half life. If you haven’t failed recently, if nobody is challenging you, if you haven’t learned anything significant this week, you are in danger of falling behind. 

Failing to keep a commitment, even a minor one, puts a scar on your reputation that is hard to erase. Your reputation is a huge asset that you should maintain at all costs. Sometimes this means telling your boss that you can’t handle that one extra task. Better to say no than to say yes and not do it.

There, in a nutshell, is Lopp's philosophy. But the best thing about the book is Lopp's insight into situations, management techniques, and tools. The bulk of the book explores all aspects of a hypothetical job. 

Job hunting

Lopp starts with the decision to leave your current job. After three years in a job—three releases for the product to become real—you might start to feel the itch to leave. Don’t mistake anger for the itch—cool off first before you act. When you do feel the itch, however, it’s time to go. You might have reservations about whether you’re really done or about the people you’re leaving behind, but Lopp has good answers to those reservations. You’re never really done, and your network transcends individual companies. Start looking for your next challenge. 

Many books contain advice about resumes, portfolios, and interviews. This one is as good as any. Most of it is in line with other books, but Lopp addresses one area I haven't seen elsewhere. As an interviewee, you want to help the interviewers get what they need, but you need to elicit information too. Lopp talks about finding the "button" that will get each kind of interviewer talking. Some interviewers arrive angry, some love to talk, some try to maintain control, but for most of them, there is a strategy that will loosen their tongues.


Lopp also looks at some of the dangers that can catch a hiring manager napping. Requisitions look good on paper, but they can disappear in an instant. He recommends spending at least an hour a day on each open requisition. He also advises laying some groundwork before you have a requisition. Build a network of people you can call when the requisition appears.

Sometimes someone you thought you had hired decides to stay where they are. Lopp believes that this is often because you didn’t let them know how much you want them. He advises keeping in touch from the day they accept the offer until the day they show up for work.

People on the job

Lopp emphasizes the kinds of informal interactions and relationships that don't show up on the organizational chart. When he was at Netscape, for example, four people who didn't look especially important on the organizational chart met each day to play bridge. He soon learned that they set much of the technical direction and corporate culture. When one of them left the company, long before the visible signs of trouble, Lopp knew that it was time to go.

Another interesting bit of analysis that Lopp performs concerns what happens when you make a big mistake. Your boss temporarily assumes a new persona: Interrogator, Illuminator, Randomizer, Prioritizer, or worst of all, Enemy. The temporary change may reveal attitudes and communication problems you didn't know existed. Lopp characterizes each of these reactions and shows how to restore your boss's usual calm, supportive personality.

Lopp brings his insights to other common situations. Your group gets sudden bad news and a number of personas appear, some requiring careful treatment. One displays explosive anger. Another refuses to accept the news. Yet another sees the sky falling. One blames himself while another says, "I quit." Lopp shows the course that each of these reactions is likely to take and explains how to get everyone into problem-solving mode.

Interpersonal relations take work, but some people are too much work. Every group has its values and beliefs. Those who are fundamentally incompatible with those values and beliefs must go, no matter how good they are. As Lopp puts it, the history of Silicon Valley is full of toxic people who were right. Their agenda and ideas were right for their company. Nonetheless, they had to go.

Lopp believes in the Pond. The workplace supports many information flows—official and unofficial. If you're there, you pick up on them. If you're not, you don't. When someone on his team wants to work remotely, Lopp may feel he has to say yes, but he worries. Stepping out of the Pond may be that person's first step toward leaving. On the other hand, the modern world makes it difficult to avoid remote workers altogether. Lopp identifies the factors in the employee and in the group that are essential to making it work. 

Games

Lopp has two important roles for games in his management approach: stimulating activity and developing relationships. In one example, he uses a list of bugs on a whiteboard and a system of scoring for analyzing and fixing them. Players use different colors to record what they do, and everyone can see who is accumulating points.

Back Alley Bridge, known by its acronym, BAB, has been around for at least fifty years. It looks a bit like Bridge and a bit like Hearts. The bidding is a bit like Pinochle. An important aspect is the trash talk that accompanies play. Lopp uses it to build trust between two managers who aren't getting along.

The Werewolf game has made the rounds of the Internet in various forms. Each night in the village, the werewolves kill someone. Then the remaining players awake and try to identify a werewolf to kill. They have nothing to go on but what they observe, as one after another is accused and presents a defense. Lopp believes that playing this game will sharpen your interpersonal skills and prepare you for business meetings.

Networking

When people talk about networking, they usually mean building a network of contacts throughout the industry. Lopp has a slightly different emphasis. He tells you to find "your people." Growing up, you may have been an isolated one in a thousand. But now you can improve your odds considerably. Go to conferences. Join affinity groups. Contribute to mailing lists. You will know your people when you see them. Writing about what you care about can be your initial connection, but extended face-to-face interactions show you what email hides: I talk with my hands. You can't stand the distraction of looking anyone in the eye when you're thinking hard. 

Managing time

Lopp has a lightweight system for tracking the tasks he should be working on. His artifacts are a to-do list, a parking lot list, and a trickle list. He reviews them briefly twice per day—the morning scrub and the evening scrub. His underlying principles: you won't complete everything you should; if you drop an important task, it will find its way back. 

The morning scrub starts with yesterday's to-do list. If you intend to do an item today, leave it on. Don't assign it a priority or a completion date. If you intend to do it after today, use it to start today's parking lot. If you don't have a realistic plan for doing it soon, throw it away. The evening scrub is similar. 

The trickle list tracks long-term goals. The column heads are types of activities, like read a book or have a hallway conversation. Each day gets a row of Xs and Os. Looking at the list can remind you of things you need to do or changes you need to make to your long term priorities.

Lopp has a framework for deciding which tasks to take on. Some things that come his way are crises. He has to take them on. In addition, he insists on devoting some time to creative activities—sitting in a room and thinking or doodling on the whiteboard. He hopes to delegate everything that falls between—routine matters—to someone else.

Bits, features, truth

Everyone talks about the triangle of time, quality, and features. You can have any two of the three. If you think about this metaphor for any length of time, it falls apart. Lopp replaces it with the idea that on any project there should be three separate authorities, one each for bits, features, and truth. These are the traditional roles of the engineering manager, the product manager, and the program manager, but thinking in terms of the actual functions may be more realistic.

The people occupying the three roles should be equally strong. There should be both a healthy tension and mutual respect between any two roles.

A complaint

My main complaint is about editing. The credits list an editor, a production editor, a copyeditor, and a proofreader. Nonetheless, the book has many typographical errors. The writing style is far from crisp. Furthermore, I feel that it suffers from a serious error of editorial judgment. The writing is full of unnecessary profanity. Even if the author speaks that way, there is no need to reproduce the vulgarities in print. They add nothing essential.

I recommend this book highly because of its content. This review covers many aspects of the book, but there are important topics I don't mention. If you have anything to do with software development, or if you just feel geeky, I hope you'll buy the book and study it.