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.
The mythical high paying jobs are in the "private sector."
Well, no. In my local market, $120k is very, very well paid for a typical developer at a typical company. The > $120k salaries you see mentioned on HN are an artifact of two types of companies:
1. Venture-backed startups who don't particularly care about cost management.
2. Large, highly profitable software enterprises like GOOG, MSFT, AAPL.
Step outside these two realms, and developer compensation drops very rapidly.
> 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.
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.
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. :)
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.
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.
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.
"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.
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."
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 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.
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
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.
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.
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.
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.
| "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.
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.
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.
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.
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.
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.
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.
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...
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.
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.
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.
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).
"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.
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.
"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.
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'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 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.
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.
90 comments
[ 3.6 ms ] story [ 185 ms ] threadIt 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?
* underpaid
* 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.
Well, no. In my local market, $120k is very, very well paid for a typical developer at a typical company. The > $120k salaries you see mentioned on HN are an artifact of two types of companies:
1. Venture-backed startups who don't particularly care about cost management.
2. Large, highly profitable software enterprises like GOOG, MSFT, AAPL.
Step outside these two realms, and developer compensation drops very rapidly.
> 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.
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.
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.
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.
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.
"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.
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.
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.
| "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.
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 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.
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.
"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.
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.
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.
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).
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.
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.
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.
> 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.
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.
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.