Skip to content
This repository has been archived by the owner on Dec 12, 2020. It is now read-only.

Latest commit

 

History

History
240 lines (134 loc) · 31.2 KB

recruiting-developers.md

File metadata and controls

240 lines (134 loc) · 31.2 KB

Recruiting Open Source Developers

Experienced open source developers are in short supply. To attract top talent, companies have to do more than hire a recruiter or place an ad on a popular job site.

Your open source program can become one of your most effective recruiting tools. This guide covers how organizations can recruit developers, or build internal talent, by building an open source culture, contributing to open source communities, and creating open source projects.

Table of Contents

Why you need a recruitment strategy

The growing shortage of developers is well documented. According to a recent Cloud Foundry report, there are a quarter-million job openings for software developers in the U.S. alone and half a million unfilled jobs that require tech skills. And they're forecasting the number of unfillable developer jobs to reach one million within the next decade.

There is no shortage of skilled developers to meet global demand Strongly 18% Somewhat 18%

There is now or will soon be a shortage of skilled developers Strongly 34% Somewhat 30%

My company has no problem hiring the skilled developers we need Strongly 20% Somewhat 23%

My company has a hard time hiring developers with the required skills Strongly 27% Somewhat 30%

Open source developers – that is, developers with significant open source experience – are a subset of this population. They are also in great demand, and even more rare because they often work remotely due to the distributed nature of open source communities. That means you're competing with companies all over the globe for the same pool of talent.

As expected, the result has been a steady climb in pay as companies fiercely compete to attract and retain talent. The current average developer salary is $104,425, according to one recent report. Given that only one in eight U.S. high schools (13.2%) offer AP computer science classes, according to this same report, relief for the developer shortage isn’t likely to appear anytime soon. Skilled open source developers can command a premium. Eighty-nine percent of hiring managers surveyed for the 2017 Open Source Jobs Report cite difficulty in finding the right open source skills and expertise. The Jobs Report also found that 60 percent of hiring managers are seeking to hire open source talent, and half are looking for candidates holding certifications.

This means the salary climb will likely continue over the foreseeable future, fueled by competitive necessity.

“There is a myth about engineers that they don’t care much about money. They care about working on cool tech; they care about learning and growing. These are all true but let’s be real, if you want to get people in the door, you need to create economic incentive. If you're not paying people well, they're not going to want to come to your company.” – Camille Fournier, Managing Director and head of Platform Engineering at Two Sigma and author of The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change, at Open Source Leadership Summit

So while the first step in any developer recruitment strategy is sufficient economic incentive, it is only the opening bid. This is where your open source program comes in. It can help with recruiting open source developers of all skill levels.

Filling the talent pipeline will be important for meeting your open source objectives, including your ability to contribute strategically to the open source projects you depend on, as well as grow your own open source technologies and communities. But you need a strategy, a set of processes, and goals in order to achieve this.

Open source as a recruitment tool

Before we dive into recruitment strategies, let’s talk about why open source participation can be an effective recruitment tool, as well as some of the challenges it presents to retaining top talent (see the next section).

Effective recruitment appeals to developer motivation. If you understand what attracts developers to work for you, and on your open source projects (and open source, in general) you can structure your strategies in a way that appeals to them.

Camille Fournier says engineers want three things: rewards, respect, and purpose.

  • Rewards: Everything from salary to benefits and perks.
  • Respect: This is less tangible, but no less real, and is often pinned to professional recognition.
  • Purpose: A highly visible, challenging, and measurable goal. Without it, respect and recognition cannot exist.

“Money is important, but it functions as a representation of recognition, not value. This is why a hedge fund manager can get a $6 million bonus and quit in a huff because they expected $8 million. It is also why a personal note from a project’s leaders goes so far, or a mention in a blog. Don’t get me wrong, the money is important as well, but if we think of it as recognition we can separate the monetary value from the emotional value.” – Jeff Osier-Mixon, Open Source Community Manager at Intel Corporation

Interestingly, when companies pay developers to work in open source communities it feeds all three needs. And companies increasingly see the value of paying developers to contribute upstream, for multiple reasons.

There are many open source projects where employers aim to make specific contributions that advance their own work and products. If approached correctly, such contributions can earn their developers, and by extension, the employer, respect within the community. Developers also raise their visibility within the community by making solid contributions which leads to future job opportunities with companies that also benefit from their work.

However, merely offering time on the clock and company resources for developers to contribute to open source projects and communities isn’t enough to attract and retain top talent, either. Employers must have a complete strategy in place and it has to center on open source transformation – from tools and culture, to your whole philosophy and approach to development.

“We seek to create a working environment that talent wants to be part of. Our engineers know that they work in an open source friendly environment where they are supported and encouraged to work with the open source communities that are relevant to their work.” – Gil Yehuda, Senior Director of Open Source at Oath (Yahoo + AOL)

Challenges to open source retention

One of the biggest challenges with open source recruiting is that open source projects transcend company boundaries. Developers work on their projects, first and foremost, and can easily move between employers that will pay them to work on the same project.

This speaks to the motivations of developers who contribute to open source. Money or a certain job title isn’t the end goal. Their career path is fluid and driven by a continuous search for professional development and personal fulfillment – dubbed “respect” by Fournier and “recognition” by Osier-Mixon. According to the latest Open Source Jobs Report, open source developers say the best thing about their job is the ability to work on interesting projects, collaborate with a global community, and work on cutting-edge technology challenges.

A fluid labor pool is also just a natural result of working in the open. Contributors’ work is highly visible, not only to the people working on the project, but potential employers who see their GitHub activity as a public resume. This works to your advantage as a recruiter, but also against you as an employer.

“Open source becomes a double-edged sword for HR organizations and engineering organizations when they're hiring. You want to become a place where people are free to be open and contribute to open source and to make themselves more valuable as individuals. Usually the pushback you’ll get from companies is ‘if they make themselves so appealing, they can get poached.’ My response is – yes, absolutely – which is why having an open culture that they want to continue to work in is so critical.” – Guy Martin, Director of Open at Autodesk (Open@ADSK)

This reality is often disconcerting to the more structured corporate world which is better attuned to reaping a return on its investments – particularly in people – and commonly regards developers as interchangeable.

A new hiring philosophy

It’s important to turn this thinking on its head by understanding that open source developers contribute to your company’s success at multiple levels. They contribute on the company’s behalf to outside projects that you consider strategic to your business strategy and product development. And they contribute to your own open source projects.

Attracting and retaining developers to your open source projects is equally important to doing so for employment at your company. The goal is to maintain and nourish each project’s commercial ecosystem which just happens to exist both inside and outside your company.

Cannibalizing the open source community for the sake of adding talent to your payroll is self-defeating. Yet, recruiting from open source communities is often a necessity because that is where one finds experienced developers for that project. The key is in supporting their work within and without company boundaries.

“We really want to make sure that the top contributors in the world are contributing to our projects. If they work for us that’s great. If they're working for somebody else that’s also great because when we work together as a project the success of the project is our shared success.” – Gil Yehuda, Senior Director of Open Source at Oath (Yahoo + AOL)

This shift in philosophy around talent acquisition and retention is part of the culture shift that happens within an organization when it undergoes open source transformation.

Perhaps the biggest surprise to employers is that the unique nature of open source developers and their movement between companies in a single project is as beneficial to their various employers as it is to the developers.

“In the Yocto Project, several developers and at least two members of the governance have worked on YP from more than one company. Because of this, they tend to be much more focused on the project’s value to the rest of the world, as opposed to making a product valuable to the company who makes it in a proprietary environment.” – Jeff Osier-Mixon, Open Source Community Manager at Intel Corporation

When to recruit vs. train

Your hiring and retention strategy is most meaningful to your company and its developers when it addresses both internal and external talent. But this guide is focused on strategies for recruiting developers that you employ.

Different companies incorporate the ebb and flow of developers coming and leaving their employ into their hiring and retention strategies in different ways. For example, some companies offer more training and project exposure in order to attract more developers, while others prefer a less structured approach to developer support.

“We try to hire people with experience in open source. So we do more occasional course-correction than we do formal training in open source processes. However, all developers run into open source questions. Were motivated to help them succeed because their success is our success. We're here to help the projects as well as the people on the projects.” – Gil Yehuda, Senior Director of Open Source at Oath (Yahoo + AOL)

Regardless of your strategy, there are two basic approaches to building open source talent within your organization: Recruit and train.

Recruit established developers

Recruiting established developers must be part of your plan. It takes time for any developer to establish relationships in a project and gain influence. But on projects your company deems critical, any delays in effecting project direction can lead to some serious issues in the project’s usability in an employer’s internal projects.

If you're trying to quickly gain influence in an open source community where the developers you employ haven’t contributed, or don’t have much sway, hiring someone who is already skilled and influential in that project may be your only option to meet an immediate need.

“Domain expertise and leadership in open source can sometimes take quite a long time at established companies. You need to put training together and start working with people in the company to begin to groom them for that kind of leadership. But, sometimes initially you've got to bootstrap by hiring people who are already leaders in those communities.” – Guy Martin, Director of Open at Autodesk (Open@ADSK)

Or maybe you already employ a top developer on a key project, who then moves on to another opportunity and there isn’t sufficient time available to groom someone to take their place. Remember that influence follows the person, and not the company they work for.

Experienced open source developers can also help to develop your internal open source culture and open source community leadership. A smart strategy identifies all the benefits you're looking to gain from hiring top talent, and includes tactics for meeting those needs.

Many hiring managers say successful recruiting is anchored more to word of mouth than to marketing. While traditional recruiters are still used, human resources and recruiting teams are looking beyond the traditional places for developers. Best practices include searching projects on GitHub and projects that your company already uses to find and approach top contributors who may be interested in a new opportunity or who can suggest someone who is.

Once you've identified great or even good developers working internally or externally in project communities that are important to you, ask for their wish list of co-workers and target those people for recruitment too.

Train developers on open source

Companies are often frustrated in their efforts to recruit top open source developers mostly because there are so few available and they're all in high demand. But there are other reasons companies have trouble recruiting established open source developers. A company that’s new to open source may have less appeal, for example.

In the ongoing search for some relief from the talent shortage, employers turn to growing their own talent pool internally. Certainly, training programs are crucial in filling skill gaps and grooming candidates for succession plans should you lose key developers. Training is also a welcomed perk for developers seeking to improve their skills in open source.

Developers who are users or consumers of a project, are the logical candidates for the next generation of maintainers. But you will also want to spend time training developers who show an interest or eagerness in contributing to open source. It pays to cultivate this next level of developers and include them in the open source decision-making process.

Developers gain respect and recognition through their technical contributions to open source projects and their leadership in open source communities. But those are not the only places they can build serious cred.

Working alongside great developers in high-visibility positions and projects is a big score, too. Such opportunities are a top draw at companies where very experienced, well known, and talented engineers are plentiful.

Informal, on-the-job training with top developers can be kickstarted or supplemented by more formal programs as well.

Mentorships are a good way to build in more structure, without too much additional overhead. Senior and more experienced developers help junior and less experienced ones in resolving technical problems as needed and aid with training in open source methodology and open source culture.

Apprenticeships up the ante a bit with more structured, daily training exposure with top developers in closer supervision.

8 Steps to Open Source Development Impact in and for Your Enterprise

  1. Hire key developers and maintainers from the open source projects that are important to you.
  2. Allow your developers working on products to spend a certain % of their time contributing upstream.
  3. Set up a mentorship program where senior and more experienced developers guide junior, less experienced ones.
  4. Develop and offer both technical and open source methodology training to your developers.
  5. Participate in open source events. Send your developers and support them in presenting their work.
  6. Provide proper IT infrastructure that will allow your developers to comunicate and work with the global open source community without any challenges.
  7. Set up an internal system to track the contributions of your developers and measure their impact.
  8. Internally, plan on contributing and focus on areas that are useful to more than one business unit/product line.

Five strategies for recruiting open source developers

Participating in open source communities is the first, and most important thing you can do to attract open source developers. This is how your organization gains visibility, and credibility, in open source communities.

But the most effective recruitment strategies aim toward a more complete open source transformation by adopting the tools, practices, and culture that open source developers are familiar with and desire.

“A lot of how you recruit should center on thinking consciously about how you change the perception of the open source community on what your company is about.” – Guy Martin, Director of Open at Autodesk (Open@ADSK)

“When companies establish open source practices they send a big message saying that we're serious about open source and that we want to invest in it.” – Nithya Ruff, Senior Director Open Source Practice at Comcast

Showcasing the work your company is doing in its own open source projects is vitally important since developers cite their ability to work on interesting projects as the most effective way that recruiters can get their attention.

Taken as a whole, these five key strategies will not only help with hiring and retaining talented developers, but also help support your overall investment in open source for business strategy.

1. Participate and grow leadership in open source projects

Take a strategic approach. Target projects your company works with now and/or may soon. Joining and/or increasing current participation in open source projects makes your company more visible and more attractive to developers who are already skilled and working in that space. Recruiting from this group can result in a mutually perfect match.

Participating in projects that match your future needs may help you get ahead in acquiring talent for your next projects. For example, lots of companies are investing in cloud based technologies, high-scale data analytics, and machine learning, If you want to attract developers in those areas, you’ll want to position your company as a meaningful participant in those open source ecosystems now.

“You can’t throw a stone more than five feet in cloud and not hit something that’s in open source. We absolutely have to have open source talent in the company to drive what we're trying to do moving forward.” – Guy Martin, Director of Open at Autodesk (Open@ADSK)

The situation is similar in high-scale big data analytics. For example, Hadoop, the centerpiece of the big data revolution, and something Yahoo knows a lot about given its role in helping birth it. Yahoo, now a part of Oath, is renowned for its work in other high-scale computing projects, and attracts developers who are interested in developing their big data skills.

Companies can attract developers who are looking to up their game in a particular technology by establishing themselves as a desirable destination for open source developers. Startups, even those in stealth mode, can work on public open source projects to establish their cred and influence and attract talent even before they reveal their product offering. Developers have choices in open source, so you need to make your company attractive for the talent to apply.

Participating in open source projects takes a good understanding of community dynamics and a bit of experience. Influential maintainers in open source communities have those skills and use them well. Recruiting them, if you can, will help you build your internal open source culture and attract other top-notch developers. You’ll also want to learn from these skilled developers and develop internal guidance so that you can help other open source developers you hire or train to succeed in becoming influential in open source communities too.

“For those who have never really worked on open source projects or with open source communities, we help them through the process of understanding all the things they shouldn’t do, all the things that can get them in trouble legally and communally, and all the things they should do, like how to work with people at other companies who are working on the same project but with slightly different goals, basically how to manage an external community.” – Gil Yehuda, Senior Director of Open Source at Oath (Yahoo + AOL)

Earning respect and building leadership as a corporate participant in open source takes more than one person. To pass the test of time, your company will need to show real commitment beyond one person’s own passion. Your single most passionate open source leader could leave at any time, and you'd have to start over from scratch. So make it a team priority to get involved and stay involved as a company.

Contribute meaningfully. This means you need to commit to contributing significant work rather than just going through the paces. Connecting their open source contributions to their work deliverables rather than letting it be a job perk will keep your developers’ focused on work, while earning them recognition in the community and attracting more developers to your company at the same time. The good news is that your contributions also steer the open source projects in the direction your company needs. Not only does this help your developers gain visibility and attract more talent, you are helping ensure that the open source projects you rely upon will support your future technical direction. That’s the beauty of open source.

Pay developers to contribute and set aside time to work on open source. Because your success is tied directly to the success of projects and developers, the best strategy is to ensure the success of all by making time for contributions a job priority. Be specific and nail the time availability down. Guy Martin says he and Ibrahim Haddad, back when they started the open source group at Samsung, “were jokingly called the 50% tyrants” because of their strict enforcement of developers spending 50% of their paid working hours on upstream contributions. Yes, it’s that important. Schedule time for it accordingly.

Open source your own code, create small pilot projects, and iterate on success. In order to have influence in shaping a project, you must build leadership. In order to build leadership, you must lead by example. You lead and build trust by making your own code open source, creating small pilot projects and iterating on your successes. If your code and projects are interesting, they’ll attract developers to your company on their own. Even if your code and projects aren’t quite the stuff of legends, you earn a following by proving your worth to the community overall.

“If you are a company like Salesforce, it’s not always obvious to engineers why they might want to work for your company. They don’t use your product, and they don’t necessarily see what you do, but they take a look at your open source projects and say ‘Hey, it looks like this company is actually involved in a lot of really neat stuff.’ It’s kind of a window for them to see the great engineering that’s going on inside of the company that they otherwise wouldn’t be able to see.” – Ian Varley, Software Architect at Salesforce

2. Create an internal open source culture.

Tools and practices. An open source culture can feel alien to the corporate world, but efforts to build it are not futile. In the corporate world, project teams are not usually open to allowing developers from other teams contribute code since it can disrupt their development cadence. Open source projects are usually more receptive to outside help and manage two versions of their code, one that is more stable and one that is open to constant activity. If you can adapt your projects to the open source processes internally, you’ll be able to succeed in external open source projects, where that flexibility is a must.

The tools open source developers use are different, too, and generally require a different infrastructure or platform. Developing an IT infrastructure that enables developers to communicate and work with the global open source community without any bottlenecks or problems is an important first step. Collaboration is at the heart of all things open source.

Incentives and rewards. As mentioned earlier in this guide, open source developers are motivated by rewards, respect, and purpose. A competitive salary will get them in the door, but to retain them, make sure they are recognized for their contributions to open source.

This respect should be earned, but once achieved, it must be consistently present. You’ll want to build that into your recruitment and retention strategy. Since word of mouth is key to recruitment, this is a good place to fan all the goodness developers will talk about amongst themselves.

Last but not least, as Camille Fournier said in her talk, “ship often.” Open source developers like to see their work in production, to feel the thrill of finishing something and marking it done. Build your strategy and processes so that developers have a purpose and can see the effects of their work often. Mix challenging work with less taxing work to prevent exhaustion but keep interest high at the same time.

3. Attend and support open source events

Send developers to present at conferences and events. While there is no doubt that good code and community leadership builds a reputation that attracts talent, recruitment efforts must go beyond this level of developer engagement. Ask good developers in the company to attract more good developers through strategic networking, speaking engagements at conferences, and collaborating with others on open source projects.

Much like you train developers to code in public, help them present in public. They can use the event to test an idea and to announce a new open source project. The people they meet will be more likely to adopt your projects if they hear about them from the developers who wrote the code. This way, you can attract future contributors and future new hires.

Sponsor and/or set up a booth at open source events. Developers come to conferences to hear about new developments, interesting projects, and cool companies. Since they're all ears, shouldn’t you pick up the megaphone? Sponsoring an event and setting up a booth are two ways to clearly showcase your company, its support of the open source community, and developer opportunities to the very people you hope to recruit.

Host a hackathon. By all accounts, challenging projects are the top attraction for highly skilled, experienced open source developers. Hackathons are fun challenges packed with rewards (be those cash prizes or bragging rights), so they're a perfect addition to your recruitment efforts. Besides, you have the added benefit of evaluating their work first hand.

4. Incorporate open source into job descriptions

Open source is at the heart of almost all technologies now, therefore it should be a part of most technology job descriptions. Tell prospective candidates if the role expects them to contribute to or manage open source projects.

These days, many developers are looking to build their open source skills. They’ll want jobs that give them experience, or that leverage the experience they already have. Show them you are serious about open source and you’ll get people who can help maintain, contribute to, or even be committers on your most important projects. If the role has an open source element to it, say so upfront. Given that so much technology is based on open source these days, most of your tech roles should have something about open source in it.

5. Invest in training – build talent from within

Given the growing shortage of experienced open source developers, you’ll need to invest in training programs to strengthen and update the skills of in-house talent. You’ll also want to use training to proactively groom successors for key project contributors so natural attrition and turnover doesn’t harm your company.

There are a variety of ways to incorporate training programs, from offering sessions designed to address specific open source concerns, such as license compliance, contribution processes and code mirroring, to apprenticeships where developers work alongside more experienced open source developers, to mentorships that provide help on sticky communal problems. You can structure any of these formally or informally. Either way, it’s important to have ongoing training programs always in place.

For additional ideas on recruiting and retention strategies, see the predecessor to this guide, How to Recruit and Hire Open Source Developers from 2015.

Acknowledgements

Contributors:

  • Jeff Olser-Mixon, Open Source Community Manager (Intel Corporation)
  • Gil Yehuda, Senior Director, Open Source (Oath)
  • Guy Martin, Director, Open at Autodesk (Autodesk)
  • Nithya Ruff, Senior Director, Open Source Practice (Comcast)
  • Ian Varley, Software Architect (Salesforce)

These resources were created in partnership with the TODO (Talk Openly, Develop Openly) Group – the professional open source program networking group at The Linux Foundation. A special thanks goes out to the open source program managers who contributed their time and knowledge to making these comprehensive guides. Participating companies include Autodesk, Comcast, Dropbox, Facebook, Google, Intel, Microsoft, Netflix, Oath (Yahoo + AOL), Red Hat, Salesforce, Samsung and VMware. To learn more, visit: todogroup.org