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.”)
https://personalmba.com/5-parts-of-every-business/
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.