A significant issue is that nobody trains employees while compensating them fairly based on their aptitude. So the only option is for employees to bounce around to get new skills and better wages. Employers hate this and constantly complain about "employee loyalty", not recognizing that job hopping is the only real defense that an employee has to be fairly compensated.
Here is a fictional account that illustrates the point:
John Doe currently writes C++ and finds Company A with great benefits and excellent compensation, but they only hire experienced Python programmers. But across the street, Company B will hire C++ programmers and train them on Python. Company B doesn't pay nearly as well, and the benefits are also pretty poor in comparison to Company A.
Company B offers John a position, but at a below market salary for Python programmers. John would be taking a pay cut from what he makes as a C++ programmer, but he takes the job anyway.
Being a highly capable individual, after 1 year John is one of the top Python programmers in Company B. John meets some engineers from Company A at a local meetup, and they recruit him to come interview with Company A. John passes the interviews with flying colors and is offered 30% more salary at Company A than he currently makes at Company B. This is now more than John ever made as a C++ programmer so he gladly takes the job, after only staying at Company B for a year.
Similar events occur with many more employees from Company B as they all start getting poached by Company A. Company B creates a non-compete agreement with Company A to keep its programmers from leaving.
Company A now complains to Congress that it can't find enough workers and needs to hire more foreign workers to fill the gap. It gets more foreign workers, which it can then hire at lower salaries without having to poach talent from Company B. Over time, the executives at Company A realize the cost savings and start cutting salaries, raises, and benefits.
Engineers at both Company A and B now realize their wages are stagnating and they all start leaving for other opportunities. Executives at Company A and B start lobbying Congress more and complaining to the press about a talent shortage and their inability to find workers.
You had me with you until you used the phrase "foreign workers." It's not their foreignness that makes them cheaper, it's that (in the U.S. at least) they're not able to easily change jobs and demand fair market wages, because their visa ties them to one employer.
The foreignness makes them cheaper in that it makes it easier for companies to justify paying them less and forcing their loyalty through the visa regulations. It has nothing to do with their qualifications which are often excellent.
Its also that most people perceive US as some sort 'promised land'. There are a lot of people who will do anything just to come to the US, and they would make endless sacrifices if told they would have to permanently settle down there.
Such people get easily used up in these scenarios.
Maybe it's me, but the suggestion that someone is getting short changed because they're different, and that it's easier to justify short changing someone because they're different, implies that the problem is their difference, not the short-changing.
Rereading the post you're responding to, out of context, I can see how you might get that impression. In fact, I was trying -- too subtly, it seems -- to point out that the ancestor post was making it seem that foreigners themselves are to blame for employers "cutting salaries, raises, and benefits," rather than the broken U.S. worker visa system. (I don't actually think that's what he actually believes, which is why I was trying to prod him into rephrasing, instead of downvoting him. I find people are too quick to downvote, don't you?)
That's why Company B would never hire a C++ programmer and train them. Instead they would hire people who knew python (and insist of Python2.7rc2 b34 patch level 42 experience) AND pay less and rely on getting people that were either rejected from A or didn't find A.
They would then decide the problem was python, fire all the programmers and try again with magic-silver-bullet technology of the day
Money is not the only motive for outsourcing things. Its one of the many reasons.
I am from Bangalore, India. I also worked at a major Indian IT firm for more than 5 years. I can tell you many more parameters apart from money matter regarding outsourcing. I see this with even more clarity as I work for a product company that outsources work.
Well executed outsourcing projects make life very easy for clients, that starts with cost savings and ends up going to many levels. I've seen my share of good and bad cases of outsourcing. And I can tell you that in many cases there are healthy relationships between clients and outsourcing firms lead to some amazing benefits for each other.
I've known a lot projects that are running for years without any complaints or interventions from clients. They are big massive projects, yet extremely well executed. When you look at it in its entirety the clients save a lot of money and other precious energy which they can focus on solving other problems. Its not just direct billing. But the clients save much on management, HR, infrastructure, IT and nearly every thing required to hire people and run the company.
I know there is a lot of negative impression about outsourcing in the US. And its pretty common for people to highlight failed cases or when some outsourced project went wrong.
You will be surprised if you actually come here, at ground zero and see those numbers are actually scanty and most of the outsourced projects actually run pretty well.
Perhaps. Or maybe you should come here and see how unwell most of the projects are?
I think it's very easy for the engineers to think they did a good job while the end-users do not. The deals keep flowing because of the middle-men managers and consultants that agree on requirements and success metrics that are not good proxies for end-user productivity.
>>Perhaps. Or maybe you should come here and see how unwell most of the projects are?
I would love to, I like the American society a lot. Especially since we learned so much from America.
>>I think it's very easy for the engineers to think they did a good job while the end-users do not. The deals keep flowing because of the middle-men managers and consultants that agree on requirements and success metrics that are not good proxies for end-user productivity.
You can either take your competition seriously or continue to believe in whatever you believe. You Decide!
If you want experienced, wildly competent workers, you'll have to pay for them. If you're not willing to pay for the experienced workers, you'll have to train inexperienced workers. Also, the requirements you're listing for the job is probably ridiculous, and your screening process is probably broken.
Soon as I graduated I encountered the experience wall - it was ridiculous. "junior" level positions required 2-3 years experience and paid less then working at Walmart.
Now that I have over 5 years experience in my field, I'm rolling in offers and have my pick.
I've had managers complain about lack of loyalty in employees. I typically fired back suggesting that if you take new graduates out of school and actually invest in them, you'll have a much stronger core workforce that is likely far more invested into the company then random mercenaries you pick off the market. Apparently I don't get management theory though...
Agreed. I'm one of the most loyal employees you'll ever find ... as long as I'm treated fairly. In exchange for good work all they need to provide is ample benefits, flexible schedule, satisfactory compensation, work with challenging/motivating problems - or some healthy mix of those.
Once the balance shifts to (my personal feeling of) inequality, I have no problem (or choice?) but to move on. Gone are they days of "lifers" with company provided pensions that could possibly make that decision (to move) harder (a la IBM full term careers).
That's not really the definition of 'loyalty' they're looking for though.
"I'm great to work with as long as I get my way".
People who want 'loyalty' are really looking for people who will stick around when things get tough - perhaps pay cuts, wage freezes, benefits reductions, longer work hours - etc. If you stay through those, without complaint, you're "loyal". Being "loyal" as long as "I'm treated fairly" isn't really what they're after.
I think part of the "Being treated fairly" is transparency from upper management. If the company is in trouble and they are open and honest about it, and they were previously generous to their employees, then those employees will rise to the call. The book Influence  calls this concept Reciprocity, and Peopleware likewise talks about this. It's the same concept that good commanders use to inspire loyalty and trust in their troops.
There are also other ways to compensate an employee that does not necessarily involve a cost, such as flexible hours or work from home.
Of course, I disagree - I call that being taken advantage of. If I could depend on the employers honoring the same thing - employing people "through thick and thin" - I'd believe it, but it's almost unheard of.
Unfortunately, I worked for five years through "when things got tough" - random layoffs, no raises, decreasing benefits. How loyal does one have to be to satisfy your definition?
It's another facet of the short-sighted, WallStreet-induced culture where the only things that matter are quarter profits and share prices, and where a manager who remains in the same position for two years is branded a loser.
The pressure is on cutting costs now and raise profits now and to hell with tomorrow, by the time a new employee is fully trained chances are that the manager who hired him is gone, probably following the CEO.
It is not really cutting the benefits and wages that affect loyalty. Seeing my parent generation, they all understood that there were good and bad time in a company and that sometimes you needed to work for the greater good (of the company). The major difference, they had their job for life.
Now you are a despised resource. If you are not in sales, you are a "cost center".
A previous boss of mine, during a company meeting QA summarized it like that: "Q: Are you thinking about outsourcing our project X dev team ? A: There is no immediate plan, however we are a development company, and we are continuously investigating outsourcing opportunities to stay competitive." That is something that the new generation know very well: you current job is only training for the next one.
I absolutely agree. It all starts with an appreciation of what you do for me; which is you come in to work every day, and work for me. I can count on you, but in return, I have to give you peace of mind, and a competitive salary.
Most companies have altogether made it clear that no job is stable, and competitive salaries continue to shrink...
The unstated counter-argument is that the employer will have to train inexperienced workers who will leave as soos as they become competent and experienced, or pay as much as you would for the experienced person in the first place.
Myself, I'd rather train someone up in my process without them learning bad habits, even if that means they're pairing with me for 30 hours out of 40. That said, I'm an exception.
Once upon a time, some companies hired new workers as QA, trained as QA, and those with the aptitude were moved into programming. I know that IBM still has an internship program that streams people into their system.
That's because companies don't give them raises commensurate with their new experience. Each year for the first 2-3 years or so a new employee that's any good should be receiving large raises on top of their presumably modest starting salary.
The problem is that companies think they can get away with keeping people anchored to those starting salaries. It doesn't work; morale suffers and they leave.
Finding a young employee and turning him into one of your superstars is a really gratifying feeling. Watching him leave because obstinate business owners refuse to pay him what he is now worth is infuriating.
I've experienced this several times in leadership roles and it is one of the many things that convinced me to start my own business.
Exactly. My first company did this for me, and I stayed and was loyal for 2 years beyond when they stopped treating me fairly. I'd still be there, happy and productive, if they had continued paying me what I was worth instead of claiming the economy wouldn't let me.
Shortly after I left, they put out a job posting for 7 people, each at more than I would have accepted to stay.
The job I left for was paying even more than that job posting, and I'm still here today.
So why did they do that? Why treat me fairly initially, then stop? They didn't really gain much. I was unhappy for 2 years and my job performance suffered for it. They replaced me with people who didn't have my knowledge of their systems, and they paid them more. It was absolute insanity.
My last company, which is used to having lifers working for them, operated under the assumption that if they kept an employee for the first five years out of college, they usually had them permanently. They assumed people like me were rare. This attitude persists in spite of their issues with college hire retention over the past decade. Its possible the management at your first company had a similar attitude.
 I left 5 months shy of my 10th service anniversary
If people leave after training then that's a retention problem and has nothing to do with how skilled they where when they started. And yes, giving a 22 year old tech worker a 25+% raise might seem crazy, but if you want to keep up with their increase in value you have to consider such things normal.
Yes, that's exactly the problem. Once you have that 2-3 years of experience, you're suddenly qualified for all of those jobs that want it, that were out of your reach when you just got out of school. Meanwhile, the 3% yearly raises have not kept up with what other employers are offering for someone with a little experience.
What's even stranger is that that same company is probably offering a higher starting salary to someone with 2-4 years experience, but they won't adjust someone to that same salary if they start at 0 and get 2-4 years experience on the job. I've seen this firsthand, and heard similar stories from friends. Not all companies, certainly, but it seems common practice.
Alternately, companies can just have policies in place to actually promote & give raises to people as their skills increase. If your HR procedures don't allow for somebody to get a 25% raise after a year, fire the HR - they're easier to replace than technical employees that understand your produce.
This is an excellent point, and perhaps an argument against at-will employment. Even if you had a candidate who was willing to commit to staying employed long enough to justify the time and expense of their training, in many US States they lack the legal power to agree to such a contract.
Extrapolating from personal experience here as a programmer but it looks tough for a couple of reasons, one of which is pay. Employers tend to give very good starting salaries for experienced people, and very poor raises. So employees sign up inexperienced at low pay, get trained and get raises that put them below market rates, so their incentives tell them to do exactly the job hopping you describe.
"Steven Cherry: Employers can’t find workers at the going wage. True or false?
Peter Cappelli: That’s false, and that’s almost by definition the case, because we know how markets work, and markets adjust and wages adjust. I had an employer write to me the other day saying they had a skills gap, and they really did. It wasn’t wages, because they did market wage surveys, and they were paying what everybody else was paying, and all the employers, by the way, are having a skills gap, so it’s a big problem. Well, if everybody’s got the same problem, and you’re all paying the same wage, it’s probably the case that you’re not paying enough. So the way markets work isn’t you set the wage and say, “Well, this is good enough.” You pay what it takes to get the people you need, and if wages have to go up, then so be it, right? "
I think I get it except for the "and they really did".
He's basically saying that the skills gap was not due to the company, but to unnaturally low compensation levels enforced by all companies in the sector. So all companies were creating their own "skills gap", because none of them wanted to pay more than the others for this set of skills.
Let's say I run a coffee shop. I sell $3 cups of coffee, which is the market rate, but can't get any customers. I have no signage, don't advertise, and I'm rude to customers.
That's what a lot of companies are like - they don't treat recruitment as a core business, but as an annoying distraction (like doing taxes).
The best way to get a job is to cold call companies, or network. It's like if coffee shops with a customer acquisition strategy of "wait for people to find the shop by accident, then hope they invite their friends".
If you run a coffee shop, you would be the buyer in the relationship as it relates to this discussion.
A better analogy might that you surveyed Starbucks to find out how much they spend for their coffee beans. You then build the expectation that you should also be able to buy coffee beans for the same price as Starbucks. Of course, you can't, because you are small and don't buy enough beans to get Starbuck's volume price.
So, applying it to the topic at hand: Maybe Facebook can pay an engineer $150K to keep them happy because of the prestige and perks of working there, but your small company is going to have to pay $200K to get the same talent because, like in the coffee bean example, you are nobody special and do not have access to the benefits of being a "big deal".
No, it's not about economies of scale. It's about non-monetary costs.
What I'm saying (using your analogy) is that Starbucks actually works hard to get good suppliers. If you open a coffeeshop and use beans from the local supermarket (hoping to pay market price - it's a market, right?, of course you pay a lot more and get worse quality than if you spend some time tracking down a good supplier.
I landed a great programming job with no experience and no degree because I could walk in there and talk about what I had taught myself and done on my own time. I know this doesn't transfer to every situation in every industry, but I think much of the problem stems from people who haven't put in much effort to make themselves marketable and to educate themselves. If I saw that, I would make the assumption that the company could spend money training them and they wouldn't necessarily come away a harder-working, more motivated person.
Sounds like you did have experience: stuff you had done independently. More and more that's becoming a requirement to get a good job out of college, at least in certain fields. Combined with your ability to speak intelligently about that experience, it sounds like the hiring decision was pretty easy. What I've found more common, is recent graduates who expect their degree /alone/ will get them a great job out of college, and that's becoming more and more difficult.
Edit: After reading my comment, I don't think I made it clear enough that I'm agreeing with your point about people not marketing or educating themselves adequately. After spending 4 years in college, I think a lot of people expect to show up at a job interview, show the interviewer their degree, and get a job. The reality is obviously quite different.
This is also true. Especially in smaller companies, passion is one of your main criteria. Someone without side projects or perhaps a history of open source collaboration just isn't as passionate as someone who has those things.
The issue with most people is that "you don't know what you don't know", coupled with the fact that most still have the idea that college/on the job training will suffice, while many companies are no longer providing training.
It takes a specific mentality to take the time to learn a craft with little to no immediate benefit in sight--you see this in other fields too, but they're not the norm.
The question is, do we try to change our culture to generate more self-starters, or do we change the institutions that need skilled labor?
In my opinion, the latter (the former will work itself out). All these startups we're starting, we need to remember this when they start growing and maturing. It's a kind of giving back that benefits you, too.
It seems that getting a programming job that way only works if you know someone at the company, or the company is small. Unfortunately, in my experience with both sides of the process, you won't even be considered for a job at a big tech company without the right degree--your application doesn't make it through their first filter.
"[I]t’s kind of bizarre if you think about it: if you were, say, a computer company,
and you had a product that was all based on this particular chip. You didn’t build
the chip yourself. You were expecting to buy it on the outside, and your expectation
was just that you’ll be able... to buy this chip on the outside in the quantity you
want at the price you want to pay... The software engineers, the systems architects,
are often the key component in these companies, expecting to hire them right
out of college, and they don’t really have much relationships with the colleges...
They don’t get close to their suppliers; they’re just hoping it will come up.
If you did that with a chip, your board of directors would probably fire you for
terrible risk management, but when it comes to skills and employees, it seems to be
kind of a standard practice."
If you go to India, for example, where the IT companies are booming, those folks are growing all their talent from within. They’re doing it because they have to, but it’s not rocket science as to how you can do it
I don't think this is true - everything I've read about outsourcing companies is that they have a very high turnover of staff.
Prisoner's Dilemma emerging with Employees and Employers being pit up against each other. Employers fear that training won't lead to added retention and employees don't trust the company to be around or take care of them if they stay.
People always dismissed it, when I told them - if only I was born x years earlier I would have graduated at the start of the boom cycle. I would have landed a high paying role out of college/Uni and earned enough cash by the end of the cycle to see me through the bust years. With the work experience I would have a better chance competing against new grads. Considering the value of money etc, benefiting from a 2/3 boom cycle could put you well ahead financially.
While this is rather simplistic and exceptions to the rule, timing can make one hell of a difference.
That's also the reason why the job-hop to get a raise is so common.
Pay rises are multipliers on your current salary - which is based on when in the boom/bust cycle you got hired. If you were hired in a bust you can get the maximum raise every year but at the end you will still be getting less than someone hired in a boom.
Peter Cappelli: Well, the employers, if you look at what the hiring managers are saying and what they’re looking for, they’re not, for the most part, hiring people out of college anyway or out of high school. What they want is three to five years’ experience. So the shortages that they report, the difficulty hiring, are for people who have quite specific skills, and those skills are work-experience based.
Workers without three to five years' experience will never get three to five years' experience. The only way for a young worker to be hired is through corruption, by knowing somebody or lying about their experience. The employers have designed a system to create the shortage that they complain about, and they perpetuate it because everybody's doing it that way.
In any workplace, the grunt workers should outnumber management. It is no different in software. For every software engineer there need to be testers, bug fixers, and doc writers. Yet in the want ads for programmers, it is the other way around. Senior this. Senior that.
The way to fix this situation is easy, but like anything else it will require time and effort. Next to the routine 3-5 year want ad, also post something like this:
Job title: Computer Programmer.
Requirements: can program a computer.
Compensation: $14/hr or DOE.
You will get plenty of applicants because the economy is that bad right now. Use interviews to determine the best fits for your company. Hire two or three for every Project Manager or Senior anything that you have. Give them raises if they are any good, treat them with respect, and they'll stick around. Three to five years later, you will not only have coders with three to five years of programming experience. The coders will have three to five years of domain knowledge of your company's operations. That might be just as valuable as their coding ability.
Wow. This interview is SPOT ON. So applicable to pretty much every industry. Thanks for posting. Worth resharing through other networks. Hopefully more people will read stuff like this that actually explains the hiring problems employers face.
Note that "letting the cat out of the bag" is used in cases where the truth comes out, not when someone is about to be punished. Consider the following two sentences.
After the jury returned a guilty verdict, the judge let the cat out of the bag that the defendant would serve fifteen years.
At the conference, the Microsoft employee let the cat out of the bag that that Windows 9 wouldn't run on x86.
I would argue that the second feels far more natural than the first. That's because it's about uncovering the truth, like the fact that the pig in your poke is really just a cat, and not about punishment, like pulling out the cat o' nine tails.
While you'd never mistake a housecat for a full boar, mistaking a dead cat in a sack for a dead piglet wouldn't be that difficult. Especially if you'd been showed the pig before and the cat was only substituted in at the last minute to provide weight and legs.
Additionally, I'd point to the "pig in a poke wiki" page.
The page shows that variants of this idiom are present in hundreds of languages, often with the statement that a person bought a cat instead of a pig or, occasionally, as rabbit. In fact, more culture refer to buying a cat in a sack than a pig.
The wiki page mentions your cat in the bag theory as well. However, if you follow the references, you'll considered that it is seen as dubious and that the pig in a poke explanation is considered far more likely.
It's a little more complicated than that. The pig, in this case, is usually a piglet, which is roughly the same size and shape as a cat, and the trick is to show the customer/mark a real piglet being put in a bag, and then use sleight of hand to switch bags and hand him one with the cat in it, with the strong admonition not to open the bag before getting home lest the "pig" get out.