Back in 2006, I was leading a team of engineers at a company called Micromuse when we got acquired by IBM for nearly $900 million. I was promptly asked to add 30 people to my team--my team of ... six. Average Age of the six? Twentysomething. Average age of the 30? Fiftysomething. Me? I was 28. It was, shall we say, an opportunity for personal growth
Little did I know, as I started interacting with my peers, the graying population of IBM "development managers," how little I knew. They were clearly not as technical, and had to pull in relevant associates whenever the discussions got too weedy. Meanwhile, I knew every line of code in the product and thought I was a badass.
It went on like this for months, with me bouncing off the walls, building stuff and giving demos and just being a legend in my own mind while all these grizzled IBMers sat there shellshocked and, no doubt, hating my guts. I was constantly diminishing them, giving them the fish eye when they confessed to not knowing x or y.
When the jerk in the room is... you
But there was one meeting in particular where I was really having a hard time concealing my contempt: Afterward, I went to my Micromuse mentor, who was a good friend by that point -- and, at 34, with an MBA, seemed like Father Time; I started ranting at him about how I couldn't take it, that I was looking for a new job, and on and on. He waited until I ran out of gas and then looked at me and said: "There was one asshole in that room today. And that asshole was you."
It turns out that leading a team of coders at a startup is not the same as leading a team of humans at a major corporation.
Coding, of course, is built around Algorithms and functions; if you've written a function that "returns true," you've gotten the machine to do what you want. "Let me teach you something," my mentor went on, ripping me an existential new one. "When you get in a room, you need to look around the table, at each person, and ask yourself: 'What is the Algorithm I need to write to get that person to return true?' What you just did in that meeting was, you wrote five algorithms and they all returned false. Your programming sucks."
Unfortunately, I never managed to integrate that lesson into my work at IBM. It's hard to reboot your management operating system in mid-task; you sometimes just have to change jobs, or at least teams, before you can evolve. But when I left to go to Apple, I put it at the center of how I ran my group--and now that I am a CEO, at the center of my company.
The lesson was pretty simple. At meetings, I started spending less time working my mouth and more time ... listening. I stayed off the offensive. And I began rewriting the algorithms I used to manage actual humans -- people who were not, as it turned out, idiots, but extremely intelligent, just in a different way than I like to think I am. (To all you young 'uns out there: IBM was the company that invented not only LASIK surgery, ATMs, and the computer hard drive, but also the incomparable Watson AI. They knew how to build stuff too.)
A new way to look at everything--and lead
My new algorithm had only three variables:
A = Be vulnerable. Admit that you need help, and that not only can you not know or do everything, you actually don't know how to do everything.
B = Learn to feel empathy. Other people need to know you can share their experience, their concerns, and sometimes even their terror in the face of hard problems.
C = Create a collective goal, not an imposed one. Write the algorithm so others see you not as an oppressively demanding jerk, but as someone with something to offer: a potential shared success.
Years later, I went into my manager at Apple and told him the "return true" story. And he dropped some Next Level Sh-t on me: "Alan," he said, "it's not just true or false. There's a whole spectrum between 0 and 1 that is going to get returned. You have to work with the uncertainty and the lack of clarity and push through to a solution anyway."
I'm still writing the algorithm for that.