Agile and Hiring
Two topics that are top of mind at the moment, but these two articles are not necessarily related to one another.
The Agile Manifesto is an immune response on the part of programmers to bad management. The document is an expression of trauma, and its intellectual descendants continue to carry this baggage. While the Agile era has brought about remarkable advancements in project management techniques and development tools, it remains a tactical, technical, and ultimately reactionary movement. As long as Agile remains in this position it will be liable to backfire, vulnerable to the very depredations of bad management it had initially evolved to counter.
In order to begin to heal, it is important to place Agile in a wider context. Many of the substantive ideas associated with Agile predate it by between about 20 and 30 years. This is not an accusation of plagiarism; rather it is an assertion that there are idiosyncrasies of software development that are invariant…
…this is a long article but an important one, I believe, so I recommend you read the entire thing if you’re in the business of software, but for the sake of capturing another particularly salient bit of it…
I want you to consider instead the possibility that Waterfall came to exist, and continues to exist, for the convenience of managers: people whose methods are inherited from military and civil engineering, and who, more than anything else, need you to promise them something specific, and then deliver exactly what you promised them, when you promised you’d deliver it. There exists many a corner office whose occupant, if forced to choose, will take an absence of surprises over a substantive outcome.
That last sentence is so good that I am just going to let my quoting of the article end there. And then I’m going to quote it again…and also suggest that said person doesn’t necessarily have a corner office. In fact it’s not a person, but rather a vast array of persons, littered throughout your organization.
There exists many a corner office whose occupant, if forced to choose, will take an absence of surprises over a substantive outcome.
On to hiring. Another topic that has dominated my thoughts for many years, as I’ve attempted and (IMHO) largely succeeded in building what is the highest-performing software development shop I’ve ever worked with.
Get that job at Grab. Steve Yegge talking about how difficult it is to hire great programmers and why, two years ago. It’s only gotten worse since…
…something very strange is going on in the industry. It started maybe a couple years ago, and escalated a lot around a year ago, and then went completely crazy about six months ago.
What happened is this: Global demand for software engineers has completely outstripped supply. There has always been a strong demand, and being a software engineer is always a great way to have a great job for life. But recently the demand has gone straight to crazy-town.
I think it might be happening because we missed a market correction sometime in the past five years. The market was supposed to take a big dive, and all the startups would fold, and the talent market would be flooded with engineers looking to get back into secure big companies. But that never happened. Is it going to happen? Sure, eventually. But it could be a couple years. Maybe more than a couple.
So there’s a glut of investor money, and it’s creating a glut of startups, including some very big ones, and they’re gobbling up all the engineers left on the planet. And now it’s a fight.
Compensation packages have gone through the roof. However great you think your comp is, you should probably get out and talk to some recruiters, because someone out there is going to beat it significantly. The company that beats it may or may not be your cup of tea, but you should at least be aware of your market value.
Also, the age-old thing about getting promoted by jumping jobs has really heated up lately. Senior engineers and engineering leaders are in crazy high demand, because every startup needs them. So if you’ve worked at a big company like Microsoft or Facebook or whatever, your skills are way more valuable on the open market than they are at your company. For instance, Facebook engineers already know how to handle data security. OK, well, bad example. How about: Google and Microsoft and Amazon engineers already know how to build scalable systems. Better? But startups don’t have that expertise. They need you.
It’s gotten so bad that the big Chinese companies are all hiring in Seattle now. They’ve run out of engineers in Beijing, so now Huawei, Tencent, Baidu, Alibaba, all the big guys are here recruiting in Seattle, if you happen to know how to speak Chinese. It speaks to a global talent shortage, plain and simple.
If that doesn’t convince you, this might: They have run out of engineers in India. How the hell do you run out of engineers in India?! When that happens — which by the way, it never has before — you know something big is going down. But my buddies in India are telling me that many people are jumping jobs there every six months because salaries are escalating so rapidly. Everyone is of course leaving a trail of destruction in their wake — half-finished code, empty seats, legacy mess. But like I said. It’s crazy town.