I will soon be hiring a new team of developers. I have been reading some literature on building a happy team of developers. In this context I want to do something special for my new hires.
How would you structure a perk set if you were the one who was hiring? Also, I have heard from a friend that great programmers don’t really care about materialistic perks! What are your opinions on this?
P.S.: I have looked at the Hashnode’s perks page and it looks really awesome.
oh and just pay them well.
A few great things of note at our company:
The most important thing to note here though is freedom. What makes all of this so great is that it doesn't feel like you're working for someone. You have complete control over your life, not having to stress about being late for work, or missing a day because something comes up.
Obviously though these come with responsibilities. If you're missing time, make up for it. These perks have worked well with our team because we all respect the work we do, and the people we work for. We all rely on each other to get the job done, so as long as you're doing your part and holding your weight it makes for a happy work-life balance :)
Safety, Security, and a sense of backup, especially for entry level new hires, where they're not thrown into the deep end without a life raft on their first day. Ideally pair lower level new hires with a mentor.
I mostly say this, because when I had an internship a while back, it felt like I was thrown into the black abyss as the only developer intern. The design and other interns seemed to get special treatment, but as a developer I felt completely alone and unsupported at that company.
Are you hiring noobs straight out of college or seasoned pros? And I assume you're asking what would a developer want as opposed to what's cost effective for the company.
Perks like a foosball table, ping pong table, free snacks / drinks, free lunches, company-branded merchandise (e.g. shirts, pens) etc. cost the company relatively little and are almost considered a baseline now. That might be enough to draw in the juniors.
If you're hiring senior developers... they're older. Have families, etc. Consider offering things like flexible work hours, option to work remotely at least part time, more vacation time (or earn more in later years), retirement assistance (401K matching in US, RRSP matching in Canada, etc), profit sharing, family Christmas / holiday-of-your-choice party where the kids of employees are invited, etc.
It's also nice to see a company that pays for books, conferences, etc.
Avoid unlimited vacation policies. That's a big red flag.
A private office would be an amazing perk but is almost never offered (because floor space is expensive). But a cubicle would usually suffice. I don't know why cubicles get such a bad rap. They're ideal for developers. Any company that happily promotes an Open Floor Space is either clueless or lying to you -- if you happen to have an open floor concept, a GREAT perk would be a pair of good-quality noise-cancelling headphones.
Respect their values and opinions. Perks like food and other things won't last long.
When thinking about perks, in my opinion, it should be something which boosts motivation strongly in the short-run and keeps it up in the long-run. At the same time, you should try to have a benefit, too. But don't tell the new developers about your benefits ;)
Short-run boosts might include giving away physical gifts. Hashnode employees get a free Amazon Kindl, which sounds awesome! It has the secondary effect that they all have a gadget to read ebooks comfortably in order to improve their knowledge (or read a nice fantasy novel to chill out before going to sleep, which is important, too).
Depending on your funds and company, you might also give out a new laptop as a gift, which they have to use for work, too. They get new tech and you are freed from maintaining it. Think about renewing the laptop every 4 years or so in order to keep the employees productive with a good computer.
As for long-term boosts, tell them about your great working conditions! Reading the Hashnode perks, I wonder why I have to pay for my coffee and lunch and still work for that company :D Especially for developers, coffee is really important, so provide it either for free or make sure that they only have to pay very very very little.
Tell them that you care about them! Tell them you will give them free work-related ebooks (which they can read on their Kindl). Tell them that you will send them to conferences and conventions. They have to get the feeling that they don't only work for you, but that they can also grow their career while doing so. We had some discussions about that not too long ago, and I proposed changing jobs every three years, ideally staying within the company. Your task is to make them stay with you on your team! Make them feel they do a diversity of things, that they are responsible/important and don't have to go away with their knowledge in order to gain further experience.
Last, but not least, satisfy the social factor. Organize bowling events, after-work parties, sports teams (like going jogging every Wednesday after work), etc. It's important that, at work, you are the boss, you make firm decisions, you consider your employees opinion (but do not just let them decide, that's your part; except for delegated work) and everyone respects you. However, when work is over, your relationship has to change. People want to forget about work and chill in the evening. Be a comrade. Talk to them about their families, hobbies, sports and genuinely have fun. It is not easy to balance that kind of relationship, but at least two of four department chiefs at my working place manage to do it, so I am sure you can, too :)
Those are the kind of perks I would want to see when applying for a job at a new company. I think, it's also about what the Silicon Valley companies use. Just think of the new Google Campus. They have everything there. Plazas for Yoga, bike tracks, cafés, just next to the offices. Employees usually get anything they need to be productive and keep up motivation. That's why a lot of people hype it (even though it comes with 0 away-from-work-time and those people probably work a lot more hours for the same or less money than I get, relative to the region).
Hmm I would start with the working environment.
well that's what I would care about :) but maybe that's to much. I've picked those up in several companies I worked in.
Ozzie Neher
Full Stack Dev
I wouldn't say great programmers "don't care" about perks, so much as I'd say they won't stay in a bad job just because it has good perks. Things like trust, autonomy and mastery will go much further than a beer fridge ;) The standard reference at this point would be Drive (https://www.youtube.com/watch?v=u6XAPnuFjJc). Also I don't think this is confined to programmers :)
Perhaps I should step back a bit and define what I mean by "perks", too... there are various ways you can break things up.
Remuneration, equity, rev share - money in its various forms. Salary, options/stock/equity, profit share, bonuses. Basically as an employer you want to pay well enough that it stops being a deciding factor. If you under-pay, it becomes trivial for competitors to poach talent - they just have to pay market rates.
Working conditions - this is the core stuff from that video. If you can give people a good working environment with people they trust and something worth working on, they're almost certainly going to be happy. One litmus test here is whether people have to produce a medical certificate for sick leave - as a boss once said to me "if I couldn't trust that you were really sick for two days, how could I trust you with your job?".
Career growth - value and support people to grow in their career. Give them training, coaching, budget to buy books, time to read them, time to pair with coworkers, time to try new ideas. As the classic joke goes.... What if I train them to be great and they leave? Well what if you don't train them and they stay? The funny thing is, if people are really confident they can get the next job, they're less compelled to go seek it. If they think they're in a dead end, they are extremely compelled to go seek a new job.
Work space - physical working conditions and tools. Don't be tight about the specs of the computer they use - doesn't have to be maximum possible specs but has to be comfortably capable for the job at hand. If you can let them choose platform then do it - they'll be more productive and most will pick the same platform anyway. Buy good chairs - a programmer with back pain doesn't care about chocolate bars.
Perks - the gravy. The extras. The stuff beyond the basics. Stocked-up kitchens, espresso machines, beer fridges, team days and nights out. These are all awesome things, but be careful not to exclude people. For example if everything is tied to alcohol you exclude non-drinkers. Beyond the fairly obvious things, gym memberships, paying for entries into running or cycling events, and other health-related things can go down pretty well, particularly if it creates a safe zone for geeks who normally wouldn't dream of going to the gym or doing yoga or whatever.
There is a zone of extras that is arguably "perks" but also arguably "really great working conditions": generous personal leave, community leave (to go do charity work), flexible work hours, work-at-home days, extended parental leave for both mums and dads, child care, income insurance paid as part of salary package, exceptional health benefits (depends on your location how big a thing that is), paying extra superannuation. These things can really make a huge difference.