There is a theory in evolutionary biology that reciprocal altruism and cooperation first appeared as a solution to the food storage problem. If you were an early hominid and you killed a large mammoth, you could not possibly eat it all before it rotted. So you shared it. The best bank for your excess capital was your friend’s stomach. That way, you could play banker when your friend killed the next mammoth.
I was thinking of this little idea recently in the context of human wealth. Unless you are a professional investor (and probably even then), places to store surplus capital today where it will even be safe and/or not depreciate too fast (let alone generate a return) are getting incredibly hard to find. The stock market seems to be a secular, bearish bloodbath. Volatility and unexpected temporary rallies are making short games dangerous. Even staying liquid in dollars seems to have its dangers, due to threats of devaluation and unfamiliar new terms like “quantitative easing” which us average investors are starting to hear for the first time. The Euro isn’t exactly a great alternative at the moment. Investing in gold and similar commodities seems to require a somewhat apocalyptic mindset and decisions about whether or not you want access to the actual metal if things go to hell (which isn’t to say such a mindset isn’t justified at the moment).
But there is one safe haven, if you know how to invest in it: software developers.
The Right Investment for Pre-Apocalyptic Times
The one absolutely solid place to store your capital today — if you know how to do it – is in software developers’ wallets. If the world survives looming financial apocalypse dangers at all, this is the one investment that will weather the storms. It doesn’t matter whether you are an individual or a corporation, or what corner of the world you inhabit. You need to find a way to invest in software developers.
In what follows, I am deliberately going to talk about the developers like they are products in a meat market. For practical purposes, they are, since the vast majority of them haven’t found a way to use their own scarcity to their advantage. Which means others find a way to do so. In capitalism, every human is either a capitalist, somebody else’s capital, or economically worthless. Today, this abstract point specifically translates to: people who can invest in developers, developers, and everybody else. This means that if you are in apparently more fundamental professions — perhaps you are a baker with a small business — you are effectively useless, not because bread isn’t important, but because surviving in the bread business is now a matter of having developers on your side who can help you win in a game that Yelp, Groupon and other software companies are running to their advantage. If your bakery doesn’t have an iPhone app, it will soon be at the mercy of outfits like Yelp.
And god forbid, if you don’t have a skill, like baking, which the developer-centric economy can actually use, you are in deep trouble. One reason the Occupy Wall Street movement is not having the impact it seems like it should, based on sheer numbers of people involved, is that many participants simply have no cards left to play in this national game of economic poker.
We’ll switch from this meat-market perspective to the humanist developer point of view at the end of the post.
Investing in good developers is such a good bet at the moment, that if you have money and you happen to find a talented developer who seems to like you and wants to work with you, you should give him/her your money to build something, anything, even if you have no really good product ideas (those are cheap; I’ll sell you a dozen for a dollar). If you don’t have money, you should offer up whatever other kind of surplus you do have. The NPV on a strong and positive relationship with a talented developer today is ridiculously high. If you gain the trust of a talented developer to the point that they are likely to drop any active gig in the future in favor of joining one of your projects, the value is through the roof. The world is your oyster, which you with your developer will open.
I warned you I was going to objectify and dehumanize programmers.
On the flip side of the coin, I’ve known people with complementary talents (such as raising money or marketing products) who return the loyalty in extreme ways — insisting on working with their trusted developers even if that means walking away from million dollar deals.
But the rules of investing in developer capital are entirely different from the rules of investing in other types of human capital (a term due to economist A. W. Lewis, from 1953, at the peak of the industrial economy) or non-human capital assets. You do not stock up on programmers the same way you stock up on construction workers, soldiers, chemists, mechanical engineers, real estate or dollars (in fact, “stocks” is the wrong word, you have to think in terms of what John Hagel calls “flows,” but that’s a subtlety we’ll ignore in this post, and stick to the stock metaphor).
At the moment, the only thing potentially more valuable than a relationship with a great developer is a relationship with a survivalist who is good with things like guns, bunkers and cabins in woods (that’s in case the apocalypsedoes come about in 2012, with bullets for currency). Which you think is the better bet depends on exactly how gloomy and bearish you are. I am pretty gloomy, but not yet gloomy enough to turn to survivalist capital investments.
The entire software industry realizes this, and is building up a long position in quality software talent (emphasis on quality) as fast as possible, and by any means necessary, including large companies acquiring smaller ones purely for talent, with every intention of throwing away every other asset the acquisition brings in (lending a whole new meaning to the term “talent acquisition.”)
As software eats the world and every company turns into a software company, people in other parts of the economy are slowly starting to understand what’s going on and are belatedly trying to get in on the action. They will almost certainly fail unless they learn how to compete with the software industry itself. But more on that later.
The Anatomy of the Software Talent Wars
In the midst of a thoroughly gloomy labor market, the genuine desperation you see in the software talent wars is almost surreal. Almost every day, I see big companies, little companies, entrepreneurs, wannabe entrepreneurs and even venture capitalists join in the hunt. The talent hunters infest LinkedIn, troll Quora, and trawl Facebook and Google+. Cartoons of homeless-looking CEOs holding up signs that say “Looking for a technical co-founder” are doing the rounds. Heck, I am one of these talent hunters (any star iOS developers out there interested in working with me?).
Eager new angel investors are willing to throw money at any project that appears to involve a strong developer or two, trusting that even if the investment fails, having first shot at subsequent projects the talent gets into, will be worthwhile.
Entire startups are being formed purely to keep good software teams together.
Gilded-cage workplaces full of gourmet buffets, high-tech nap pods, and daycare facilities are just the tip of the iceberg.
They are primarily mechanisms available to sufficiently large, Too Big to Fail software companies like Google, Facebook and Microsoft. In a game where these majors set the bar in terms of cash and quality-of-life compensation, and very young startups set the bar in terms of providing realistic shots at big windfalls, no other type of business has any chance of really competing for top talent, with any mix of cash and stock it can conjure up.
The talent wars actually play out on a much larger stage. The fight over the mind of a talented developer begins long before he or she even thinks about taking a paying job. Sometimes the fight begins in middle school. The reason is that the software industry, unlike almost any other, can get talent into its pipeline extremely early, by way of dominant programming languages, development environments, data and tools. A talented high-school kid who starts hacking away at an iPhone app at 14 is likely to stay in orbit around Apple for his/her entire career. A kid whose first programming stunt is a Google Maps mashup using other Google tools and APIs, is just as likely to stay in orbit around Google. A little known fact about Google, for instance, is that its investment in Python (one of the three languages the company uses for its work) was in part a strategic bet on an under-valued language, when it noticed that other companies were missing the growing talent pool in Python.
The result is that cash-rich software majors, options-rich startups and relationship-rich industry insiders have been sucking up all available quality talent among them, leaving other industries and economic sectors starving.
This is creating a have/have-not talent divide that is unprecedented. This divide will soon surpass the infamous geopolitical North/South divide in importance. No, I am not exaggerating.
The 10x Scarcity Phenomenon
Why does the software industry buck the general trend of high unemployment (or at least the thriving part of it)? Is it a tech bubble?
Yes and no. The actual technology markets being explored may well turn out to be a bubble, but to the extent that the investment is actually investment in people who will live out long careers in the sector, it is not.
It is interesting to note that “investing in people” is so much the default mental model in the software industry that outliers such as Sequoia Capital, who consciously buck the trend, have to take pains to point out that they invest in markets and trends, not people or teams. In any other industry, this would go without saying. It is fairly clear, for instance, that the energy industry invests in promising energy markets and alternative-energy technology trends, not in energy experts. In other industries, investing in people is the exceptional strategy (such as Zappos in the shoe industry or Southwest in the airline industry).
One reason this is the case is that software development talent is incredibly hard to assess upfront, and its value can be highly situation-dependent, which means intake volumes and intra-industry churn have to be high (since a potential star may not flourish in your environment). People risks are high enough that developing capabilities to deal with it becomes central to success. Traditional front-end mechanisms, such as universities, are not particularly good at creating or even spotting and nurturing star developer talent. To the point that industry luminaries like Peter Thiel are, rather mischievously, offering to pay truly talented developers to drop out of college and go the startup route instead.
Another reason is that software skills are the most portable high-end skills on the planet. Spotting and temporarily attracting talent doesn’t mean you get to keep it. Stock option-slavery and golden handcuffs for talent from acquired companies aside, there’s not much you can do to combat social and economic mobility. Not only can software developers switch industries easily, they can even survive on their own much more easily. A nuclear engineer really cannot do much without nuclear reactors or bombs to work with. A biochemist needs a lab and a phalanx of lawyers who know how to deal with the FDA.
A software developer on the other hand, can float free on the Internet, making money in mercenary ways, with no deep loyalties, if he/she so desires. Until the Internet shuts down, no other profession comes close in terms of the mobility it grants to those skilled in it.
But the most important reason is the 10x phenomenon.
The thing is, software talent is extraordinarily nonlinear. It even has a name: the 10x engineer (the colloquial idea, originally due to Frederick Brooks, that a good programmer isn’t just marginally more productive than an average one, but an order of magnitude more productive). In software, leverage increases exponentially with expertise due to the very nature of the technology.
While other domains exhibit 10x dynamics, nowhere is it as dominant as in software. What’s more, while other industries have come up with systems to (say) systematically use mediocre chemists or accountants in highly leveraged ways, the software industry hasn’t. It’s still a kind of black magic.
One big reason is that other industries turn x’ers into 10xers primarily using software tools (a mechanical engineer equipped with CAD software suddenly becomes a 10x mechanical engineer). While the world is full of tools that software engineers have built for themselves, the 10x phenomenon, and the industry’s reliance on it, doesn’t seem to get engineered or managed away. Because the 10xers keep inventing new tools for themselves to stay 10xers.
This means that employment levels have to be higher, while 10xers are being discovered and put to good use.
Risk Management in Software Talent Investment
On the flip side — and this doesn’t have a name, perhaps it should be called the “-10x effect” — bad software developers aren’t just a minor drag or inefficiency. For a variety of subtle reasons, they can be catastrophically toxic in a complex software system. A bad engineer writing dangerously buggy or ill-conceived software can create a ticking time-bomb that will cost thousands of times the original investment to clean up after, once it explodes. What’s more, the clean-up effort will absorb the talents of many more good developers for a longer period of time.
By contrast, incompetence and bad errors in domains like aerospace engineering are relatively more visible and easy to catch and fix early, before the costs escalate. Delayed crises (such as an aircraft model that develops a critical safety issue late in its career) are also much easier to contain, isolate and fix.
The Y2K crisis wasn’t even due to bad engineering. It was merely due to mediocre and pragmatic engineering. Imagine what bad engineering at the heart of today’s software systems can cost to fix over decades. Worse, imagine the impact of talented 10xers who turn to the Dark Side (i.e., consciously turn into -100xers). Or good guys who leave backdoors open in systems they build, as insurance policies.
The result is that investing in developer capital isn’t just about hiring programmers and sorting them by talent. It is about sorting and allocating them into risk classes.
Traditional talent managers simply don’t think in terms of risk management and investment when it comes to human capital. If they are not thinking of human capital in purely commodity terms, they are at best thinking of it in terms of deterministic cost/benefit terms. A typical hiring manager will say things like “the hiring costs for a position is equivalent to six months of the salary you plan to pay.”
This sort of book-keeping logic simply does not work for software engineers.
Big software companies don’t think this way. They manage sorting based on both talent and risk, and at the level of the entire industry and individual careers, rather than at the level of employment relationships. How do they do this?
The Lifecycle of Software Talent
First, big software companies invest very early in a large volume of prospects, by offering development tools and environments that can short-circuit the education system and snare talent as early as possible.
Next, they keep the talent hooked via contests, scholarships, innovative internship models (such as Google’s Summer of Code) and other pre-work-life mechanisms all the way through college. Then they hire a large number, watch performance and sort the talent based on the potential for returns and risk. They have to offer great buffets of course, but in addition, they have to build in incompetence insurance mechanisms to manage the damage bad software engineers can do. They have to invest in technologies (such as Google with Python) with an eye on talent rather than the marketplace.
The relationship doesn’t stop with employment. The software talent is so valuable that you pretty much have to set up open ecosystems (based on APIs, access to valuable data resources like mapping data, and open source elements) so you can keep them hooked to your broader technology universe even after they leave. An ex-Microsoft engineer is valuable anywhere in the economy if he voices support for buying Microsoft wherever he goes.
As a developer ages, and finds it harder and harder to switch technologies, at some point, he or she is considered hooked for the rest of their natural lives to some technology — Java or C++ or the Facebook API say — that they can be expected to grow old with. When a technology hits that point of maturity, talent that’s hooked to it starts getting devalued along with falling retention costs. The buffets become skimpier, compensation drops, churn is lowered, and the talent retires into the sunset with the technology. It’s quite poignant really, like a crew going down with a ship.
There are two exceptions to this end-of-life rule for software engineers and their ships. The really talented ones retain an evergreen ability to reinvent themselves around the latest, youngest technology layer, seemingly at will. The other exception is the Big Crisis exception. If a time-bomb planted by an incompetent in an old geological layer of software suddenly goes off, causing earthquakes that ripple up through newer layers, the grizzled veterans may find a sudden new market for their skills (we saw a little of that with Y2K, but fixing that mess didn’t require much talent; one can conceive of more critical failures that will require getting retired heroes and heroines out of retirement,Armageddon style, to fix things).
In other words, you not only have to start relationships with kids, you have to provide security and quality of life for the low-risk types who want houses, kids and great school districts, and an entrepreneurial opportunity space for those who itch to throw off managerial shackles and make their own way in the world. You have to cater to both risk-averse and gambler types.
And you have to find ways to gracefully put the veterans out to pasture in much kinder (and more expensive) ways than in other fields, because they just might turn into your insurance policy if things blow up. Though this isn’t yet an important dynamic, as the Boomers retire, and take with them a lot of knowledge of early geological layers of the software-eaten planet, managing risk around old software will turn into a major business. When the last veterans of the earliest still-in-use software layers start to die, we will be in historically unprecedented territory.
If you pull all this off successfully, as a large software company, an investment in a young person at age 12 will yield returns for you throughout their lives, whether or not they work for you directly. They will start out as pure investments, start yielding dividends by age 18 or so, return your investment by age 30, provide business model insurance as your company matures (a major reason Java is still relevant, for instance, is that there is a ton of talent still invested in it), and eventually turn into crisis insurance policies (this by the way, is the “flow” you have to manage, as opposed to a “stock” of employees on your bench).
Speaking of history, let’s put all this in perspective for non-software-industry types who still don’t understand just how epochal the birth of the software industry is for the rest of the economy.
Year 43 of Software Eating the World
As Alan Kay, a major pioneer of today’s software-eaten planet, pointed out recently, the Internet doesn’t have stop, shut down, or rewind buttons. Once it was turned on,history was essentially rebooted. Software began eating away at the pre-software layers of civilization on the planet, and depositing software-infused layers instead.
One of these days, we’ll recognize the enormous significance of what’s going on and replace the BC/AD distinction with BI/AI (Before Internet/After Internet), with January 1, Year 0 reset to October 29, 1969, the day the Internet was turned on (if you want to start right, 2012 is actually Year 43, AI).
We are only just beginning to understand how software is now the core function of every company, no matter what it makes or what service it actually provides.
So far, the rest of the economy has managed to live off whatever talent the software industry itself cannot soak up (for reasons ranging from talent not wanting to move to California to talent being interested in things other than software itself). In most non-software companies, developers have so far accepted a sort of second-class-citizen status despite their increasing scarcity and increasingly critical roles.
That is about to change.
As every company starts to re-organize around a recognition of the criticality of software to its business model, cataclysimic changes will ripple through the economy. To the extent that the growth of the base of software talent cannot keep up with demand, companies and entire industry sectors will start to collapse as they fail to adequately fuel their need for software talent.
Those that survive will find themselves increasingly beholden to those with large amounts of developer capital. To the extent that you cannot run your own IT, Microsoft will run it for you. Even your non-software employees will effectively be controlled by the likes of Google, Apple and Facebook, who will set the bar for employee expectations via the direct-to-consumer software markets (this is the much-discussed “consumerization of IT” meme).
Can the non-software sector compete at all? It’s hard, but not impossible. The biggest bargaining chip other industries have is data. To fight the consumerization-of-IT force that comes in with your employees, and the Microsoftening of your business model that comes in via the IT department, your one weapon is access to data that is not about software.
I’ll write more about that another day. If you don’t know how to use that one weapon you do possess, it will get taken away from you (the cartography, movie, music, news, publishing and restaurant retail industries have already learned this the hard way).
The View from the Talent Side
Nobody likes being a commodity in a meat market, even as a highly valued 10x prime cut. If and when a human being who is also a valuable capital asset clues up about their his/her economic role, resistance begins.
Software developers are smart. By and large the vast majority clue up, and do so relatively early. The clueless 10x developer who gets traded around with as little friction as stocks or cash is rare indeed. If you find one, resist the urge to exploit him/her for immediate gain, and invest in getting them clued up instead. You’ll secure vastly more value in the form of relationship capital that way.
The natural reaction that forms once a good developer recognizes his/her own value is to turn to either an individualist-mercenary mindset or a collectivist guild-like mindset.
The individualists turn into hard bargainers as they carefully probe their own market value and frequently re-negotiate relationships. They carefully invest in keeping their skill-base current and avoiding being shunted into the sunset end of the ecosystem for as long as possible. This sort of developer likes to hedge bets, stay invested in multiple projects and keep one foot in the open source world at all times. They position themselves for massive upsides when that is a possibility, and the ability to walk away from failures with their own reputations intact where there is real risk. There is a reason star mercenary technical talent is the asset that gets sold fastest in a fire-sale when a startup crashes. There is a mad scramble for a CTO who successfully manages to blame the business end for the failure.
The other kind of developer turns to guild-like structures, which serve as centers of balance-of-power politics in the constant wars against the developer-capitalists. Except that instead of taking on the dynamics of class warfare along an upper-lower dimension, the conflict takes the form of exit warfare along an inside-outside dimension. Rather than form a union to negotiate with management, the talented developer will simply exit a situation he/she does not like, and use guild-like resources to move to a better situation. Stock options are simply not as effective in limiting mobility as the power of Russian nobility to whip serfs into immobility once was.
The result is a precarious balance of power between developers and developer-capitalists, and a cyclic center-periphery flow of developer-capital, as individual developers take themselves in and out of circulation.
The result is a new kind of economics: Welcome to the world of Developeronomics.