What I don't understand is how nearly universal bad employment conditions seem to be. I can understand businesses wanting to maximise the benefit from investing in hiring staff. However, all the evidence I have ever seen shows that sustaining long hours is counter-productive, supporting a good work-life balance keeps happier and ultimately more effective staff, etc. The big improvements in productivity I've seen have all been at companies that have dramatically improved their staff's working conditions, for example by experimenting with shorter working weeks, complete flexi-time, allowing off-site working by default, etc.
How is it that even large companies with dedicated HR departments, training for managers, etc. still seem to push in the opposite direction? I suppose good working conditions, particularly those based on flexibility, are always open to abuse, but surely staff who are going to take advantage regardless will just find other ways to do so if you judge them by bum-on-seat metrics. Meanwhile, I wonder how many people take advantage of employers in some way mainly because they consider the deal to be abusively one-sided otherwise, and how many good people never get hired in the first place because they wouldn't work under those conditions...
I believe it is a case of known cost, hidden benefit. Basically each of those items has a fairly easy to measure cost(shorter work weeks for salaried individuals basically means you are paying more for less.) Where as improvements in productivity are not so easily measured before implementing them.
Sure, that much I understand. What I can't figure out is why such ignorant and short-sighted policies are still tolerated, given that they directly impact the effectiveness, the reputation, and ultimately the bottom line of each business that adopts them.
It's not as if the empirical data is particularly hard to find, or as if there aren't small businesses (and probably the occasional larger one, but it's rare) benefitting from more enlightened relations between employer and employees. So what are we missing? What overriding factor drives larger companies, for all their more formalised policies and training investments, to such poor people management?
Where are the numbers?
> It's not as if the empirical data is particularly hard to find,
google "programmer productivity working conditions" doesn't find anything quantitative on the first two pages.
For example, here's a UK government report from the mid-2000s, featuring several relevant industrial case studies:
While the work output may be better, but HR usually is a little lower level in their analysis, at least in my limited experience.
Also, just like bad candidates will always be supply, bad posting will always be in supply. Just like the best candidates never blast out resumes, the best companies don't have to post postings.
Everyone already wants to work for them because their employees tell their friends how awesome it is to work for.
I suspect that there are a lot of great employers sitting quietly hiring the best talent and are making a killing doing it.
Why would they want to tell their competition that all those draconian conditions attract are the worst of the talent pool willing to work under those conditions. It's good employees finding good employers and bad employees finding bad employers.
For one thing, managers probably care more (on some level) about asserting their status over the regular employees than they do about making the company more profitable (especially at larger companies).
* Don't require 10 years experience with a language or technology that less than 10 years old
* Don't list hundreds of unrelated skills required because you're hoping this position will do the work of 5 employees and 2 consultants.
* Don't mention "self-motivator". Who would describe themselves otherwise?
* Don't call the position a "Director of" when it has no direct reports, no hiring budget, and itself reports to an intern in marketing.
* Don't ask how many ping pong balls would fit in a school bus unless your business is directly related to filling buses with ping pong balls.
In job postings? Do you have the following in mind?
Send applications to X@ballbussers.com where X
is the number of ping pong balls that it takes
to fill a standard yellow school bus.
I'd be thinking about filling the tires with liquid ping pong balls too, but maybe I'd be missing the spirit of the question...
The latest example of this was GazeHawk's job posting:
"Eye tracking gives you a ton of data with a lot of dimensions. We want to show that data to our users in a way that's easy to parse. That means interactivity: HTML5, Canvas, JS."
Just a single sentence, but it engaged me, got me thinking, and gave me a good idea of the sort of projects they're working on.
Yes, for me this is critical. If there's nothing to convince me that it's not just another job working on the same CRUD I could be working on at any other place, I won't give the posting any further attention.
Guarantee a response - I don't think a guarantee is all that necessary, but a timetable for the process is always nice. Along those same lines, I always greatly preferred postings that had an email address, even better if it's a person's. But really, just something that indicates an active, rather than passive process. Filling out a form and hitting submit just has a hopeless, waiting-at-the-dmv feel to it.
I will also avoid anything that has a long list of prerequisites. If there's more than maybe five or so disparate technologies requiring multiple platform knowledge, then the job you're offering should probably pay double what you're offering.
I just assumed the poster had no idea what they are talking about, and moved on.
(Edited for grammar)
Anyone who says I'm a "strong candidate" for a big-corp Java job requiring 6+ years of Java experience after looking at my resume is very confused and won't be getting a call.
Something to consider though... if they can't even accurately name the language, can they really judge the experience required in said language?
Every time I see someone ask for more experience than is possible for a language, I wonder what other lies they're going to tell me or unreasonable things they are going to expect.
A good engineer is a good engineer and shouldn't need N+ years experience with a language/framework/tool to make an impact on a good team that's willing to do a little training.
It's not like there's a standard progression in technologies where you learn certain things in years 5-7, etc.
I can see there's a difference between say 1 years and 3 years, but is there really a difference you can count on being true if someone used a tech for 5 years vs 3? 7 vs 3?
A very smart developer who I respect once said something like: when you are young, you have lots of energy and want to learn/use the latest technology. As you get older and gain more experience, you start to see the patterns. It's not about the technology, there are repeated themes and solutions. But when you start realizing this and have accumulated 7 years of experience, you may be transitioning out and wanting to begin starting a family. So the people who might be most qualified might be wanting to leave the intensity of coding for the relative stability of management.
As someone once said - the entire premise of capitalism is based on overpaying the first few years and underpaying you for the next 20 or 30 years.
So perhaps 7 years of experience is a cludgy filter for the relative graybeards who understand that technology is just a tool, not an end.
Someone with no understanding of the term "captialism", apparently.
More than 2 * more libraries used, 2 times more projects, seen the language evolve, worked with 2 * more people, etc. Domain knowledge is a massive help for people doing things. The 7 year person has likely used far more things than the 3 year person. However if the 3 year person knows how to use a gun, and the 7 year person only knows how to use a knife - then the 3 year person wins. Of course, many times the gun turns out to be a water pistol - or the 7 year ninja can fart in their general direction, wait for a flinch... and then throw the knife!
1 - don't bring a knife to a gun fight.
2 - monty python reference.
Anyway, I view it more as "this is what experience we imagine the ideal candidate has" rather than "you literally need 4 full years of platform X experience to get hired"
I almost didn't get called for a bog-standard programming contract because I lack a BS in Computer Science. You'd think 10 years as both front-end and back-end developer would trigger a light-bulb, but nope, not even a matchhead.
For example if you specify a salary you end up anchoring the negotiations, if a candidate is not quite up to the level you're looking for but you want to hire them anyway, the candidate is much less likely to accept a job offer where you offer a salary below what you stated in the ads, even if they would have accepted it otherwise.
Furthermore you need to consider the impact disclosing salary levels has on current employees, if the market is tough you may have to offer a salary above what current employees are earning, which can be very damaging to morale and can make your staff feel hostile towards the new hire from the start.
But you make a good point about the salary, and it is especially relevant for large companies.
It would be relatively rare that you advertise for a senior developer and end up hiring a junior one (when you had no intention of hiring a junior at first). It would be much more common that your job ad is ignored by the really good developers and instead you have your time wasted by those who are underqualified.
If your existing employees are paid below-market rates that is a latent problem in any case. Eventually they will figure out that they're underpaid. Even if you don't advertise salaries some of your competitors will.
but having endured 2 LONG interview process just to learn that the openings were way bellow my interest, despite the absurd requirements, i must say that if one post mentions a value that is near what i'd like, I will probably apply just to that one. i would probably start to consider every single other post as a waste of time. ...now back to reality, too bad no one will ever do that and i will have to continue guessing.
IMHO that's messed up. A fun analogy would be people hiring being OK to receive a resume with only my desired pay. and AFTER days of phone negotiations and i've agreed to a figure, they would have some 2~15minutes to hear my qualifications and call me the next day if they are going to hire me or not.
When I used to just ask for a cover letter and resume, 99% of the people who interviewed with me were just awful. Now I tend to get good dev interns who want to be here and have similar drive and ambitions.
I'm not saying that a person who doesn't have any OSS experience, a blog, or a Twitter account wouldn't be a good developer, but then if they're not interested in OSS, teaching, doing things on their own (outside of work/schoolwork) or sharing, then they may not be a good cultural fit.
As for Twitter ... seriously?
To flip it around to the companies, how useless would this job posting: "Internet company in North America looking for developers. We have fewer than 1 million employees and all employees get indoor working space." That accurately describes Groupon, Facebook, Dropbox, and Joe's Waffle and Website Sweatshop.
Things like blogs, twitter, etc are signals and they're useful for people that need to make decisions based on limited information.
And thus we need to expend resources on signaling, instead of on actually pursuing/growing within the field. Personally, I'd rather not hire the developers with the most beautiful tail-feathers.
At my startup of the 8 devs, we had 2 on twitter and 3 with their own blogs, so the bulk of us didn't do either. But we got along great. Why wouldn't we? What does Twitter and blogging have to do with interpersonal relationships?
It may be arbitrary, but github+blog+twitter has worked well here.
1. I don't think anything technically interesting can be accurately explained in the 140 characters provided by Twitter.
2. Simply announcing what I'm working on is self-congratulatory back-patting. No one cares what I'm working on that hour.
3. I have many non-technical friends (e.g., no one else in my frat is CS). I would not alienate them from a conversation by only talking about tech all the time.
1. I don't think anything interesting can be accurately explained in the 140 characters provided by Twitter.
3. I have many friends with different interests. I would not alienate them from a conversation by only talking about X all the time.
edit: formatting fix
EDIT to add reasoning: I've seen people that can release applications and put up web sites, the code for which is unreadable, unmaintainable garbage. I'm really happy to see that you can ship, because that is important, but if we're going to be coding together I also need to see that your code is passable.
Maybe some of the better places that ask these questions are hoping to see your attitude and if you genuinely like this stuff.
Why? I have to be fair, both morally and legally. If I decide that there's a set of questions that an applicant must answer correctly before I'll consider him suitable, then everyone has to answer them. If you get that right, and you have some impressive work to show me, you'd be way ahead of the pack.
I spent my time trying to do well in school, not contribute unpaid work to open source.
An internship doesn't mean free labor. Although I guess there are some people who do try to get people to code for free and call it an "internship" or "portfolio building experience", that's not what I do.
I hate unpaid internships. I wouldn't want to work for anyone for free. I also hate that companies that could pay for interns don't simply because they can get away with filling their intern slots with kids who will work for free. I hate that the disparity between what companies give unpaid interns and paid interns dillutes the value of gaining a paid internship.
And most of all I hate that unpaid internships are only available to those with parents footing all of their bills so they can afford to not get paid for the whole summer.
But you mentioned below that your interns are getting paid so I think he is attacking you for something you aren't doing.
(I worked in a similar place in a past life)
Or, more importantly (as this is the legal razor): Do you derive profit/gains from the work they do?
Honestly from the sound of it you're deluding yourself, and are in fact, just another internships-mean-free-labor guy trying to make yourself feel better with talk of 'connections' and all.
Not quite sure what you're getting at here. This is no different than a paid internship at Microsoft or Google, or many other companies in the midwest, just on a smaller scale.
"Interns in the “for-profit” private sector who qualify as employees rather than trainees typically must be paid at least the minimum wage and overtime compensation for hours worked over forty in a workweek"
We do all of that.
1. Provide a contact email, esp. for larger companies, filling out a n page submission form is a killer.
2. Use LinkedIn and the other boards not headhunters, Dice and Monster feel like headhunter spam. At least with LinkedIn you can connect from a posting, to a company to an HR person.
Personally I would love it if Dice had a filter headhunter option, but it probably would kill their #1 revenue stream.
EEOC: It is illegal to publish a job advertisement that shows a preference for or discourages someone from applying for a job because of race, color, religion, sex, national origin, age, or disability. For example, a help-wanted ad that seeks "recent college graduates" may discourage people over 40 from applying and may violate the law.
One exception is BFOQ (bona fide occupational qualification). Some obvious examples are labor jobs, religious education and the performing arts. There are gray areas as well, such as a college-oriented start up hiring recent college grads, however the company would need to prove that the age requirement was necessary to perform the job in question. Personally, I think it's rather hard to make that case for programmers.
Interestingly, a preference for minorities is not a BFOQ. It is illegal to specify race or gender even if end goal is workplace diversity.
Hey, what an awesome idea!
I'm willing to pay high wages and even stake in the company, but if I do, that person should be willing to work hard and be dedicated to the building quality projects, rather than clocking in and out.
Is this how all developers feel? Do they all expect remote work?
I understand the need for working from home, but as a business builder, I like being able to sit with a developer and plan and build together.
Say that you're comfortable with remote work - In the case of a local employee, I don't want to have to commute 5 days a week, 2 hours to an fro. Sometimes I just don't feel well enough to go to the office, but I'm not as bad as to not work at all. Sometimes I just need a change of scenery. In the case of a international employee, sometimes the best person for the job will not be a local hire. Sometimes it makes more business sense to hire cheaper for a quality employee that doesn't operate out of your immediate area. You can easily fly a developer over for a few days every month or two if you want to discuss things in person, but most of the time a Skype call is more than enough. Be flexible and you'll keep good developers happy enough to go all out and really want to make YOUR product better.
Drop the degree requirement - Not sure if you approve or disapprove here, but if you're willing to pay high wages and stake in the company make sure that you're not discriminating on formal education. The moment I find out that I'm being payed less because I don't have a title, instead of it being because of the quality of my work and my experience is the moment I start looking for a new job. In my case, I've never been discriminated based on a diploma, and more often than not I've been payed more than employees with degrees because of proven experience and productivity.
Guarantee the job only requires 40 hours per week - Hard work does not mean that I should work 12 hours a day, not even because you pay 'high wages'. You want quality projects? Keep your developers happy. Don't push them to put work over families, social life, or hobbies. Be flexible, specially regarding office hours. Do this and the day you tell them that you just got a retarded deadline pushed a month early, you'll find developers working 80 ~ 100 hours a week to get the project done. You reap what you sow so to speak. Of course, you'll have to be a team player and give them a few weeks off the next week though.
Offer to train people in a new language - Offering benefits to further your employees career makes almost any developer a happy camper. Buy them books and send them to conferences. It's an investment that's well worth it. I'm pretty sure you probably agree with this one, but it's important to point it out nonetheless.
My point is that if you want great developers to feel at home in your company and help you build a great product, you need to be as flexible and laid back as possible towards your developers without, of course, giving in to mediocrity. You might like employees that work 12 hours a day every day and are always in the office by nine am, but the people you need are the ones that will move your company forward, and more times than not this are the one's that want their employment conditions to be 'fair' and easygoing.
As an employer, if someone comes in to my office with those requirements, they need to show me that they can produce...otherwise, we're not starting off on the right foot.
Can you imagine someone in any other field asking for the same? They would be laughed out of the building. I'm not saying that makes it right or wrong...but it's certainly interesting.
I guess my point, and what's most important to me, is not the tally of hours worked, but someone's willingness to buy in to our product, and more importantly, their ability to recognize the difference between getting by and getting things done. Team goes both ways.
Developers don't look at themselves as grunt workers after they've acquired significant experience (enough experience to expect these kind of perks), but as management/executive material who would rather program than do whatever management tasks he'd do if he was a manager. Managers and executives are the dudes that won't get a ton of flak for coming in later in the day or for taking an hour and a half of lunch instead of just one.
I'll be honest, I've worked as the general manager of an outsource development company and I found the job generally lackluster and not as challenging as coding, therefore I prefer to code. The fact that I find a general manager's job easier than coding make's me want to have similar perks, and I bet I'm not the only one out there that thinks like this.
Respect in communication and expectations or letting you run the show?
I'm simply saying that if you agree to the job and the salary, then you chose it for a reason, and at that point I don't think it's unreasonable to expect a developer to work hard. Notice, I'm not saying 80 hour weeks, but come on...I have to make an offer, which you accept, and then go out of my way to suck up and wine/dine you further in order to get good work in return?
I'll work the hardest when I'm not treated as a mere employee like all the others in crappy jobs around the world. For most of us you don't need to wine and dine us, as the perks are part of the offer. For example, if you where hiring me I would ask for three things:
1) A decent/competitive salary (i might take a 100k offer over a 120k offer just because I feel that your company is a better fit though)
2) Good equipment and comfortable workplace. There's nothing worse than having to code in a miniature cubicle with an underpowered laptop (been there, xcode on a 3 year old standard macbook?) and no external monitor.
3) For you to treat me like an adult and an important part of your company. I don't need to be chastised for not working over 40 hours a week or arriving at 10 instead of 9. If you don't do so I might work an 80 hour week when it really is needed as a thank you for not being a pointy haired boss and I'll make sure I'm giving you the results you hired me for.
Listen, as an employer you can be one of two people. The boss everyone is afraid of and secretly hate, or the boss that eats at the same table as the rest of us. I'll give you better results and really care about your company if you're the later. If you're the former, I just want my paycheck until something better comes along.
* Say that you're comfortable with remote work
Uh, excuse me but don't say that unless you know how to make a remote situation work for someone. I would say instead, "be open to someone relocating but make clear whether you'll pay for that or not". Ads saying "local candidate only" are really obnoxious (what, does the person needs a California passport or something?)
Further, a lot of this advice is along the lines of "be an absolutely fabulous employer". And while I like the idea of employers becoming the absolute best, on the way to that ideal they'll still be hiring employees. So really, I want an ad that's going to reflect the real pluses and minuses of a less than perfect employer. For example, don't say 40 hours a week unless you mean it, etc.
Minimum salary should be $300k per year. Guaranteed zero overtime, and you get to spend 25 of your 30 work hours per week on side projects or learning new languages (from home, of course.)
Anything else is just oppressive and restricts creativity. If you say otherwise you're probably just a lame business guy who hates hackers.
There are great companies with great people out there who just don't know what developers are looking for. They don't have to implement all of these tips, but maybe they'll be able to mix and match them with what already works at their company.
$90k+ salary, guaranteed max of 40 hours per week and a few % equity at a startup? if a sales rep or manager asked for something like that in an interview they'd be called pompous. For example, if a startup has raised $500k in funding, this would mean not only would they be spending 20% of their funding on a single developer in the first year, but they'd give up a big chunk of equity and get someone who has 3 other projects on the side they're working on. That's seems fair? that doesn't smack of an entitlement complex?
p.s. I'm a developer and run a startup.
Well, if qualified people are in short supply, you've got to give them what they want if you want one of them to work for you.
You can't on the one hand complain that developers ask for too much and then on the other complain that you can't find developers. The problem in that equation is then the person looking for developers.
(oh and of course they have a ton of equity)
I have no problem with accountability. Very simply, if you need to keep tabs on me (already a step down in the relationship), then I expect you to do it in a qualitative fashion, with a person capable of evaluating progress. Closed tickets and hour estimates and burndown charts and all the rest of that stuff is a fiction, and it makes an incompetent manager look real busy when he is actually doing nothing. And it wastes my time when I'm trying to do important work.
They call these metrics time saving devices, but if you don't have time to go around and peer at what's actually happening in the shop, then you aren't actually evaluating anything.
You don't need a person to track metrics. If these fictions worked you could set up a machine to track progress and send reminder emails, and even to fire people who were consistently too far behind.
To put it in a not nice way, the managers at startups I've met were experienced people who weren't skilled enough to cash out during the first bubble, or who never made it to an executive position or to starting their own company. They were untalented, and their advice was bad. If they had been genuinely capable of showing me how to perform 10% better, I would have received them as saints, or as angels from on high, and would probably have spent as much time around them as possible. That was not the case.
The other reason people like metrics is because of the squeeze. You're already operating under the assumption that I might not be working at full potential, that's why you want the additional accountability. If I am working at full potential, and you assume you can squeeze 5% more out of me, and start to press down, then maybe you do get 5% more in the short run, but in the long run you've caused a problem.
In their less guarded moments I've heard people in these positions claim their job is to improve performance by just a few percentage points, and that will justify their position. Multiplied over a department, these are huge gains. Unfortunately, that's an exceedingly difficult proposition for someone without special insight, and the only way it's going to happen is if they are in control of the results metrics. Which they are.
Maybe you can recover a few percentage points in a clunky, inefficient company. In a hot startup one overseer is not going to squeeze that much out. They're just annoying.
I doubt you can get rid of middle managers. They're there for a reason. Someone has to digest what's going on for the higher ups. But there's probably a better way for them to do their jobs than inserting themselves where they don't belong.
What I'm talking about is developers who demand above market wages, and shorter hours (than lawyers, or doctors, or automotive engineers etc.) and less commitment, and more equity. There are a lot of these guys out there, and a lot of people on here who think like that. I'm saying that's a childish, entitled attitude that ignores the reality of starting and building a company. Sometimes you can't have it all.
It's not really a sense of entitlement if I can point to similar positions x, y, and z and ask why you're not offering the same, is it?
Expectations, whether or not you find them realistic, are not created in a vacuum. I can't pay my mortgage or feed my kids on a "pre-money equity-only" job. Taking a deep pay cut for a stake in NewCo? Been there before - at the end of the day, 5% of nothing is still nothing.
If you're looking for someone who is willing to take a big risk for very little (immediate) reward, you aren't looking for an employee, you're looking for another co-founder.
If someone wants 90k and 40 hour work weeks they should go work at Microsoft or IBM. That's not how successful startups are built. You need to be ultra frugal, extremely dedicated (to the point of obsession) and have lots of exposure to the up side.
Maybe it's that developers are out of touch with economy trends, or maybe they are just in so much demand that they feel they can ask for this sort of thing...but I'm concerned that you correlate hours with salary in that way.