Obvious link bait, but they call it bait because it works...
Seriously, fuck these people. Every month it seems that the WSJ or Fortune or Forbes is running some article about how 20-somethings are not willing to give 110% for the company. Well, you know what? Management is the whiniest bunch of entitled pricks to ever walk the Earth.
They feel entitled to developers' labor. They think that we should feel honored for the opportunity to work on their legacy Java in-house apps that have been ravaged by years of turnover, failed projects, arbitrary management requirements, low quality devs, and outsourcing. But it's an insult to their own egos for a lowly developer to ask to be paid as much as them or, quelle horreur, more!
Fun story: first job out of college, I was working in exactly this environment. It was terrible: ridiculous hours, low pay, boring projects, and lack of respect from management. After six months, I got another job offer for a company whose primary product is software, offering twice as much pay and better benefits. I went to HR, asked them to match it if they wanted me to stay, and they pretty much told me to fuck myself. Their counteroffer was a raise of around $5k and tons of opportunities for advancement.
A year later, the senior developer, who had worked for the company for 15 years and was in his 50s with a wife and kids, was fired. Not because of any performance reasons--he was pretty damn good at what he did--but because he was the highest paid person in the department and management wanted to cut costs for some kind of valuation or another. Yeah, he was quite the cost center at $90k a year. They were doing him a favor: now he's freelancing, working less, making more, and far, far happier.
Maybe in a different era it would make sense for a developer to be loyal to the company she works for. But we don't live in that world anymore. Management has done its damnedest to commodify labor and has more or less succeeded. So, let's be commodities! But if management wants to burn us like oil, they should expect to pay the market rate for it.
I couldn't believe what I was reading when he said "They leave after a year for better-paying jobs." No, really?! Imagine that! I wonder what might possibly help with retention...
He painted a typical story that management has to fight every day and you painted a typical story that bottom-er has to fight every day as well.
When you merged both stories, it sounds like a typical girl-girl room mate long-year fight: at some point, you don't know whose faults or who started the fight or the root cause of the problems.
It becomes she-says he-says. A dysfunctional relationship.
At its core, humans have certain level of selfishness and greediness. That is unavoidable.
Even after you pay good salary to young developers, if he/she has short attention span, you couldn't do anything about it. There are quite a few developers out there that are eager to jump the framework/language/storage bandwagon every second.
I don't have any problem if they want to try out new technologies at home, but don't bring smuginess to work and starting to get all gung-ho about new frameworks or shiny tools during meetings and threatened to leave. I want to get shit done as opposed to bet my ass on a new technology.
It is true, some of us do have short attention spans. And you're right, time has changed, and things are probably getting worse (depending whom you asked). I know there are a few of us who would love to use MongoDB or Hadoop or HBase or Node.JS to solve problems that don't exist just because they want to work in company "X" that just happened to publish a blog post about how awesome it is to work in their company (and we all know that some of these blogposts have a lot of marketing hype).
Obviously somewhat off-topic, but I'm irritated by this usage trend I see taking the internet by storm.
"Entitled" means "having a legal right to something", not "having a (spurious) sense of entitlement". Perhaps there's a one-word slur that means what you're trying to say, but "entitled" isn't it.
I think the meaning becomes clear because this sense of the word is almost always used as an attributive modifier of a pejorative term: e.g., "entitled pricks", "entitled, combative princess." I agree with you that it has a much more specific meaning as a predicate compliment: "I'm entitled to my own opinion."
Language changes. People sometimes still complain about "hopefully" being used as a sentence modifier, as in, "Hopefully language mavens will see their role in speech communities as custodians and curators of beneficial older conventions, rather than as guardians and protectors of acrolectic law." However, the etymologically literal sense of this word ("in a manner full of hope") has so little use that the non-standard meaning predominates.
Hmm, good catch, didn't know that. Though, I think the usage is common enough to be colloquial. The article itself talks about the sense of entitlement that developers have, for instance.
Maybe a word like arrogated would work? It isn't totally right, though, and it'd be sacrificing communication for the sake of formal correctness. I'm guessing entitled has taken on its contemporary meaning through a need for a word that didn't exist.
The other point I was passive-aggressively hoping to make by grammar nitpicking is that maybe we can do without a one-word slur meaning that, since its primary purpose is for one side in a negotiation to call the other side a bunch of big fat pussies in an attempt to shame them into weakening their demands.
I imagine we don't have one word that means "having a spurious sense of entitlement" because up until recently (the last one or two hundred years) it was generally crystal clear whether your station allowed you to demand something of someone else or not, so that you'd simply throw someone's station in their face instead of trying to make a sense of entitlement into a character flaw.
Oh, totally picked up on the other point. By pointedly ignoring it, I hinting that my original comment was purposefully made to be more polemic than rational argument, in case the "fuck these people" didn't give it away, and focus on linguistic nerddom which is more interesting anyway =)
I don't see it so much as a negotiating tool, though. Analyzing it, I'd say it's more an attempt to raise the relative status of the HN tribe by putting down the status of middle managers than anything else.
My 1991 copy of the Oxford English Dictionary doesn't have any definition resembling 3, nor does my Tenth Edition Webster's, so whatever source you must have checked must be quite recent.
"Yeah, he was quite the cost center at $90k a year."
This is one of the keys to getting paid well and being valued appropriately by a company: position yourself as a profit center, not as a cost center. People who're viewed as cost centers are always facing the question "How can I get your job done with the least cost?", whereas people who're viewed as profit centers have obvious apparent value.
It's a broken system, and broken systems are opportunities for those who figure out how to benefit from them.
Or, reading between the lines, "how to speak the language of value to a line-of-business-apps CIO during a negotiation". Instead of of sharpening your hackles (or whatever) when you read stuff like this, try instead (a) appreciating that everyone on HN agrees with you about this guy's worldview, and (b) distilling out the guy's pain points and thinking of palatable ways to target them to make way more money than the average dumbfuck kid who signs away a year of his life simply to "learn Java programming" at below-market wages.
You guys are supposed to be entrepreneurs. Here is a guy with lots of money who obviously does not understand why the world is changing, spelling out for all of us what his business pain points are. If you're going to write snarky comments about him, try first as an exercise taking out your checkbook, putting it on the table in front of you, and conducting a two-minutes hate at it. Take that, money! You don't know software development! Ha!
Stop berating people like this and get busy taking all their moneys.
At the end of the day, I treat entrepreneurship very differently than a day job. When I'm running a business, my goal is to make the absolute most money I can with the minimum of effort; generally that means producing something of high value and getting it into the hands of as many people as possible. When I'm wearing my day job hat, my goal is very different: how do I do cool things while making a sizable chunk of cash? Note the ordering there -- I personally am not (highly) motivated by money in something that I'm doing on a daily basis.
This guy is great for entrepreneurs -- a virtual goldmine ready to be tapped by the first person that figures out how to solve a couple of his issues in a way that can bring in the money; he's terrible for employees who want to have a fun and challenging work environment while making good money. No amount of negotiation is going to fix that, in my opinion.
I'm not at all challenging your assessment of this guy's worldview. I agree with you. I'm just pointing out that a better title for this article might have been something like "what to say in an interview for a line-of-biz dev job interview to add 20% to your annual salary".
This is understandable, but the valuable thing that this article illustrates is how, if you have entrepreneurial leanings, going to work as a developer within a business whose primary product is not related to software is not a winning proposition. Management isn't always a rational creature, and no amount of negotiation can get you a reasonable offer.
Obviously there's a ton of money to be made by catering to businesses that have money, but the best way to extract that money isn't to go and program VB6 all day. It's to start a separate business that offers that same service, which patterns the transaction in such a way that management is willing to pay market rates.
The problem is, I don't want to help a "provider of rights management, licensing and royalty services for the music industry". And I don't feel right taking someone's money and providing no value in return.
My first thought when reading this is that there might be a pile of money to be made in "investigating legacy codebases and providing thorough and succinct reports on their architecture as a service". However, as an aspiring academic, I'll show myself the door now.
Let me save you a lot of money and time; I call this The 20-something techie's lament: CIOs that don't understand why I'm leaving. (Note: this is largely a work of fiction based on my own experiences and desires, as well as the experiences of others.)
I work on your legacy applications, but you pay me new development wages, generally below what I can get elsewhere. You don't challenge me enough, so I end up watching cat videos to spend time between bursts of getting things done, because there's just not enough actual work to be done. When I come to you with problems, you talk about how you'll get some people together to look into it; I've never heard back.
When Google contacts me, they treat me like a human that wants to grow, learn, and expand beyond the walls of the company, not just inside it. I don't want to play politics. I want to build cool stuff, make money, and learn something new every day. You don't give me that, so I'm leaving.
I'd say that these kind of jobs need to provide one of the following two options:
* great pay
* great challenges
And in all honesty, I'd say that the former isn't as motivating as you'd think. I've had jobs where I make "plenty enough" money and have quit because I've not been challenged.
In fact, in one in particular I tried to make my own challenges- throwing together concepts and forwarding them to my managers, only to be shot down. Then watch our competitors do exactly what I proposed a few months later. It's demoralising and it made me realise that, as a company, we'd always be on the back foot. I'd never be proud of what I made, and "plenty enough" doesn't make up for that.
We were number three or four in our market (it depended) and our entire business strategy was to watch the number one player, and do what they did.
So a number of my ideas weren't actually flat out rejected, but they weren't a priority- we already had a list of features to implement. Of course, by the time we implemented those features, the number one had moved on and implemented the stuff I'd originally proposed. Such a frustrating process, and a 100% guarantee that you'll never be the number one company.
Another thing I've seen in my experience was an employer who had the policy that all new developers start off doing 6 months of support for the existing applications. Not development support, but rather answering questions from the help desk about why this program is acting this way, is this a bug or feature, etc. Then they get to start doing bugfix work on the legacy applications. In theory it sounds great, learn what the most common bugs are then fix them, but when you spend 6 months making 30k/yr to basically be a human BugZilla, your opinion of the organization tends to slide.
Makes me glad I develop as a hobby, not as a career.
At 27, I agree. I wouldn't work for pennies to be able to solve interesting problems and learn new things but I would certainly take less if it was reasonable.
It seems like at most companies, developers have a shelf-life before you are too experienced to hire or are expected to move into management. I don't know that anyone should fault people for taking full advantage of their earning potential while they can.
The most useful (and troubling) realization I've had was that there pretty much wasn't any amount of money my company could give me that wouldn't immediately be earmarked for my own startup warchest.
When your company fails to give you something interesting to work on, welp, that's how things will go down. If I wanted to make big bucks being a soulless drone I'd see who was hiring for sales or quants.
I've found their recruiters to be polite, but they don't seem to do their research before contacting you. Explaining the "no, I do not want to live in London" angle to a US recruiter is also a bit tricky. :)
"Even when CIOs promote 20- and 30-somethings, they often don't have loyalty to the organization, Mok says.... They will stay with you as long as they see certain things, including personal growth or personal value enhancement, whether that's financial reward or career aspirations."
Employers fire or lay people off when it is no longer worth it to keep them around. And employees absolutely should leave when it is no longer worthwhile for them to stay. Loyalty doesn't come into it. If you aren't fulfilling their "personal growth, value enhancement, financial reward or career aspirations" THAT is why they are leaving. Fix that. Don't just complain about the youngsters these days.
I totally agree. Getting laid off once will shift your world view. The company is generally going to act in its best interest, and so should you. I love my current company and feel 'loyal' in a general sense, but that's because they treat me exceptionally well and constantly throw cool projects at me.
Here's what I don't get. All of my contracts so far have been for 'at will' employment -- meaning either party can terminate employment at any time. If you want to keep someone around a while, why not have them sign a 3 year contract? I would consider signing such a contract if the incentives were right.
I think it's interesting that he (implicitly) laments the lack of loyalty. Current corporate culture is predicated on completely at-will employment: you can get laid off whenever management thinks it's important to "downsize" and "go lean"—how on earth do they expect their developers not to pick up and move as soon as things look better elsewhere? Loyalty works both ways.
Sure, providing challenges and better pay might help, but fundamentally, people (not just developers) will look at working for a company as only a job unless one of three things happens:
1. The company as a company is doing something the employee genuinely believes in. (Apple might be an example of that.)
2. The company has a good work atmosphere and a proven track record of loyalty. (Google comes to mind.)
3. The employee has a financial interest in the company. (Startups.)
Short of that, lamenting lack of loyalty is lamenting the fact that your removable cogs are willing and able to remove themselves.
It's easy to read the first page (or just the headline) and come up with the "you're not paying enough/your problems aren't interesting enough" response. That's what pretty much everyone who's posted here so far has said. (And that's what my initial reaction was, too.)
But that's not a terribly useful reaction, and it's especially not a terribly useful one to be posting here, where pretty much everyone agrees with you already.
First, this guy understands (or at least claims to understand) a lot of the points you're all making already, and describes some of the steps he's taking to address them. (Mostly on pages 2 and 3.) Maybe it'll work for him, maybe it won't; I know far too little about the details to have any idea. In either case though, repeating the same "more money/interesting problems" thing over and over doesn't really have any effect.
Second, some of the problems he's having are actually real problems. Any company that's been around more than a few months is going to have existing systems, and it often doesn't make sense to rewrite the entire thing every time you need a new feature...even if the existing system is a bit ugly. As a programmer, that's an important thing to understand, and it's something people who don't have a lot of practical programming experience aren't necessarily going to understand. Knowing that this is a potential issue is something that can help you both as an employer and as an employee.
edit: I'm not saying that this guy actually knows what he's talking about, and that the things he's doing will actually fix the problems he's having. I'm saying that reactionary "this sucks" responses aren't very useful, especially here.
I don't know what is disappointing, I read the full thing, it sounds like your regular IT sweatshop if you read between the lines. Things like:
1) Giving the new guy an entire module to own (written by someone else).
Ok, so it's an entire module, no one explains htf it works? Every job I've been to, this is how it works, and it sucks. When I write something and someone new comes along to work on it, I try and give them some help. Otherwise, you get the "We should rewrite this from scratch", because it's probably crappy looking code. New guy might make more crappy looking code, but that's the natural reaction most people have to 'a pile of code'.
2) Back in his 'day' IT guys worked around-the-clock.
Seems like the shortage today is in labor, not in jobs. We no longer work around the clock because WE DON'T HAVE TO.
3) And I quote " They don't have the same notion that you go to one place and you stay there for five, 10 or 15 years. But the incentives to do that aren't there anymore because there are fewer pension plans and less profit sharing."
This. So much this. I often joke about becoming a school teacher so I get a retirement package.
I'm a mercenary for hire to the highest bidder. Until I find a company that can demonstrate some kind of loyalty towards me, that's how it is. I don't particularly like it, but I have a wife/kids/mortgage and can't take a year off to start my own company at this point.
I know I'll get downvoted since HN frowns upon culture and fun, but 'qdog: code mercenary' has a nice ring to it. Get someone to make a webcomic about your exploits.
I've already talked about the things in here that were directly contradictory with what I personally want in a job (not interesting, low pay, etc), so I'll ignore those. Here's a huge, huge problem with his mindset:
> Secondly, we're working more closely with folks to determine their strengths and desires and align them to the right systems. Third, as new developers come in, we are teaming them with a business partner to help them understand the impact of their system on the business. We're trying to get them more invested in the strategy. We're trying to engage them in where the company is going.
This sort of reality distortion -- changing the developer's frame of reference as to what is interesting or not -- is one of the absolute key problems this company will have with retention. First year developer: Great, I'm working on this app with does X for the business, which causes us to save $Y on Z; I'm psyched. Second year developer: Wait, I don't see X or Z, and whether or not we save $Y or $Y * W, it's all the same to me; why am I doing this again?
You have to adapt to the developer, not adapt the developer to the business. There are simply too many great opportunities for a developer to expect them to put up with this.
Edit with one more thing: One of the huge underlying things that I saw in just about every part of the article was that developers weren't to be agents of their own destiny. They were to be told what to do, how to do it, and when to do it. Unless you give people some degree of power over the things they do, then 1) they're not connected or invested, and 2) they feel like a rat in a maze. Now, it seems that he has recognized this as a problem -- e.g. "They've got to take something that exists, but they don't have to live with it the way it exists." -- but it seems like a proper solution is a bit away.
I had job similar to this. I was doing a rights management console for Universal Music to control usage rights on YouTube and Vimeo. My previous two jobs I stayed over 4 years at both. I last 9 months and the CTO yelled at me when I quit.
I did not enjoy the work. I did not feel I was creating anything of use. When friends asked what I did at work I had to say "You know when you try and watch a YouTube video and it's blocked in your country? I do that." It's hard to be proud of that. I found it hard to work when I thought what I was doing was stupid.
The music industry is bizarre. There are so many layers and different people in charge it's impossible to make a descision. Even if they wanted to change with the times I don't think they could.
25% more money and working from home wasn't enough to make me stay.
I understand your feelings. One thing I always want to do in my work is to do something useful. It does not have to be much or useful for many, but it has to be useful.
Regional blocking for videos is almost the very opposite to useful in my view. SO I would not stay long if I ever started working on a such company almost no matter the pay.
Yeah, and this is the one thing I didn't see addressed in the article at all. It doesn't have to be about "interesting problems," it's that your entire business model is based on something that no tech-savvy 20-something wants to support.
The main reason for this kind of turnover is that work in most companies - especially the larger ones - is completely broken.
Employees are paid for the time they waste while being chained to a desk where rather they should be paid for actual work accomplished. Many companies actually value the enforcement of ridiculous 9 to 5 schedules and the requirement of working on site (rather than at least partially remotely) higher than the work you do. In many settings you can easily get away with virtually doing nothing at all as long as you do it during fixed office hours.
What we describe as work today basically is cargo cult from the Industrial Age. We're working with computers and the Internet, yet work is still organized as if we were standing at an assembly line working piece rate.
It's quite telling the article doesn't even mention the possibility of remote or otherwise more flexible working conditions. If they want to retain developers CIOs have to realize they need to forego some control in exchange for more flexible, happier and hence more efficient workers.
As for Harry Fox Agency, music licensing today is - thanks to the outrageous behaviour by the music industry - a somewhat seedy business that probably doesn't appeal too much to ethical, idealistic and loyal people.
The only thing that will keep a good developer is interesting problems. If your problems are not interesting, they'll go away. The article also mentions they leave for better pay, so, I suspect they should be paying more.
Remember - being trained to work in their internal product is not really training they can use elsewhere. The company isn't doing them a favor by training them.
Also, if their programmers think building the system again from scratch is a good idea, perhaps they should consider it. "we have invested so-and-so millions in this system and we won't scrap it regardless of how obsolete it is" is sure to drive talent away.
It's totally unsurprising that it's hard to keep smart hackers engaged in building custom Java software for music business rules and digital rights managZZZZzzzz
> Do you find that younger IT professionals suffer from the not-invented-here syndrome?
> They don't want to deal with something that's existing. Our systems are...not off-the-shelf; everything is custom. Younger workers get frustrated by these applications. They don't understand why the program does this. They want to just write something fresh. But when we've invested in a system as large as this, we're not just going to scrap it. The crux of the problem is that they want to create and own their own application. They don't want to inherit and have to be responsible for somebody else's work.
Could it be NIH that influenced the creation of system in the first place? In my experience, managers request custom in-house applications to be created for all of their custom "needs" all the time. It's a disease that young and old are susceptible to.
FTA: "No sooner does he hire a Java programmer and train him in the company's music industry niche, than the programmer is recruited away for a higher salary."
Pro tip: if the salary wasn't higher, the programmer couldn't have been recruited away for a higher salary.
There's nothing wrong with the programmer. You're just not paying her enough.
And yes, this is endemic to the industry. No one (outside the Big Tech Giants anyway) gives raises remotely close to what the employee could get by quitting. They only want to pay market wage at hiring time. And the employees aren't dumb.
Really the only notable thing here is that someone decided to write a news article whining about it.
Its been my personal experience that a huge number of companies (all types not just 'startups') tank after a while (~5 years). When I look back if I had stayed with any of my companies I would have been out of a job anyways. Therefore, I'm quick to move on when things start to have indications of going south. Loyalty way back when was probably a good means of 'survival' in that it resulted in moving up the chain into a secure job but these days I find loyalty to be the most sure fire way to being shafted.
Let's not fall for this obvious bait article. Networkworld thinks we are stupid:
"No sooner does he hire a Java programmer and train him in the company's music industry niche, than the programmer is recruited away for a higher salary. Indeed, everyone on Trebino's six-person Java development team has less than one year of experience with HFA, which is the nation's leading provider of rights management, licensing and royalty services for the music industry."
Every time I hear somebody complain about how disloyal/lazy/demanding "Generation-Y" is, I wonder if would we would be more "loyal" if we had not seen on a first hand basis how big companies treated our parents with layoffs, cutting back benefits, etc.
The CIO put it in his own words - if people are leaving for other firms, he isn't paying a market wage. You have to earn the loyalty of 20somethings. They've seen large companies lay off hordes of people for dumb reasons. You can't pay someone with short ye time horizons a sub-market wage. Pay up foe your people as they get experience, or pay up to find stable people or pay up to retrain new hires every year.
Welcome to the other side of the supply/demand curve. Tech talent is in massive demand right now, finding good/great talent is particularly difficult as there's just not enough to go around.
Hence, real talent commands an ever increasing pricetag.
I've been managing the development team at my startup for 3 years now and have had zero engineer turnover. I follow a fairly simple process:
1. Make sure that people are learning.
2. Let people use new technologies and give them interesting challenges.
3. Make sure that people are paid above average salaries.
4. Keep the hiring bar high so that smart people get to work with smart people.
5. Demand that code quality stays high so that you don't have to work on a pile of shit.
Every time that I see an article like this I want to send the writer this list of things so that they can put it on their wall and look at it every day. It's really not that hard.
I think this is due to the speed at which techies' skills rot. You stay in the same place doing the same thing for 5 years and you have a skill set that no exciting employer (incuding your current one) is going to want. That's why we all do side projects. That's why we do stay in jobs that let us constantly improve ourselves. It's not that we're fickle, our tools and skills are fickle.
On page 1 this seems like a simple issue of money, then on the 2nd and 3rd page seems like it may be about a little more. But ultimately I think it really is just about the money.
I spent several years working as a developer in the insurance and healthcare industries and I can say confidently that there's plenty of developers who would love this job and would have no problems sticking around for a while. There are plenty of people who either don't want the roller coaster of a startup or else they've already done that for years and now want stability for themselves and their family.
Of course you have to pay a higher wage for these people. This guys seems like he plans to solve his staffing problem by creating interesting problems for the younger guys. I don't think his luck will be any better in 2012.
Exactly. If it's so easy for them to find a significantly better offer elsewhere, then he's probably paying them below the market rate. And if it costs him so much trouble to train new people to replace them, then he should be doing more to try to retain the people he has (competitive salary, decent working conditions, career path, etc.). But yeah, it's so much easier to bitch about uncommitted employees than to be a competent manager.
Pay is just part of this issue. I've seen places that paid peanuts, but treated people really well in other ways or had a mission that was particularly compelling or noble. They managed to retain folks surprisingly well.
The bigger issue is the place sounds like it is run like a feudal estate. Take the 1:1 people:system ratio. So say I "own" system X, the system is troubled for various reasons and I fix the thing.
What happens next?
My guess is that you are going to be stuck with "maintaining" this system until the end of time, just like the overachievers over in the RPG group. Or, you may get lucky and get laid off, because those 2% annual raises have made you the highest paid Java programmer.
Phew, lot's of testosterone out there. There's some fundamental principles at play here. First in the economics of Supply and Demand, there's a shortage of good developers programmers, generally in the marketplace. The CIO doesn't sound like he's aware of this, obviously in such a climate, there's money to be had, if you're good? Second, Being "older" and "looking in" from the outside, there's an increasing "penchant" amongst the rising up generation, and I'm going mildly stereotypical here, "I want to create, design and make", which doesn't really gel with older traditional businesses that want to maintain codebases, that, that are key to their enterprise. Yes, they could shift with the times, and kill off decades of codebase and start again in Ruby on Rails, or similar, but at what cost? The whole iT industry goes through cycles like this every 10-20 years. Ironically, you either lose people to more innovative technology OR, later, you end paying more because it's gone to legacy and no-one around "does that anymore". Look at COBOL (before most of you were born). I love the IT industry, it's constantly changing which always creates opportunity, some struggle with this concept. Last, I think the CIO needs to recognize these and changes and adjust his approach, if you were him, with financial constraints, what would you suggest he do in recruiting?
This guy has some interesting points, and does seem to be addressing the problem. I was one of those 20-something techies who quit after a year (not at his company, though).
Legacy code base, of course is not as much fun. Dual ownership of projects is a really good idea. At my old job, I was thrown into the code base with no support, and told to figure it out. I did, but it's not much fun scratching your head for a month and then writing 100 lines of code. Especially after a few rounds of this, with no feedback.
The 9-5 thing is interesting, but I don't think I could do a 9-5 shop. That might be great if you are established, have a family, and are working on a known problem, but for me, I find that I'm either 100% in, or 0% in, and there's not much in between. I think I'd get bored in an environment like that pretty quick (that's not to say that they're wrong, just that it's not for me).
As for working from home, not sure that it's too important. I mean, hopefully if you have a package or a doctor's appointment you can VPN in for the day, but as a whole, don't really care.
Ultimately though, money is a big part. At my old job, I got a stellar performance review, and a 2% raise for the year. They also bumped the baseline for new collage hires to more than it was when I joined (so I was now making less than the new college hires). I said that this was unacceptable, that my rent had gone up more than that, and that I wanted 5%. They said no, but that next year I'd be in for a promotion. I said goodbye, and they offered me $20,000 to stay. That's just broken. I left.
I'm one of those guys that has to fight like hell to retain talented developers, so I understand where this guy is coming from. However....
He admits it's usually about money. Well duh. Then he has to pay them more. If you want to hire great talent to work on your legacy Java app then guess what? You're gonna be shelling out a lot of money.
In our business, we work on both new, cool functionality but also have legacy code that has to be maintained. Naturally, nobody wants to work on that, but it has to be done. The trick is to balance a developers workload so that they aren't always stuck in doing legacy work. If one of our developers was forced to work on maintaining legacy code for any great length of time, then I would fully expect them to leave.
tl;dr; Pay your developers well and find ways to give them opportunities to work on cool new stuff. Neglect either of those and they will leave you. It's really not that hard...
The amount of loyalty ANY employee should give their employer should be the same amount that their employer gives them - which is NONE.
My job is just a contractual agreement. No more, no less. Loyalty has nothing to do with this. Think about it, if the economy is down and they want to lay you off, where is this loyalty? If a re-org is done and you are moved elsewhere, where is this loyalty?
It's not there because it never was there. Sorry to burst anyone's bubble or sound negative. I'm not. I'm just trying to be honest. Understand this, and you'll be much happier with your career and your life.
In addition to the issues raised before, I'm curious about one thing:
How does he treat his developers?
For example, the guy mentions that it's mostly 9-5. Does that mean that the boss expects 20 hours days for 3-4 days for a weekend to ship the latest version of their software (for the "big X.Y release")? Do 2 or 3 of these weekends and developers see a pattern, and look for less crazy places.
Likewise, how is the development process managed? Is it chaos: "OMG GOTTA PUT OUT THIS FIRE, DROP EVERYTHING?", or does it have some planning and order to it? (I don't care if it's waterfall, Agile, Kanban or Scrum - is there some order to the system so managers know the status of the system?)
How is their status reporting? I really don't like being asked every 15 minutes how Ticket 29 is coming along. Daily standups are great (and usually the best frequency. I've also done two daily standups per day, and it felt nanny-ish).
Yes, turnover is a hard problem. Sometimes it involves being generous with the benefits if you can't be generous with the salary. Sometimes it involves changing your development process.
Sometimes it involves changing your expectations: engineers don't expect to be around for 5-10-15 years at a company because that's not how jobs work any more. I almost laugh when I hear the "where do you expect to be in 5 years" question, because, odds are, I'll be one or two jobs removed. (This is not just a tech sector problem: the national average job length seems to be 3-5 years).
I don't know why companies complain about loyalty. If it was the other way, and had no use for you, they would not think twice about letting go excess costs.
I've worked in a place like this, and quit after little less than a year. They don't tell you upfront about all their crazy legacy software. The database is the Api for their applications, and the IT department gets to decide that you have to use Windows for development. The salary is average. My advice is to not take a job outside the software industry . I've never seen a place that was not broken.
A lot of people would be willing to deal with crazy software and shitty development environments if the salary and working conditions were really good. (Many consultants specialize in maintaining toxic legacy software that nobody else would want to touch.) But if the salary is just average (or below), there would be many better places to go.
At it's simplest: The first "people" to walk out on "job security" and careers were the companies. So, fuck their incessant whining. (As yea sow, so shall yea reap.)
Perhaps the CIO has gotten the product for which he was willing to pay. If he paid market rates to mature 30 year olds with 10 years of industry experience, he wouldn't have this problem.
We can't pay our developers minimum wage.... Somebody call the wambulance. If you are a dev and see a manager or cio type trying to guilt you into working for less than 120k/year because that is just ridiculous. Smile and pee on his desk on your way out. These guys make 150 to 500k/year and contribute LESS.
It is intimidation, you are a tool to these guys and they will not hesitate to throw you under the bus if it saves them some cash for executive bonuses.
Its business. Supply and demand. Pay me what I am worth or im leaving. That is it. They are Borg and you will be eaten when you lose your power.
Honestly, I agree. Most business views labor as a commodity and they intentionally divorce the human element away to make sure that they can make 'smart' decisions.
If you want to keep developers who are on top of their game or who are aggressively improving themselves, than you have to aggressively match them.
If you want to hire someone and train them and ensure a ROI, make them sign a contract to stay for a certain amount of time. (Or implement any other myriad of incentives to keep people to stay. Why is an employees responsibility to stay, but not an employers responsibility to incentivize them? "Working for us" is not incentive to work for you!!)
But if you're not willing to compete for labor as a commodity, than you're wanting a cake and to eat it as well.
Take your pick. Labor is a humanless commodity and we will all continue to make decisions as if it is, or it isn't and your developers deserve to reap the fruits of their labor.
I omitted Northrop Grumman intentionally; they seem to still value engineering prowess.
Please don't misunderstand me - there are awesome opportunities working for a US government contractor. However, the "golden days" of the cold war are long gone.
| "We invest in training people and bringing them up to speed to where they need to be, and boom they're gone"
Straight from the article - they invest NOTHING in retention. It's a separate process altogether.
| "Even when CIOs promote 20- and 30-somethings, they often don't have loyalty to the organization, Mok says."
So he's changed HR titles from "Software Engineer I" to "Software Engineer II". No change in compensation package, responsibility, or goals. Nothing that has any weight and no light at the end of the tunnel.
| "Where I think these guys would be very energized, they get almost disincentivized. The way our projects work, we bring in a developer to work on a module. These guys own a system from start to finish. To me, that's a great opportunity."
Poster child for delusional. The developer doesn't own it, the company does. He's just trying to guilt trip them
| "There have been a number of cases where we have had a system that runs into issues, bugs, defects or a major change requirement. We thought it would be a challenge for a developer to own it. But their first reaction is to want to scrap it and start over. There's a whole different mindset."
You can't hang a pine tree from your 1972 Gremlin and pass the car off as new.
| "Secondly, we're working more closely with folks to determine their strengths and desires and align them to the right systems."
If he's doing this with employees he's already too late. This should be done during the interview and assessment process before they get hired. If you just hired someone and you're first thought is "I wonder what to do with them", then duh - they're going to start looking elsewhere.
| "Third, as new developers come in, we are teaming them with a business partner to help them understand the impact of their system on the business. "
Guild trip model. After all, you've been working with CustomerX for a year now... don't you like them? don't you want to help them? don't you want them to be happy?
| "We're trying to get them more invested in the strategy. We're trying to engage them in where the company is going. "
So he doesn't want their input. This is perhaps the biggest reason people are leaving.
So he underpays, refuses to change, and doesn't want their input - and he wonders why he can't retain people?
I think that's a very cynical misreading of the article.
| Poster child for delusional. The developer doesn't own it, the company does. He's just trying to guilt trip them
Owning a project means that you get to drive the direction of it, not that you own the IP. This is very important, it makes people feel in control and that their work is meaningful.
| You can't hang a pine tree from your 1972 Gremlin and pass the car off as new.
Legacy code however is a reality of the software world, and a responsible software developer has to know how to deal with it. I'm sure that Facebook and Google have lots of old, forgotten and important code, but they didn't get to where they are by rewriting things every time they could be a little bit nicer. That said, the company has to make this as painless as possible for people.
| If he's doing this with employees he's already too late. This should be done during the interview and assessment process before they get hired. If you just hired someone and you're first thought is "I wonder what to do with them", then duh - they're going to start looking elsewhere.
Determining strengths and weaknesses is part of growing in a company. Most people out of college are smart, but mostly directionless. Very few have experience with distributed systems, UI/UX, concurrency, etc., and part of growing is to give them the opportunity to see what's out there, and try new things. If people feel like they're stagnating, they'll leave. Since I graduated, I've been exposed to things that I didn't even have the slightest clue existed.
The employees are not in control and their input isn't wanted. If the argument centers around making them "feel" a certain way, then that's called delusion.
Throughout the article there's no mention of anything tangible done for retention.
Combine that with the lack of interest in exploring a retention model and I (and seemingly most other contributors here) have little sympathy for someone crying "I can't keep anyone".
Quality people are easy to find, they're out there in droves. Finding a quality company is the difficult part.
"loyalty to the organization" why would anyone be loyal to an organization that is underpaying them? We know from watching the actions of every fortune 500 that the lowest price for labour is what they are after, employees have no loyalty because it is never reciprocal.
If the value walking out the door is so much why not pay more?
He should be congratulated on finding so many smart devs who know their value. Maybe start by thinking of people as people instead of human resources.
A clueless CIO doesn't understand why people leave and refuses to pay more, make the environment more friendly, and projects more interesting. Money alone can save that problem.
Seriously, fuck these people. Every month it seems that the WSJ or Fortune or Forbes is running some article about how 20-somethings are not willing to give 110% for the company. Well, you know what? Management is the whiniest bunch of entitled pricks to ever walk the Earth.
They feel entitled to developers' labor. They think that we should feel honored for the opportunity to work on their legacy Java in-house apps that have been ravaged by years of turnover, failed projects, arbitrary management requirements, low quality devs, and outsourcing. But it's an insult to their own egos for a lowly developer to ask to be paid as much as them or, quelle horreur, more!
Fun story: first job out of college, I was working in exactly this environment. It was terrible: ridiculous hours, low pay, boring projects, and lack of respect from management. After six months, I got another job offer for a company whose primary product is software, offering twice as much pay and better benefits. I went to HR, asked them to match it if they wanted me to stay, and they pretty much told me to fuck myself. Their counteroffer was a raise of around $5k and tons of opportunities for advancement.
A year later, the senior developer, who had worked for the company for 15 years and was in his 50s with a wife and kids, was fired. Not because of any performance reasons--he was pretty damn good at what he did--but because he was the highest paid person in the department and management wanted to cut costs for some kind of valuation or another. Yeah, he was quite the cost center at $90k a year. They were doing him a favor: now he's freelancing, working less, making more, and far, far happier.
Maybe in a different era it would make sense for a developer to be loyal to the company she works for. But we don't live in that world anymore. Management has done its damnedest to commodify labor and has more or less succeeded. So, let's be commodities! But if management wants to burn us like oil, they should expect to pay the market rate for it.