Totally worth your time, especially if you’re knowledge worker and you feel like grunt from time to time. I expected the book to be a little bit crazy but it isn’t. The entire corporation-driven sector of the IT industry is crazy instead.
This book is an in-depth version of Don’t Call Yourself A Programmer article, one of my favourites.
And by “in-depth” I mean really deep dive into the delusion of “real programmer”. And it debunks a myth that the pyramid-shaped organizational chart is wise, honest and functional.
Writing is very good. First 100 pages were really intense but dark. It creates a framework allowing you to understand goals of your coworkers.
Or your goals if you’re not an adult yet. The rest of the book pushes you discover the bright future of the industry as author sees it. It’s interesting.
Corporate delusion treatment made me realize a thing. The thing is, everybody thinks he sees a given topic as is, without illusions. Sure, most people agree there’re some incomplete information but they cannot see the dogma they live in. So the phrase “I understand about the topic more than anybody I know and, probably, more than most other people” is a lie.
It’s the most universal delusion.
They have literally no idea how much the project will
cost nor how long it will take, even rounded to the nearest quarter
million—or quarter year. What they’re trying to do is find the magic
number where they’re cheaper than their competitors, but not too
cheap as not to seem credible. It’s not an estimate. It’s a guess at
the figure you want to hear. But they can’t just go to the bottom,
because they might not seem credible, and they know that you’ll
line up all of the so-called estimates and pick the second cheapest
one. So their real goal is to try to be second cheapest, sort of like a
weird version of ‘The Price is Right.’”.
“I realize it’s a tough sell. You have budgets and people looking for
forecasts, and ambiguity doesn’t sit well in that world. The next
way that we do things differently is that we invite our clients to
consider software development as a service instead of considering
software as a commodity. You aren’t buying a web application the
way that you’d buy a building or a tractor or something. You’re
partnering with us to expand your organization’s capabilities. A
helpful comparison that I’ve used in meetings like this is to imagine
that you’re contracting for snow removal during the winter. If a
bunch of companies come in and tell you that they know how much
snow there will be and how much it would cost you, you wouldn’t
really take them seriously. What you’d want is an agreement where
they provide you with the service of hauling snow away when snow
appears and needs to be hauled away. We’re like that. When you and
your users discover that your site needs a better admin component
or a simple login mechanism, you let us know, and we do it.”.
After five years, the reverence
with which I had mouthed the title “software engineer” had been
replaced by bitterness.
Looking back, my overvaluation of title was just a symptom of
a deeper illness. And the deeper illness was the grand delusion
that the pyramid-shaped organizational chart is some semblance
of a meritocracy. It isn’t, and it’s not close. But I had some jobs
to hop before I’d figure this out. Back there at my first job, the
great unfairness of it all finally caught up with me. I had sole
responsibility for more than one software product, and I was now
the lead on other initiatives, leading people with more advanced
titles than mine.
Five years
of saving troubled projects, producing miracles, and running teams
hadn’t earned me software engineer II. But offering resignation did.
Lesson learned.
Plato describes a tribe of people that live in a cave
and are bound so tightly and inescapably that they cannot move at
all—even to turn their heads. And they are fixed in place to stare at
the cave wall. Behind them, people enter the cave periodically, make
fires, and put on puppet shows for the cave dwellers. All that the
bound cave dwellers can see are the shadows from the puppeteers,
who are tricking them. Those shadows are almost the entirety of
their lives, and they measure social rank on the basis of who can
best predict future movements of the shadows and remember past
ones.
Now, imagine that a puppeteer unbinds one of the cave dwellers
and shows him the fire and the puppet show. It would irrevocably
alter the cave dweller’s world and perception thereof. Further,
imagine that the puppeteer removes the cave dweller from the cave,
altogether, and shows him the full, vibrant world of the sun beating
down on the countryside. The cave dweller would be changed to
such a degree that his former life would be inconceivable. Now,
imagine trying to put him back there with his former friends,
exchanging social status on the basis of how well they remembered
moves of the shadows and how well they could predict their next
moves. He would predict the next moves easily, take no pleasure in
doing so, and find his former friends unrelatable and pathetic.
This is a drawing by a cartoonist named Hugh MacLeod (of gap-ingvoid.com) that’s ingenious in both simplicity and critique.
Drones at the bottom, ruthless manipulators at the top, and a
creamy center of buffoons. These are the ones that think they’re
going to make it to the top. They won’t. And they’re clueless to that
fact. They’re the kids that still think they’re going to grow up to be
Jennifer Lawrence.
This principle says that the sociopaths that run the organization
knowingly overpromote dedicated but relatively inept people into
middle management.
Why would they do this? In middle management, these clueless
folks serve various ends for the sociopaths. But the most important
ones are “foil” and “buffer.” As foils, they can be cannon fodder
on projects with low chances of success and they can be blamed
when things go sour. The buffer play is a bit subtler. The sociopaths
that run the company have power, influence, and lives that make
most people jealous. The losers at the bottom rungs of the corporate ladder are jaded line-level employees resigned to a relatively
powerless lot in life. They put in just enough effort to remain in
good standing at work and remain aware that their employment is
a pretty bad deal for them and a pretty good deal for the sociopaths
at the top. A lot of direct interaction between the executives and the
rank and file would quickly lead to resentment. So these high-level
sociopaths overpromote a handful of the low-level losers who put
forth disproportionate amounts of effort. These former losers enter
the clueless ranks of middle management to act as a buffer. The
remaining losers can’t really hate the promoted clueless because the
clueless aren’t calculatingly taking advantage of them. The clueless
believe that they’re on track to be CEO while the losers and the
sociopaths both know that’s absurd. In the The Office, Michael
Scott represents this archetype—incompetent, fanatically loyal to
his company, and clearly not headed for the C-suite, whatever he
might think.
Don’t think of what’s wrong with
these folks. Instead, think of what they’ve lost.
The loser is pretty simple to size up in terms of loss. What’s
generally been taken away from most line-level employees who lack
organizational faith is their hope. These are people from whom you
can expect to hear pithy consolation narratives like, “I don’t live
to work—I work to live.” The loser has forked over any real hope
at a dream life in favor of small optimizations designed to make a
common grunt’s situation more livable.
What’s been stolen from the clueless is a bit subtler, but I’ll couch it
in terms of information. A sense of perspective has been stolen from
them by the rat race, resulting in wild overvaluation of perks and
honors conferred on them by the organization. Part and parcel with
this is the cognitive dissonance of assuming that their ascension in
an organization was the result of merit and hard work rather than
inevitability and patient waiting.
The most difficult to assess is the sociopath, who has an enviable
position at the top of the organization. It’s easy enough to think that
sociopaths are the onestaking things from the other two archetypes
and thus are sitting pretty themselves. But in reality, their position is
something of a default one. They refuse to cede hope and they refuse
to cede perspective, so they acutely understand that the corporate
citizenship game is one where the only outcome of playing by the
rules is to lose. And so what they give up is the ethical compass they
had when they began their corporate journey.
I propose that we rename the losers, clueless, and sociopaths to “pragmatists,” “idealists,” and “opportunists.”
Their roles and dynamics remain the same, aptly described by
Venkatesh. But these suggested new names soften our attitude
toward them. Pragmatists are line-level employees who find value
in life outside of work, mainly because the hope of any meaningful
advancement and enjoyment of their profession has been taken
from them. Idealists believe heartily in the meritocratic company
(and organizational superiors) as a benevolent steward of their careers because perspective has been taken from them. Opportunists
refuse to yield hope or perspective and recognize that the only way
to win the corporate game is to play by their own rules. In this
realization, they give up ethical certainty and human connection.
Opportunists play a lonely, sad game to get what they get.
Let’s consider an employee named Alice, laboring away as part of a group
of line-level knowledge workers. In the group, there is an official
“team lead” position that has no reports but is a leadership role.
This role has recently been vacated, and the odds-on favorite to
replace the former team lead is a loud-mouthed, long-tenured guy
named Bob. Let’s further assume that this role is at least passingly
desirable to Alice.
Alice the pragmatist (formerly called “loser”) looks at this wistfully
and shrugs because she knows that, even though Bob is an idiot, his
assumption of the role is inevitable. She makes peace with that, feels
generally checked out at work, and enjoys her life in other ways.
Alice the idealist (formerly “clueless”) looks at this opportunity
and resolves to put in sixty-hour weeks to Bob’s fifty-hour ones.
She also begins to match Bob blow for blow in self-promotion,
grandstanding, and managerial posturing. She knows that, for the
short term opportunity, she’s unlikely to edge Bob out, but over the
long haul of several years of sixty-hour weeks, she’ll prove that she
deserves that role. The economics of working 50% more for free to
earn an eventual promotion never really occur to her.
Alice the opportunist (formerly “sociopath”) looks at the situation
and finds common ground with her pragmatist and idealist selves.
She realizes that she’s no match for Bob the incumbent but she also
knows that trying to prove herself one over the next five years is a
sucker’s game. Like her idealist self, though, she wants the role. So
Alice the opportunist updates her resume to include weasel terms
like “thought leadership” and, with plausible deniability, starts
interviewing for team lead roles at other companies, eventually
landing an offer and either taking it or parlaying it into being placed
in the role ahead of Bob.
And that’s it. In the end, it’s about four total hours of two parties
grandstanding and putting forward their best faces to determine
whether or not they should spend the next bunch of years working
together. If that seems reasonable, ask yourself if you’d go out for a
night of speed dating with the catch that you had to marry someone
by the end. The professional relationship between employer and
employee is just that—a relationship.
In 1921, tired of hiring college graduates that didn’t know as much
as he did, Thomas Edison made up a giant trivia questionnaire
to administer to inbound applicants. According to Mental Floss⁹,
questions included “Who invented logarithms?” and “Why is cast
iron called Pig Iron?” If you look at the sorts of questions that
modern day tech companies seem to think they’re cute for asking,
courtesy of cio.com¹⁰, they include such profundities as “Why is
the Earth round?” and “How much do you charge to wash every
window in Seattle?” If you mixed the two sets together, you’d be
hard pressed to tell the difference.
To summarize, almost 100 years ago, an aging, eccentric, and
incredibly brilliant inventor decided one day that he didn’t like
hiring kids that weren’t his equals in knowledge. He devised a
scheme off the cuff to indulge his preference and we’re still doing
that exact thing about a century later. But was it at least effective
in Edison’s day? Evidently not. According to the Albert Einstein
archives¹¹, Albert Einstein would not have made the cut. So the
biggest, trendiest, most forward thinking tech companies are using
a scheme that was dreamed up on a whim and was dead on arrival
in terms of effectiveness.
… only pragmatists that are hired this way, and it is also, by and
large, only idealists that conduct the process. Opportunists know
that sitting on either side of the interview table is a bad deal.
As interviewees, it’s just a question of sticking to tradition (nice
clothes, punctuality, not fidgeting) and hoping for good luck, and
as interviewers, it’s a fool’s game. If they give the thumbs up to an
awesome candidate, there’s not much benefit, since it will be the
hire herself that eventually receives accolades. On the flip side, a
thumbs up to a candidate that flames out quickly and spectacularly
will stick to the person who did the hiring. And worst of all, if they
give too many thumbs downs for whatever reason, they start to be
viewed as ineffectual leaders that can’t attract and staff talent.
The particulars don’t matter, but the point does. Pragmatists have
their real thing that they care about, and it isn’t the job they’re
doing. This is an entirely rational means of ego salve, similar to
a teenager making a big to-do over how he doesn’t “believe in”
the prom because of some philosophy or another that he’s adopted.
Getting dates isn’t easy and the attempt may mean embarrassment,
so it’s a lot safer to create a choice narrative around not trying
in the first place. Corporations assemble themselves into pyramid
structures where advancement, like prom dates, is a zero sum game.
It’s a path of far less resistance to be the boozer, the family man, or
the woman with the Harley collection than it is to be the aspiring
CFO. Only the last item involves competition and the potential for
failure.
He’ll consider it from time to time,
sigh, pour himself a beer, and say something like, “You know, I don’t
live to work—I just work to live!”
This philosophy comes with a price tag. As a matter of fact, it comes
with a dreadful price tag.
Knowledge-worker pragmatists tend to be salaried exempt employ-ees, meaning that they work for a salary and not a variable hourly
rate. And salaried exempt employment is an atrocious economic
deal, especially for programmers. To put an exclamation point on
it, let’s go through some numbers.
For the sake of easy math, let’s consider a pragmatist that is a
representative senior software engineer in the United States making
$100,000 per year. If you’ve ever been a manager (or a contractor),
you’re probably aware that there are 2,080 work hours in a year.
Let’s drop those eighty hours off of the end and assume that they
count as Christmas, Independence Day, etc., up to ten holidays
per year. So that means that the pragmatist works 2,000 hours and
receives $100,000, or $50 per hour. That’s a pretty good wage.
But then, consider the fact that his labor on the freelance market can
easily bill out at $150 per hour. I’ve seen this pay ratio play out in
multiple locations with multiple vendors. When I ran a department,
I routinely solicited software services and saw a pretty standard set
of rates come across. Bargain basement was $100 and top-of-the-line specialized rate was $200. The blended rate would average a
senior developer generating $150 per hour in revenue for his or her
company.
So what gives? Why does this large gap exist? Well, because of all of
the expenses that an employer incurs on the worker’s behalf, all of
the perks of working for a company, and the stability, right? Okay.
Fair enough.
Well, it’s a hearty pat on the back, an “attaboy, keep up the good
work,” and a 5% cost of living adjustment (COLA) instead of a 3%
one in twelve months, at your annual review. At your $100,000
salary, that means that you get an extra $2,000 per year, which totals
out to $1 per hour. And that’ll start in a year, minimum, rather than
when you start providing the value.
So you make your company an extra $150 an hour by being
awesome, and they toss you a buck. And the next year, they toss
you another. Then, maybe in year three as an overachiever, you’re
“ready” for a promotion. They bump your pay by $10,000 annually,
bringing you up to a total increase, over the course of four years, of
$7 an hour. In your time at this company, you’ve earned them an
extra $1,200,000. They’ve responded by letting you keep $20,000 of
it.
So your choices,
as an efficiency machine, boil down to “collect $50 per hour to
look busy but coast and duck out early when no one is looking”
or “collect $52.50 per hour to put the pedal to the floor and give
your all.”
The perverse incentive is that looking busy is far more important
to your career than adding value.
At this point, it bears mentioning that your employer isn’t screwing
you. It’s playing by the standard corporate rules. I mean, think about
it. What company is going to say, “You know what, let’s start paying
all of our devs $250,000 a year?” If they were publicly traded, the
shareholders would riot. These are the rules by which individuals
and corporations play and pay. It’s just that the rules are such that
non-ownership employees create gobs and gobs of surplus value
they don’t get back.
And that brings us back, full circle, to the reason that I call this
archetype “pragmatists.” While it’s true that they’ve ceded hope
to the organization, they haven’t ceded their sanity. The probably
don’t fully grasp just how bad their deal with the company is,
but they do understand intuitively that it’s a bad deal and that
the system heavily favors other players. They also understand the
sharply diminishing returns of working harder for a few extra
dollars per hour. They’re entirely rational to want to put up the
minimum effort required not to be noticed since that effort gets
them $50 per hour compared to $52.50 per hour for a lot more work.
Toward this end, idealists establish a currency of sorts that can be
thought of loosely in units of company culture. They put in long
hours, answer midnight phone calls, go to company events outside
of work, and practice using company jargon with the goal of earning
units of this currency and the things that it buys, such as perks
like a better parking space or first choice of donuts at the weekly
accounts meeting. Part of losing perspective is being willing to delay
gratification and make irrational sacrifices to obtain units of this
currency, which is completely worthless in the real world. And
anyone focused on obtaining this currency tends to assume that
everyone else is similarly focused, which makes idealists inclined
to assume everyone else is like them. This leads them to make
awful strategic and economic decisions as they endlessly chase the
seniority dragon.
At any company, you’ll find a culture. But don’t go looking for it
on the “company culture” page of its website. Beer Friday, company
paintball outings, and goofy hat day aren’t culture—they’re a marketing flier made three dimensional and brought to life. Ditto for the
company’s “values,” if your organization has enough bureaucracy
that someone’s been tasked with defining them. These only answer
the question, “What would make us sound good on a quarterly
report?”
A company’s real culture consists of its pecking order, the stories
long-tenured folks tell, the company-specific jargon, and the approach to making money and solving problems. And it’s by their
investment and belief in this culture that you can identify idealists.
To understand the mindset of an opportunist, consider an example
I once offered in my blog at daedtech.com. I advised software
developers to file a “doing business as” (DBA), which essentially
means that they create a corporate entity, legally. Instead of doing
business as Jane Smith, sole proprietor, Jane can do business as
“JaneSoft.” I then advised these same developers to spend $120 per
month hiring a virtual assistant (VA) firm to help them perform
various tasks around setting up the infrastructure necessary for
a software consultancy (a website, bookkeeping, etc.). Finally, I
advised them to add “Managing Director, JaneSoft” to their resumes
and list management of a global team as part of their day-to-day
responsibilities. Having done this, a software developer has a pretty
compelling case to ask her boss for additional responsibilities or a
leadership position. If the boss doesn’t buy it, well, the developer
can start interviewing for management positions elsewhere with a
year of management experience at the top of her resume.
A company can get by with pragmatists and opportunists for as
long as the opportunists can divide the workforce into segments
that they can and are willing to manage. The technical co-founder
and CTO will manage all the technical pragmatists, the COO
co-founder will manage the operations people, and the CEO co-founder will manage the sales and marketing people. Or whatever.
The particulars don’t matter—just note that the opportunists are
divvying up management.
The organization gets too big for
the co-founder oligarchy model to be practical. Or maybe the co-founders don’t want to manage people directly. Perhaps they just
want to reward an early pragmatist hire for loyalty or for performance. Whatever the catalyst, the owning opportunists pick a line-level pragmatist who, while not considered worthy of partnership,
they feel should have some elevated status nonetheless. This is the
original company idealist.
Now maybe this isn’t strictly true of you, and maybe you even
believe that it isn’t true of many people. But then ask yourself why
there are so many laws to protect people that are whistleblowers
and victims of harassment or discrimination. If the corporate environment isn’t one in which power is so complete as to constitute
de facto ownership, why is it necessary to have all manner of laws
and support groups to prevent people from being coerced into doing
things that go against every fiber of their will and being? Is it really
voluntary when you’re asked to do something if there’s a message,
always lurking beneath a silk veil, saying, “and if you don’t, we can
remove your ability to pay your mortgage and medical bills.”
Imagine a cash-strapped father walking home from a long day at
the office, wishing he could do more for his two children, Alice and
Bob. As he nears his house, he stumbles upon a wad of small bills
on the sidewalk, totaling $20. He picks them up and decides to offer
his children a rare treat.
But as he walks in the door, he has a thought. Rather than just
dividing up the wad of singles evenly, why not take the opportunity
to impart a life lesson to the children? The father asks the kids how
their progress went on their homework. It turns out that Alice has
gotten hers done promptly while Bob’s only about a third of the
way through his. So dad gives $15 to Alice and $5 to Bob, telling
them that good things come to children who do their homework.
The next night, our protagonist walks home but, not surprisingly,
finds no money waiting to be plucked from the sidewalk by a lucky
passerby. He comes home to find that, having learned their lessons,
both Bob and Alice have completed their next three nights’ worth of
homework. Dad, however, is in the unenviable position of having no
way to reward this with $45 per child, so he gets clever. He picks up
each assignment, finds errors in it, and tells the children that there
will be no homework bonuses this evening because their homework
quality is not up to snuff.
If Dad is an opportunist, he goes to bed feeling guilty. If he’s an
idealist, he goes to bed feeling as though he’s taught the children a
valuable lesson. The pragmatist children go to bed feeling as though
it might not actually matter that much what happens with their
homework and that money from Dad is just sort of random.
In the corporate world, the determining factor that drives every-thing is profits and losses. Does Dad come home with money to dole
out or not? A company exceeding its expected performance will
come home with a surplus to dole out, whereas an underperforming
company will not. To anyone who has ever received a “We didn’t
do well this past year, so no raises for anybody” memo, this isn’t
especially surprising. But what ought to be surprising is that most
performance reviews are determined more by the available budget
for raises than by your performance, a la Dad with his homework
critiques that had more to do with his wallet than with the children
being reviewed.
The opportunists see reality. They see that budget decisions having
little to do with individual, group, or department performance are
made and that it’s up to them to translate this into a narrative
about who is or isn’t a good, homework-completing little boy or
girl. They understand that it’ll be up to them to take, “Meh, we
don’t really have money to increase payroll for that group beyond
COLA” and turn it into, “Gosh, you did some awesome work this
year, Alice, but you just need to get a little better at ‘business values’
and ‘corporate integrity’ and I’m sure you’ll earn that promotion
next year!” They resent this even as they understand its necessity.
It’s necessary because the truth—”We don’t really know if your
individual performance adds value or not, and either way, it doesn’t
have much to do with whether or not you get a raise”—would be
demotivating enough to chase you to a company who wouldn’t
make the absurd mistake of being honest about this.
But that changes for organizational opportunists, who, in these
roles, have a much more bitter pill to swallow than their counterparts
in organizational profit centers. The idealists in checks-and-balances roles lack organizational perspective, allowing them
to believe wholeheartedly in their cause of making the company
a good and just place to work. Pragmatists may take some small
satisfaction from it, though they probably don’t care. The opportunists, however, understand that they are in a role whose actual
purpose is to protect the company from its employees, not the other
way around. That’s the bitter pill—the one that either drives the
formation of callouses or else makes the work particularly sad and
lonely.
It might seem strange or improbable to consider the guardian roles
in this way. After all, we think of the office of the human resources
manager as the place to go in confidence if your manager Sleazy
Steve is being sleazy. And this is, in fact, the place to go for recourse.
But HR provides this service to the company and not to you. If
the situation escalates and there is no HR for you to talk to, your
next call will be to an outside attorney, which means a much
more expensive problem for the organization. Putting processes in
place for internal reporting and policing allows the situation to be
handled with the much cheaper internal disciplinary action.
HR is protecting you in this narrative, but if you imagine things
from Sleazy Steve’s perspective, the company is actually using HR
to protect itself from him. And that is the essential, core premise.
HR and other internal watchdog concerns exist to stop the actions
of employees from being expensive to the company.
Things like dress code or having drink tickets at the Christmas party
so no one gets too wasted and drives home? They’re really about
minimizing organizational cost in the form of messy fallout from
human interactions.
All of that is our legacy, and all of that is our modern reality. But all
of that is a bubble that is about to pop. Ubiquitous and inevitable
as it seems, the modern corporation is dying and a sea change is
coming. Why do I say that? Well, it’s simple. I mentioned the term
earlier, promising to return to it, and here I shall. For the first time
in recorded history, we easily own our own significant means of
production.
Before the Industrial Revolution, craftsmen and traders did not
own significant means of production—they had no way to scale.
And starting with the Industrial Revolution, owning the means of
production require massive amounts of preexisting capital. That has
remained true up until quite recently. But now, that has vanished
spectacularly.
In the novel Crime and Punishment³⁹, a student named Raskolnikov
reasons that society consists of the common man, who plays by the
rules, and the “extraordinary” (e.g., Napoleon Bonaparte), to whom
the rules of society simply do not apply. He makes a ham-fisted
attempt to define himself as one of the latter by killing a woman
he believes to be a drain on society, and let’s just say that it goes
poorly for him. To have it go well for you, learn from his mistake.
Aping behavior is not sufficient. Napoleon wasn’t “extraordinary”
because he could order deaths and get away with it. He could order
deaths and get away with it because he was “extraordinary.”
There’s a lesson for us in Raskolnikov’s approach and struggles
beyond just “you shouldn’t kill people.” Becoming an opportunist
isn’t a matter of embracing cynicism. It’s not deciding that rules
don’t apply to you and shoving off all loyalties, nor is it any kind of
general hardening of spirit. I believe one of Dostoyevsky’s points
with this book may have been to counteract the standard trope
of a character who is only truly able to reach great heights by
deciding to become cutthroat, mercenary type. Deciding to become
a mercenary will simply make you a mercenary. It won’t make you
a CEO.
At its core, becoming an opportunist—becoming “extraordinary”—
is about becoming other. But that’s extremely abstract. Let’s put
some meat on the bones.
This transformation into an opportunist is, at its core, about altering
your perception of yourself. You need to stop viewing yourself as a
software engineer II or a QA specialist or a dev manager. You need
to stop viewing yourself as an employee of your (or any) company
and start viewing yourself as the owner of your own personal brand
and operation. You are an island. You are other.
The Agile Manifesto was written in 2001 by a group of influential
software professionals. They were people that were writing books,
speaking at conferences, helping major companies, and defining the
state of the art for the industry. In short, The Agile Manifesto was
written by a group of people with options. They, like the forest
wolves, were self-sufficient. When they introduced the democratic,
highly-collaborative, often-role-less agile teams to the world, they
did so from a position of strength. But if those companies—Wolf
City—had started ordering them around like grunts, they could
simply have left and taken their pick of other gigs.
In a development that would be somewhat comical if it weren’t so
sad, these “you will now do Scrum” teams are usually measured
with a great deal of scrutiny. It’s ironic because the lack of trust
subverts the foundational autonomy that agile methods call for, and
it makes team mediocrity a self-fulfilling prophecy. The company
imposes micromanagement on the team to make sure the new agile
rollout is going well, and that micromanagement makes the team
worse. As the team gets worse, the micromanagement increases.
This situation tends to continue and create churn and attrition until
someone comes in and finally wins the battle to secure a tiny bubble
of semi-autonomy for the team. At this point, output increases
and companies are usually somewhat happy. But that happiness is
short-lived, as the newly efficient city wolves often like the taste of
autonomy and proceed to run off into the forest.
The tragedy of corporate Scrum starts with this autonomy paradox.
Scrum is an excellent methodology for the forest wolves who
assemble and hunt as self-sufficient peers. If free-agent knowledge
workers come together to work on a project and they adopt Scrum,
life is good for all. The methodology prioritizes common sense
collaboration; tightens feedback loops; gives all team members
equality and a voice; and generally makes it easy to manage, track,
and pick up work. Scrum is not an excellent methodology for people
who possess only illusory autonomy. In this context, it’s a farce. In
this context, it’s realpolitik tragedy for its practitioners.
The more enthusiastically you participate in agile methodologies
within a corporate context, the worse your advancement prospects.
Sure, all of your enthusiasm will eventually earn you some kind of
token nod or promotion, but it is purely idealist-track. You’ll top out
low and what you do achieve will be agonizingly slow. All the while,
you’ll be mystified as to why your belly-showing doesn’t result in
people regarding you as dominant. The reason is that the so-called
“servant leadership” valued in corporate contexts is an utter sham.
This brings me to bookend the chapter by revisiting my first
allegory. In it, I hired an idealist who low-balled cowed pragmatists
that didn’t understand their market worth. This happened on a
hypothetical island, but the reality is that it’s happening all around
us, most prominently at organizations like Google, Amazon, and
Facebook. These companies are building pools, and we think it’s so
cool to be building pools that we put up with absurd interviewing
processes and subject ourselves to false scarcity, depressing our
wages. There is a massive shortage of developer labor, and the world
needs all hands on deck. Yet we operate as if a good programming
job were a scarcity that we’d be lucky to have.
Being
a good developer—participating gamely in team activities, learning
enough algorithm trivia to pass interviews, being attracted to the
best organizations using the coolest tech, and so on—is bad for your
career. The real tragedy of all of this is that the current corporate
structure forces you to choose between being a good developer and
having a good career.
Programming is not a calling, and it’s not a craft. It’s
just automation that increases top line revenue through product or
reduces bottom line costs through efficiency.
Delivering something on time isn’t a remarkable story. Delivering
something on time against all odds!? Now that’s a remarkable story.
Seek to dampen expectations without being overtly gloomy, and
then blow those expectations away. Play up how much you’ve
blown them away, too. The ostensible reward will be the fifty-dollar
Amex gift card. The actual reward will be your growing rainmaker
legend.
Any time you have lulls in your expected software delivery schedule, fill those lulls by volunteering for meta tasks around software
development. Volunteer to audit the team’s use of JIRA and see if
you can’t come up with a more efficient process. Schedule some
talks with business analysts to learn the domain so that you can
coach the rest of the team on it. Dig up your team’s yearly goals
from some back email and do a research project, figuring out how
to make those goals more likely. Do this during your lulls and, if
you’re so inclined, do it during your spare time.
Once that’s established, keep it going. Make it visible to management for a while, and it will become an assumed part of your duties.
The real litmus test, and the thing that you’re angling for, is a
situation where you say, “I can’t pitch in on that second feature and
continue optimizing JIRA and coaching the team,” and someone that
matters says, “Well, we’ll just have to assign that feature to someone
else.” You need to become too “important” for simple delivery.
Don’t worry at all about title here. That will take care of itself later,
possibly at another organization. The main thing is that you want
to begin replacing your delivery responsibilities with other meta-responsibilities, ala management. Once you do this, there’s nothing
particularly measurable about what you’re doing, and it becomes
a matter of crafting your narrative. Did the team’s defect count go
down? Well, your work with JIRA happened around the same time.
Did the defect count go up? Luckily, management was aware of the
problem a lot faster because of your work with JIRA. Part and parcel
with doing the meta-work is selling that work to those in a position
to help you. And you can’t do that if you’re snared in the delivery
trap. The output is the output.
And, speaking of output, you have a line to walk here. You don’t
want to be an incompetent programmer (or be known as one,
anyway), but you also don’t want to be your team’s cleanup hitter. If
(and I speak from experience here) you become known as the person
on a team of ten that delivers half of each release’s features, you’re
fashioning a delivery trap for yourself that’s sprung and made of
granite. You’ll never escape because the organization can’t afford
to let you. Instead, you need people to say of you something like,
“He’s a decent programmer, but where he really shines is getting
the most out of the other programmers.”.
Back in the corporate world, you need to start imagining yourself
as a displaced owner/executive/entrepreneur with an explanation
for hanging out among the grunts. Perhaps you’ve run point on a
few startup ventures, but settled into a nine-to-five job for the sake
of a little stability for a while. Perhaps you have a side business
that’s really taking off, but you’re here, getting some perspective
at the line level. Whatever the explanation, you’re an owner and
executive among grunts by your own choosing.
At every level, you want to subtly leverage the threat of the market
without being so crude as to actually threaten anything. You simply
want it to be clear that you have options, and not options limited
to your group or even your company. Amateurs do this by securing
a competing offer and wielding it like a temporary cudgel. Masters
have no need to do this, since they constantly exude options without
resorting to obtuse declarations like, “I have an opportunity to work
somewhere else, so give me more money.”
You can do this in many ways, and you’ll need to find the strategy
that works for you. Little things like tons of contacts and recommendations on LinkedIn can actually help. Speak extensively about your
experience in other places, cultivating an air of the cosmopolitan
that stands in stark contrast to your peers that have only had one
or two jobs. Moonlight on the side and talk about your experience
doing so. Casually cite experience on the level of your superiors in
a flattering way. “I like what you’re doing in terms of dividing up
the break/fix work—when I used to run a team, I had a strategy
that I thought was pretty good, but I’ve definitely learned a couple
of things.” The message that’s actually heard below the superficial?
“I’m actually a peer of yours, but I’m not here to threaten.”.
One of the best ways to really hint at options is to change the
game in stock asymmetrical situations. For example, consider a
performance review. Right at the outset, tell the reviewer, your boss,
that you’re not really interested in more money. If she wants to
show appreciation for your contributions, she could show it instead
by letting you do some research into more efficient ways to manage
the feature pipeline for your group. Explain that this would scratch
a personal and professional itch of yours.
In one fell swoop, what you’re really saying here is, “I don’t need
money, I’m intelligently interested in management, and I politely
reject this silly performance review process.” There is some risk
in an approach like this, particularly if your boss is an idealist,
committed to the farce. But as I’ve said all along, this is not a game
for the faint of heart. Deftly done, there’s not too much risk since
you’re not saying anything untoward. The most likely outcome is
that your boss regards you in a new light, as more of a peer and
something of an enigma. “I don’t understand…who turns down a
raise? That guy must have some kind of interesting master plan,
and he probably doesn’t need this job badly.”
Pragmatists and idealists tend to fail spectacularly when it comes
to the quid pro quo aspect of partnership. As an example, consider
something that you would find for a dime a dozen on BuzzFeed
or LinkedIn in terms of career advice: at performance review
time, you should march into your boss’s office with a list of your
important accomplishments over the last year. Then you should
say, “Here are all of the reasons I deserve a promotion. I have
exhibited LEADERSHIP, and I went out and got officially certified
in LEADERSHIP, and I am thus ready for a LEADERSHIP role!” Lay
out the case for your boss about how awesome you are, preferably
in PowerPoint or something. Right?
Goodness gracious, no. Oh, don’t get me wrong. That’s a great way
to secure a 4 percent COLA instead of a 3 percent COLA because
your bored boss is going to say, “Oh, for the love of God, fine,
because you’ll annoy me all year if I don’t throw you a scrap.” But
ascendant opportunists are not looking for scraps. You don’t have
time.
The trouble here is that the idealist/pragmatist taking this advice is
not offering anything. He’s a student asking for a good grade and
some extra credit, not a partner dealing with another partner. If
you were running the laundry service mentioned earlier, would you
ask your customers for more money because you were “certified in
leadership?” Of course not. That’s worthless to them, and you know
it.
Opportunists don’t demand merit evaluations, and they don’t wait
for performance reviews. If you want your boss to really hand you
some valuable benefits, you need to do the same for her. Make her
life better somehow, then look for reciprocity.
You don’t make your boss’s life better by “demonstrating integrity”
or whatever pap tends to wind up on official performance review
documents. You make her life better by improving her prospects.
Find out on what basis she’s being evaluated and what her goals
are, and then take steps to make those things happen. The official
stuff doesn’t matter. Remember, there is no company. But your boss
is your only client, so improving that client’s life will bode well for
you (at least until you secure better options.
Your path to opportunism is thus fraught with the danger of stalling
out. Getting stuck in the delivery trap makes you a perpetual
pragmatist. Getting stuck with a gigantic hoard of carnival cash
renders you a perpetual idealist.
I’ll close out the chapter by offering one last piece of comfort.
If you find yourself in a situational quagmire, stuck in place for
too long or pinned down and confronted directly with carnival
cash recompense, all is not lost. No single employee of the month
award will relegate you to idealist purgatory forever. I’m more
talking about the noble act of politely refusing carnival cash. Let’s
revisit the realpolitik petri dish from earlier in the chapter. If you’re
sitting there, minding your own business, and someone nominates
you for $100, you have options. Stand up and graciously say that
you can’t accept it because it was really Bob who did all of the
hard work. Or consider a hypothetical scenario: you’re offered
acknowledgement at some huge department meeting for landing
a new client. You could always say something like, “I really get
uncomfortable with that sort of broad recognition for my own work
when so many of my teammates contributed to the pre-sales and
onboarding processes.”
To pragmatists, you seem magnanimous, and to idealists, you seem
like an idealist. You’re avoiding the limelight and deflecting credit
and praise to others. But to opportunists, you’re attracting an
arched eyebrow of interest. They see you saying, “I don’t value
this nonsense, so you can keep it.” That’s going to open you up to
discussions of true weight and impact.
Such assignments represent frequent channels for bounded advancement in the idealist world. If some opportunist mistakes you
for an idealist, you might find yourself “promoted” to work on an
account or project that will certainly fail. “We know it’s a reach,
but we feel that, if anyone can do it, you can,” they tell you.
Counter (and show them that you’re not an idealist) by saying, “Oh,
I appreciate the offer and am flattered, but I think Jim has been
putting in tons of hours and would be a much better fit.”
Be careful with self-effacement, though. The last thing you want to
do is receive some kind of offer and turn it down by saying, “You
don’t want me. I’m a moron.” Rather, you want to self-efface using
an apparently beneficial but really suboptimal trait—hence the “tons
of hours” that Jim’s been working.
Control your situation via narrative-altering counteroffers. If your
boss wants to bury you on some backwater legacy project, don’t
accept that. But don’t resist by pouting or by kicking and screaming.
Instead, offer something else. “I’d really prefer to see my current
project through. What if I stuck with it 75 percent of the time
and dedicated another 25 percent plus some overtime to getting
someone else going on that project?” You’re not simply prevailing
upon your manager’s sympathy or offering the unspoken threat
to be disgruntled for a while. Rather, you’re implicitly expressing
your preference, but doing so in value terms (value to the current
project) and offering some actual skin in the game (your overtime.
If you want to be a dev manager within five years, it’s probably safe
to assume you should be a consultant or project manager within two
or three. Now iterate a step back and think of what needs to be true
in order for you to have those titles and responsibilities in two or
three years. That should lead you to actionable tasks in the here and
now. You’re ready to get to work remaking yourself.
Here, you need to make yourself look big, as if a bear were looming
nearby. Generalize singular experiences to multiple experiences
without technically lying. You know people that do this sort of thing
all of the time. Instead of talking about the one time you had supervisory responsibility, say instead, “Every time I’ve had supervisory
responsibility for a team, I’ve…” If this were a US political debate
fact-check, the panel would call it “true but misleading.” And that’s
fine because “true, but misleading” is opportunist for “I’m about to
get a better job.”
If this feels icky to you, it’s because that’s what the programmer’s
natural enemy, the sales guy, does. You come to the client meeting
prepared with facts and figures that suggest a much more conservative timeline, and the sales guy interrupts you to say, “Don’t listen to
him—we’ve never failed to deliver a project this big before.” Before
you stop spluttering, the deal is inked. Afterward, you say to the
sales guy, “We’ve never failed to deliver a project this big before
because we’ve never had one this big before.” Sales guy grins at
you, goes home, and collects a fat commission.
But really, could the outcome have been any different? In a corporate setting where the upper echelons tend to be populated by
people that you view as self-serving and self-promoting, did you
think you’d get there another way? Did you think it would happen
with overperformance, scrupulous honesty, loyalty, and waiting
your turn?
It couldn’t possibly go any other way. The corporation has evolved
to its current state over the course of thousands of years. And
that state is one in which you have to behave like a self-interested
sociopath to enjoy sustained, rapid success. If that sounds like
madness, it’s because that is madness.
For everyone below the waterline, there is an omnipresent
reality of “if you don’t agree, the door’s over there,” and there’s not
much room above the water.
Ironically, the way to get above the waterline and into a position
of true autonomy requires substantial ruthlessness. Those who
climb the iceberg to get to the top are the ones most likely to
choose advancement over the “right thing” every single time. And
when you consider that not everyone looking to claw to the top is
interested in using the position to do what they feel is right, you
can see that “become the big boss to do the right thing” is a truly
quixotic concept.
I’ve heard it said that, apart from being independently wealthy, no
one ever really has no boss. As an independent or entrepreneur,
your boss changes from someone in a corner office to your customers/clients. There is truth to that. As long as you exchange
your labor for money, those with the money can attach terms to
your receipt of it. But the “you always have a boss” wisdom misses
a fundamental distinction. As an independent or entrepreneurial
owner, you’re participating in a system where you’re incented to
have as many bosses as possible. In the corporate context, you’re
incented, if not mandated, to have only one.
In an investment portfolio, financial advisers will tell you to diversify, with the idea being not to place all of your eggs in one basket.
If the bond market in your country tanks, for instance, you take a
hit without losing your entire portfolio. I look at the market for my
labor the same way. With a portfolio of clients and prospects, I can
push back or refuse requests without putting all of my prospects and
my entire livelihood at stake. In the corporate context, I cannot.
The strategic difficulty that organizations face comes from multiple angles. They don’t have endless, upward flexibility to adjust
salaries. They have to consider cost, both direct (laborers) and over-head (management) and operate within a budget. Reverberating
salary increases thus become non-starters in many cases, forcing
organizations to get creative.
I won’t go into all of the details, but this can take any number
of forms. Most commonly (and especially with union-heavy or
government organizations) they can entice laborers with hefty perk
packages. You can’t pay them more, but you can give them 25
company holidays per year or some such thing. Another common
form is to look for commodity staff augmentation labor, often using
H-1B visa programs and offshore labor. A third approach is to tilt at
the windmill of magical management trends – bring in somewhat
under-qualified, cheap staff, and then hire expensive consultants
selling the snake oil of the magic process that does more with less.
Massive companies have bureaucracies
in place that serve two principle purposes: risk mitigation and
communication at scale. Both of these considerations are anathema to skilled software development. These companies make huge
targets for suits, so they implement cross-cutting policies and concerns about what software is allowed on what machines, who can
download what and when, what IDEs, frameworks and languages
people can use, and on and on and on. And when you lumber
along like this, working with 10 year old language versions and
tooling with no internet access, other companies come along and
drink your milkshake. Good software development doesn’t happen
in environments like that.
The best I can do is to provide a lot of case studies for pattern
matching (an idea I lifted from developer opportunist Gayle Laakman McDowell’s interview on Developer On Fire). I’ve conducted
interviews with a number of people that I would consider to be
developer opportunists.
Let me be a bit more specific about the criteria that I used when
approaching people. They retain hope, meaning that they retain
the notion that they control their destinies. And they do this
while maintaining perspective, unlike corporate idealists who keep
hoping only because they haven’t figured out that hope is not
warranted. Developer opportunists can hope for meaningful advancement because it is within their power to execute. And lastly
and most importantly, the developer opportunist’s advancement
is not predicated upon the ethically questionable proposition of
gaming the system. They are not required to play games if they
do not want to.
She then
takes the important step of creating a talk for conferences and user
groups. Let’s imagine what unfolds from there as two contrasting
scenarios.
In scenario one, she gives the talks, which are incredibly well
received. People mill around afterward, keen to ask her all sorts of
questions and pick her brain. Many ask how they can follow her and
get more information. She answers the questions and gives people
her twitter handle and website URL. On her website, visitors can
find a few abortive attempts at blogging and a slightly dated copy of
her resume. In scenario one, the best likely outcome for her is to be
invited to interview for a job similar to the one she has, but that pays
a bit more or affords her better benefits. It’s theoretically possible
that people approach her about consulting, but they’re likely to be
dissuaded by her full time employment status and lack of any real
marketing of her skills outside of a salaried context.
In scenario two, she also gives the talks and they are also well
received. The same people mill, asking the same questions. This
time, instead of giving out her twitter handle, she says, “I’ve created
a page on my site that you should check out: mysite.com/talk-followup.” This page on her site has a few sections, which include
“where to follow me on social media,” “check out the book I’ve
written on this topic,” and “hire me for consultations.” In this
scenario, she also has a thriving blog addressing the same topic as
her book and talks. The opportunities are likely to flow instead of
to trickle haltingly.
“It’ll be like Facebook, but for parking spaces! And you can take
pictures and stuff. And it’ll have GPS. So I figure, you build the
app, and I’ll do all of the business stuff. Since it was my idea, we’ll
partner up 75/25. So, you in?!”
Seriously, anyone who has been in the programming game for a
decade has listened to some variant of this pitch. Perhaps someone
even hinted that you should sign some kind of non-disclosure
agreement (NDA) before laying that top secret info on you. It
annoyed me then, and it annoys me now, but for different reasons.
Back then, it annoyed me as a matter of gall. I’d have to restrain
myself from saying, “oh, okay, let me see if I have this right. You
just spent 5 minutes dreaming up a half baked scheme. I’ll do all
of the work of making the thing that will be the centerpiece of our
business, while you ‘supervise’ and have a majority ownership stake
because it’s your half baked scheme. Remind me why I need you for
any of this?”
I was annoyed because if I were going to try my hand at app-based
entrepreneurship, I’d do it myself, with my own ideas, thank you
very much. I was annoyed because I knew I could do this alone
and I knew they couldn’t, and yet the best arrangement I’d ever get
pitched was a 50/50 one.
These days, I’m annoyed because we, as software developers, have
helped create a business reality where these half baked idea pitchers
are right. They’re not right about their half baked ideas being good
ideas. They’re right about how much the relative contributions are
worth. They’re right that building the thing is worth a quarter of
the equity, on the generous side. And they’re right to offer us that
because of our long, self-defeating tendency to turn our noses up at
the worth of other aspects of the business.
You can generally divide a business
enterprise into the following components.
Product/service creation (“We make pizza.”)
Operations/delivery (“Customers can come in and pick the
pizzas up or we’ll deliver the pizzas to them.”)
Accounting (“We need to sell 200 pizzas per night to cover
cost, payroll, and taxes.”)
Sales (“We sell pizzas for $15.99 each, but offer a buy one, get
one half off deal on Fridays.”)
Marketing (“We get the word out using a website, fliers in
local mailboxes, and sponsoring a little league team.”)
For some reason, I find lessons about business seem to go a lot easier
when talking about pizza delivery places. Hopefully, you get the
general idea. The actual product, pizza, is accomplished with the
first part of the business, concerning the product or service. The rest
of the business concerns itself with the logistics of delivery, keeping
track of the money that you make, getting people to buy from you,
and making people aware of you, respectively.
Let’s take a look at what this looks like applied to our world, in the
form of a single, freelance software developer.
Product/service creation (“I write code.”)
Operations/delivery (“I’ll deliver the code to you by January
25th, and check in with you every 2 weeks in the interim.”)
Accounting (“When I’ve delivered the code, I want you to pay
me, and I’ll keep track of whether you have or not.”)
Sales (“I charge $100 per hour, but I’ll offer a weekly rate of
$3500 and a monthly rate of $12,000.”)
Marketing (“Check out my blog and website for tips on
writing good code.”)
If you steadfastly refuse to have any interest in any of this outside of
coding, you’re saying, “I only care about the first item.” To illustrate
how problematic this is, consider a hypothetical scenario.
I think you get the point implicitly. But let me say it explicitly. You
could have the absolute perfect, killer technical product sent from
the future and indistinguishable from magic, and, without the other
components of a business, you will not make any money.
We come from a corporate history where many software developers
don’t understand this fundamental truth of business, or else they
don’t much care. But in the coming age of the developer opportunist, that changes. Developer hegemony arrives when we reach a
critical mass of understanding and caring about this truth.
He told me that one of my friends had referred him to me as
someone that would potentially be interested in his services. He
was a financial planner, you see, who specialized in helping young
couples achieve their dreams – couples like my wife and me, as
my luck would have it. “When is a good time for us to get coffee,”
he asked after blithely glossing over this dubious introduction (my
friend never had, in fact, briefed me that this guy would call).
Do you see what he did there? It’s a classic sales technique wherein
you don’t give the mark prospect the option of saying no. This bit
of slicked-back-hair salesmanship is a close cousin of the “loaded
question” logical fallacy⁷². “Have you stopped beating your wife?”
“Yes, I mean, no, I mean – hey!!” No matter how you answer the
question, you implicitly concede a point made by the asker. In the
case of our used car salesman cum financial planner, answering his
question politely leaves me no choice but to agree to meet him.
We software developers present as an unusually marketing and
sales averse group. We’re skeptical of crap like this, and the world
reinforces that skepticism. On top of that, we also tend to be fairly
clever, so we get good at sniffing these things out. “Oh, heavens yes,
I could use some unsolicited financial planning from you, stranger,”
isn’t something you’re likely to hear out of the same mouth that
says, “you should use the builder pattern in that module.”.
Efficiency equals stuff divided by time. Thus, our true vocation
takes two basic forms. We allow people to do more stuff in the same
amount of time, or we allow people to do the same stuff in less time.
In both cases, we increase the value of efficiency in that equation.
This is obviously true with things like automating data entry, but
it extends to all facets of programming, including virtual reality
or games. We allow people to “visit” the grand canyon without
spending money on plane tickets and wasting time traveling. For
games, consider fantasy football. My uncle played fantasy football
in the 90’s, before the Internet really took over. He was an extreme
early adopter because playing fantasy football back then involved
league participants manually collecting statistical information from
newspapers, compiling it, and using it to score the league’s games.
That’s a huge time investment. Now fantasy football takes place
in pretty much every corporate office in the US because it’s more
efficient to play it.
If you were to ask a lawyer about his core value proposition, he’d
say that he provides expertise in the law. “I help you claim and
defend your legal rights.” If you were to ask a doctor about her
core value proposition, she’d say that she provides expertise in
your health. “I help you live longer and have better quality of life.”
But if you ask a programmer about his core value proposition, he
will probably say something about knowing ASP and helping you
build websites. “I help your company build nice, responsive design
websites that function on a whole variety of blah, blah, blah…“
As an industry, we’re at that crossroads that happen in sci-fi movies
where the robot achieves self-awareness. The corporate world
has become so utterly, irrevocably dependent on ever-increasing
efficiency, that it absolutely cannot live without what we provide.
If we now alter the terms under which we furnish that efficiency,
no one is in any position to argue. That is our link to the older
knowledge work professions. Is someone being sued in a position
to demand that an attorney fill out a TPS report? Is a sick person in
a position to order his doctor to participate in a daily status call? Is
a company whose service delivery costs more than it makes them
in a position to demand these things of us?
The next phase of our profession’s evolution involves us leaving
large organizations, keeping our own counsel, and hanging up our
own shingles. On those shingles, we will say, “we specialize in
making your business more efficient.”
In concrete terms, this means a subtle shift in our focus. Without
this shift, you have the same sort of staff augmentation firms
engaged in the same sorts of low-leverage commerce that define
the app dev ‘consulting’ space today. We stop accepting “specs.”
We stop receiving “wireframes.” We stop dealing with prospective
clients that come to us and say, “we’ve had our business analysts
figure out everything we need it to do, and now we just need some
geek to actually write the code.”
“No, no, no,” you say. “That’s not how we do business. You don’t
come to us when you’ve planned the details of your site. You don’t
even come to us when you think you need a site. Rather, you
come to us the moment that someone says, ‘it’d be a lot easier
if our customers could order stuff online.’ You’re talking there
about making your operation more efficient, and efficiency is our
specialty. We’ll be the judge of whether you need a site or not and,
if you do, how it should work – what its ‘spec’ needs to be.”.
Software developers and app dev firms fail spectacularly in this re-gard. We organize ourselves and sell labor on the basis of what tools
we use while our customers tell us what to do. Think about how a
moderately sized app dev consultancy might look for employees
and advertise to clients. “We’re an agile Ruby shop that works
with small and medium sized companies.” This is like an OB GYN
practice saying, “we’re a practice that does epidurals and Cesarean
sections for young to middle aged women” instead of “we help you
give birth.” And we also wash our hands of any real expertise in
business. Continuing the analogy, we don’t tell our clients, “the
baby hasn’t turned and you need a C-section.” We say, “alright, just
give us a spec for how the birth needs to go, and we can do anything
you want!”.
A productized service is a sort
of pre-baked consulting solution to a tangible problem. For instance,
consider the vague example problem to which I have referred a few
times: an organization thinking a website will allow them to fill
many times more orders than they currently can. Instead of “we
build websites in Ruby for small to medium sized companies” you
switch to “we help organizations without a public digital presence
dramatically increase the volume of orders they can handle.”.
I can see that you’ve gone to a lot of trouble to create
an RFP and all of those specs, so I can definitely
understand that you want to proceed along those lines.
Unfortunately, we don’t advise that course of action
based on our experience with these sorts of initiatives.
If you want to do that, I’d suggest going with another
vendor, but keep us in mind down the road if you do.
What usually happens to clients in situations like yours
is that they issue an RFP, get about 5 bids, pick the
second least expensive one, spend 6 months arguing
about fonts and colors, and wind up paying 50% more
than the firm quoted for something you’re not thrilled
about. If you sense that happening, let’s talk.
Let’s say that you strike out on your own as an application developer and you initially charge $75 per hour on the freelance market.
Initially you’re scraping by with only a few clients and a few hours
worked per week. But over the course of time, you do well, secure
more business and grow. You raise your rates steadily over the
course of a few years and get to the point of being about 80% billable
at $150 per hour. Kudos to you, as you’ve elevated your income
from, say, $40,000 per year to nearly $250,000 per year.
That’s a heady feeling, and if you’re used to doubling your income
every couple of years, you might want to keep doing that. No
judgment here. Maybe you tithe, pay for a relative’s medical bills
and donate most of the rest to puppy shelters for all I know.
Whatever the motivation, you’re bumping up against something of
a cap. You’re not going to be able to raise your rates too much for
stable app dev – you’d need to do something more specialized, and
that would likely mean reducing your billable hours and possibly
even backsliding. And, say you eventually got to $250 an hour for
IT management consulting, you’d just wind up hitting another cap
years later. The cap exists and it’s real, so let’s not worry overmuch
about where exactly it falls. Suffice it to say, you want more.
And you have an easy, tried and true way to do this. You’ll hire a
second developer, and you’ll even offer him a generous salary of
$100,000 per year, which totals out to $50 an hour. You bill him out
at $150, just like you, netting you a cool $200,000 extra per year.
Nice!
Except, er, wait. As I mentioned in part 2, you have to spend about
$25/hour of that on benefits for this developer. And, since you’re
not exactly GiganTech with paid masseuses and chefs, you need to
make the benefits really good. Fine, $75 per hour still nets you a not
too shabby $150K pear year. But, wait a second, darnit. You have
to spend an entire week doing nothing but onboarding this person.
And then you have weekly one on ones and status calls and the like.
Also, his work is occasionally not up to snuff, making you spend
non-billable hours redoing it and teaching him what went wrong.
Oh, and now you have to do payroll, benefits administration, and
a whole host of other stuff you never had to do before. Wow.
You’re still making $150K per year for that employee, but your own
billable percent and income has taken a sharp downturn. It turns
out that hiring another person isn’t even as profitable as that time
you started billing $25 more per hour.
But, wait a second. If you’re going to do all that employer/man-
ager/benefits stuff, it’s not that much harder for 5 people than it is
for 1 person. So you take another hit to your billable hours and go
out in search of bigger fish clients. You land one and then hire a
team of 5 developers. Now, you have to spend more time managing
them, but earning that extra $50K per year on each of their billable
work plus, say, $100K on your own work has you at a comfortable
increase. But wait a minute. Now that there’s a whole team of
them, they expect an office to come to. Plus you have to adjudicate
conflicts, do more onboarding, and buy them all stock machines
because having them use their own personal computers no longer
cuts it. And, you’re suddenly taking on clients you don’t much
care for and would have refused before, but you have 5 people’s
mortgages to worry about and not just yours. Sigh.
You can grow an empire by earning margins on the labor of
progressively more people. But it’s an ongoing battle, and it’s never
going to be as pure, simple, and satisfying as driving up profitability
of your own one person operation. When you grow to expand your
revenue as an owner, you’ll always be chasing that dragon.
As efficencers, I propose that we not view earning margin on other
people’s work as the only (or even a desirable) way to scale. With
that central assumption cast aside, we can revisit others.
Financial security is an
illusion. Worse, being an employee is a huge risk.
Consider two people, both making about the same per
year. One is a freelance who has about ten customers,
with the largest being no more than 25% of his income.
The other is a employee with ONE customer who gives
him 100% of his income. Who is more at risk?
The employee.
But that doesn’t stop the pervasive over-valuing of the soup to
nuts knowledge. We humans have a cognitive bias known as the
endowment effect⁸¹, wherein we value things more when we own
them than if we were buying them. So those of us into the CS
education system for a quarter of a million dollars have a whole
lot of endowment, and we are absolutely adamant that you should
know how to white board an alpha-beta pruning algorithm and tell
us its worst case runtime.
What you have now is two sets of people, arriving along two very
different paths, but coming together in the shared illusion that
getting really, really good with code can and should be its own
commercial reward. Figuring out who will pay for that skill and
why is someone else’s problem. It is precisely this kind of dynamic
that leads to the veneration of “programming as art” types of affairs
that essentially amount to collective programmer skill navel gazing.
An efficiencer company does not have pragmatists and it does
not play the “let’s hope to get a shooting star rookie that we can
underpay for a while” game. Efficiencer firms should not enter the
business of human capital investment, in my opinion. That means
the would-be efficiencers at the entry level need to bring something
to the table and, let’s face it, that something most likely won’t be
efficient and sustainable automation. You don’t come out of college
writing simple, elegant, maintainable code.
A bank might automate its help desk system as much as possible to save
on phone support salary as an automation cost saver. The bank
might also implement a “manage your account” website because
customers consider that table stakes for modern banking. This is not
the bank’s product, per se, so it qualifies as product enhancement
– it makes the actual products, like savings accounts and money
markets, more attractive to customers.
For this reason, the company takes an understandable philosophical
approach to in-house software: we probably want to do this, but
only if we absolutely minimize the cost, justify every penny, and
actively manage risk. They view the whole process with healthy
skepticism and have, at the ready, a quick hook.
This experience will serve as the basis for deciding whether automation is worthwhile or not. In the event that automating the process
requires custom app dev, you can price that expensive intervention
according to your own salary cost. But, remember, your goal is
inexpensive automation, and paying for custom app dev is not
inexpensive. Look first for pure process solutions. “Hey, why don’t
you guys email those documents instead of printing them out and
walking them over?” If you convince them with a single sentence,
your solution just cost about 4 cents and saved who knows how
much. Look for process improvements and existing solutions first.
Then, contemplate what sorts of commercial, off the shelf (COTS)
products could help. Only after that should you let your compiler
finger get itchy as you contemplate writing some code to fix the
problem.
With all of that experience in place, start practicing your sales pitch.
This is where you take your business case, demonstrating a return
on investment, and pitch it to a decision maker. You’ll be surprised
by how often you get shot down, even with a bullet proof case.
This is to be expected, since you’re a developer and no one is used
to business strategy coming from developers. People who “know
business” have already figured out how you should spend your time,
but it’s cute that you’re trying. Don’t let that dissuade you. Keep at
it. Pitch it to different people. Eventually, someone will bite.
If you want to really go out in a blaze of glory here,
pull out your phone and say, “Okay Google, describe the builder
pattern.” You get even more bonus points if you “Okay google” the
question during an interview with Google. Just tell them you’re
interviewing them by way of seeing if their products are up to your
high standards.
But let me work my way back to that. Do you remember growing up
as a kid, and contemplating what it meant to go to an institution like,
say, Harvard? As kids contemplating secondary education, we’d
look at that and think, “wow, if I can get in there, I can write my
ticket anywhere.” And there’s a decent chance we were right.
Then, when we were in college and afterward, a new entity entered
our consciousness (your mileage may vary a bit, depending on age).
We’d look at Microsoft and Google and think, “wow, if I can get in
there, I can write my ticket anywhere.” Start with Ivy League, head
for Big Tech, and then the world is your oyster. You probably won’t
even have to interview at places after that – you can just wander
in, pick out a cubicle, and get to work.
That thinking framed my career outlook, and I’d imagine some of
yours as well. Plus there’s an ant-instead-of-grasshopper thinking
to it. Prove yourself early and enjoy cred and stability later in life.
Or something like that.
But the last two decades have shot all sorts of holes in that thinking.
If you want a programming job these days, you don’t need Harvard
(or MIT/CMU/Stanford/etc) and Microsoft. You don’t even need
college or a prior software development job. Demand is such that,
“I used to do some crazy stuff with Excel macros” can get you a
steady job writing code.
Earlier, I mentioned some companies that have non-traditional
arrangements in terms of how they interact with their employees.
These are companies who have found a way not to make their
org charts look like predictable pyramids or who have found ways
to partner with people moreso than employ them. In this list, I
include the aforementioned Github, Particular, and Pillar. But there
are plenty of others out there as well. Zappos is famous for its
“holocracy” and I’d imagine that there are others that are less
famous but no less interesting. Go apply at these.
The opportunists delegated efficiency creation to idealists who, in
turn, delegated it to pragmatists. Along with all of that delegation
came the huge, unintentional windfall of also passing the means
of efficiency production. Today, we live in a world where the
pragmatist engineers, developers, and designers create all of the
efficiency and have all of the means of production for doing so.
This, in turn, means that we have all the leverage. Let me now state
the implication that generates in no uncertain terms.
We have absolutely no need for owners and managers, for traditional opportunists and idealists.
In the most general sense, it involves a steady flow of software
developers out of organizations that regard them as cost centers
and fungible commodities. Those organizations tend to believe that
you need two categories of people to implement software: business
people who think and grunts who, as James Grenning suggested,
do low level translation of natural language instructions into source
code. And, historically, we’ve proven them right to an extent. There
are plenty of reasonably well compensated programmers out there
who content themselves with this golden coffin arrangement.
But, here’s the thing. That approach produces inferior software.
The agile software movement suggested that we break down the
barriers between business and IT people so that they can work
more effectively together. I say we reject the premise in its entirety
and go forward with the business and IT people being the same
person. This is a disconcerting proposition for the “business people,”
managers and former developers of the world because it invites the
question, “then what do you need me for?” My honest answer to
that is, “I don’t know, but you’ll probably figure something out.
If you look at a lot of larger, successful tech product firms, they seem
to succeed with similar loose coupling philosophies. As I understand
it, departments/teams at Amazon, Google, and Microsoft all operate
with a large degree of autonomy and independence. To a certain
extent, you might think of those as organizations comprised of
smart folks capable of forming excellent efficiencer firms if they
weren’t more content with pragmatist and journeyman idealist
career scripts.