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.
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).
"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.
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.
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.
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.
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.
1a: the state or condition of being entitled
3: belief that one is deserving of or entitled to certain privileges.
Words sometimes have more than one meaning.
It's officially "old" for a language that has evolved dramatically in the past few decades.
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.
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.
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.
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.
Huh? We are hackers.
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.
* 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.
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.
Makes me glad I develop as a hobby, not as a career.
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.
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.
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.
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.
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.
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.
> 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 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.
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.
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.
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.
> 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.
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.
"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."
Also small article requiring 3 page views.
Hence, real talent commands an ever increasing pricetag.
And I love it.
Try finding a quality company where you don't end up working for a d-bag is the difficult part.
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 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.
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.
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.
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...
It's like a land-mine CEO complaining that it's hard to find smart, well-educated workers.
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.
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).
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.
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.
Where are there mythical high paying jobs? FantasyLand?
* false promises of a career track to avoid giving you real compensation like stock options or bonuses
* deep cuts when the winds of politics aren't blowing your way
* poor workplace ergonomics
The mythical high paying jobs are in the "private sector."
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?
| 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.
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.
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.