Hiring a great software developer is no easy task, let alone an entire team of them.
There’s a war for tech talent, and in order to compete, companies looking to hire software developers need to ask themselves an important question:
Is my company the kind of place developers want to work?
If you’re having trouble finding and retaining talented developers, this may be the root of your problem. Because the first thing you need to hire great software developers… is a great team of current developers.The first thing you need to hire great software developers… is a great team of current developers. Click To Tweet
I know — that’s why you’re reading this in the first place! But cleaning up your house, and taking steps to develop a high performance team is essential if you want to attract and retain great tech talent.
In this article, we’ll cover everything you need to know to hire software developers, including:
- Building a High-Performance Development Team
- How to Find and Attract Great Developers
- Tips for Interviewing Software Developers
- How to Onboard and Retain New Software Developers
What Does a High-Performance Development Team Look Like?
I’m talking about a team with an effective organizational structure, well-defined strategies and objectives, and clear processes in place.
One which communicates effectively, made up of experienced individuals with a range of skills — eager to learn and problem-solve.
Finally, it’s a team working in a healthy workplace environment in which they feel fairly treated and compensated, excited about the projects they’re working on, and have the tools they need to work efficiently.
Let’s look at a few of the ways managers and organizations can develop the team they need to attract a great team:
- Empower developers to do their best work. Give your team a say in what they work on, and what their personal goals are for growth in their role and career. Give them time to think outside of coding — this helps encourage creativity and innovative problem-solving.
- Increase visibility. Break down silos and barriers within your organization where possible. This gives developers valuable insight into the overall business and its goals, so they can do their jobs better.
- Encourage growth. The best developers are always striving to learn and improve, so seek to provide opportunities for personal development. That could be through training, mentoring, and/or by offering continuing education benefits.
- Facilitate effective communication. Particularly if your team is dispersed, communication is critical. Slack, virtual conferences, and workflow management tools like Trello ensure everyone is on the same page.
- Consider culture fit. Technical skills aren’t the only ones that matter. Hiring employees that fit with your workplace culture is important for developing teams that work effectively together.
- Work hard, but make time for fun. Get out of the office for a team building activity or off-site session. Celebrate successes. Give back as a team by volunteering. These activities help to bond your team, motivate them, and avoid burnout.
- Update your technology. Great developers want to work on the latest technologies. If you are using the latest tools and methodologies, you’ll attract the best software developers. They may even leave other companies whose software is becoming outdated, to come to your shop and work on the latest cool stuff.
- Create a workspace that appeals to developers. What does this look like? Well, it’s one of those things that’s hard to define — but you know it when you see it. I’ve seen great development teams working in darkened rooms, with no windows, no furniture (other than desks) and cords running all over the place. And we’ve all seen the opposite — cool software companies in high-rise buildings with big windows and great views. Both can work well so long as they have the right vibe. One thing to avoid at all costs: huge areas of cubicles with bland carpet and bare walls.
What Attracts Developers to a Company?
Once you’ve taken steps to create the kind of work environment developers want to be a part of, it’s time to go out there and find your dream team.
When it comes to competing for great developers, there are lessons even large enterprises can learn from smaller, more agile startups. With generally smaller budgets for salaries, startups have to find other ways to compete with larger tech companies for talent.
Here are a few of the factors you may want to focus on to attract the cream of the crop to your organization.
- Interesting work — According to CIO, 79% of of startups said they “lure talent with interesting and challenging tasks.”
- Perks — We’re not just talking about foosball and free snacks (although those things are nice too.) The perks great developers really want are things like a seat at the table and opportunities to innovate.
- Flexibility — Around 28% of companies draw developers to their organization with remote work options, while 39% promise flexible hours.
- Culture — Emphasizing a “strong team and corporate culture” helps 64% of startups attract talented developers.
- Salaries — Money does talk, but don’t expect high salaries to make up for boring work or a poor culture. Just 10% of startups said they rely on high salaries to attract top talent.
- Diversity — Says Silicon Republic: “Hiring only one group of people discourages people from outside that group from working with you. And, obviously, if minorities or women don’t want to work for you, you are missing out on a huge pool of candidates.”
How to Find and Attract Great Developers
Unfortunately, it’s not enough to draft up a job post and wait for the résumés to start rolling in. Relying on your internal HR recruiters may not even cut it (more on that below.)
The truth is, your software development managers are really the key to attracting the best talent, and it doesn’t happen over night.
Managers Must Cultivate Candidates Over Time
Your software development managers need to be involved in recruiting candidates. And I don’t mean interviewing candidates. I mean cultivating talent over time.
Software development managers should keep a target list of developers that they would like to hire. They should keep in touch with those people on a regular basis to cultivate them over time to become team members.
They should be networking, and when they find a new developer that they think has strong skills, they should take that person’s name and contact information and add them to a prospect list.
Over time, by staying in touch with this person and cultivating that relationship with them, it will become quite easy for the manager to shift the conversation towards that person joining the team.
Of course, a manager might say, “I don’t have time to do this kind of thing. I’m too busy with my job.”
Here’s my answer to that: A manager’s highest priority is to build a great team. Investing time in building that team is definitely at the top of the priority list.A manager’s highest priority is to build a great team. Click To Tweet
Let’s look at a few of the ways companies can find and attract talent:
1. The Software Development Manager Reach Out Call
Often, your recruiting team may identify an excellent software development candidate, but find that the candidate is unresponsive to their attempts to reach out.
However, that same candidate who was unresponsive to recruiters may very well respond when it’s a software manager, director or VP who reaches out.
2. Use Contract Consultants – Highly Skilled Ones
Tapping into the talent pool of contract software development professionals is a great way to augment your team with very highly skilled and competent software developers.
Many of the very best software developers actually prefer to work on a contract basis so that they can earn high hourly pay rates, get paid for every hour they work, work on the coolest projects of their choosing, stay out of company politics, and take vacation breaks between projects.
These individuals can often have very wide range of deep skill sets, from architecture to coding. These highly experienced and highly skilled developers can make a big difference by solving your most difficult problems and blazing new trails. They can also share their technology expertise with the rest of your team, thereby helping your team “level up” with the skills and experience of a veteran.
If they really enjoy working your team, you may even be able to do a contract to hire and bring that individual onto your team on a permanent basis.
3. Use Contract Developers
But wait, you might say. Didn’t we just discuss contract developers? In fact, in the section above I’m talking about highly skilled contract consultants.
So what’s the difference?
Contract consultants are individuals with many years of experience — which means they also come with high bill rates. However, you can also find excellent developers in the junior, mid- and senior developer categories.
These will be more affordable, with bill rates more in line with the cost of a team member that you hire directly on your own. Contract developers can be excellent employees as well — with great communication, teamwork, work ethic, and smarts. It’s just that they’re a bit earlier in their career than hired gun consultants.
4. Use Contract-To-Hire
There are likely a small number of high-quality IT staffing firms in your market that should be able to help you with excellent developers on a contract-to-hire basis. Software developers appreciate the contract to hire concept because it gives them a chance to try the employer’s work environment and team environment on the job before they commit to accepting a job.
Companies also benefit from the contract-to-hire trial period, because they get a chance to see the person in action on the job before making a hiring commitment.
5. Use Direct Hire Recruiting Firms
You can also shortcut your path to excellent candidates by using a direct hire recruiting service. If you find a highly reputable service with networks into the software development talent in your market, the company should be able to deliver you excellent candidates who you can add to your team.
6. Use Your Internal HR Recruiters
Your internal HR recruiters will often opt to run advertisements for software developers, and this can work well — if your company’s reputation is excellent.
If not, your software development jobs will simply be one in a multitude of other ads out there.
Of course, there are a few magnet employers in each market who can get top talent by advertising. For everyone else, the reality is their job postings will likely be lost in the noise.
So how can internal HR recruiters succeed? They’ll have to go beyond advertising and into recruiting that looks more like a sales process. The recruiters would identify particular talent, and approach them in a manner similar to the way a salesperson would to make a sale.
This can be a challenge for many companies because HR team members are usually not experienced, cold calling salespeople.
7. Host Community Events
A great way to attract developers to your company is to host community events such as hackathons or meetup groups that appeal to the type of software developers you’re looking to hire.
For example, if you or looking to hire Java developers working on the AWS platform, you could start a group called “YourCity Java/AWS Developers.” (Meetup.com is a good way to do this.)
Start holding monthly events where you have presentations and share information about developing on Java and AWS. Attendees will become aware of your job openings and how cool the technology is that you’re using at your company, and they will be naturally attracted to you.
Combine these events with the method of having managers pursue the best candidates and you will have a strong recruitment process.
Interviewing and Selecting the Right Candidate
Whether you’re reaching out to your own network, relying on your internal HR recruiters, or working with an IT staffing firm, once you’ve identified a few strong candidates it’s time to start interviewing.
This is a crucial step in the hiring process. But it’s also a step that’s often so poorly executed as to make it nearly pointless. In fact, multiple studies have shown that the typical unstructured 30-minute interview is only slightly more effective than flipping a coin in predicting the long-term performance of two candidates.A typical unstructured 30-minute interview is only slightly more effective than flipping a coin. Here's how to beat those odds. Click To Tweet
Still, job interviews aren’t going anywhere any time soon, and we wouldn’t recommend skipping them entirely. Instead, aim to make your interviews more effective by creating a structured interview process that can better help you understand a candidate’s abilities. These tips are a great place to start:
Tips for Interviewing Software Developers
What should you ask when interviewing software developers? Here are a few of our recommendations:
Avoid asking leading questions. For example, if you want to hire someone who loves the Java Programming language, ask “What are your favorite languages” instead of “We work with Java, how do you like working with Java?”
Drill in. Drill in deeper and deeper on the topic and you will be amazed what you learn. For example, let’s say the candidate says they have worked with a given technology before.
Your next question could be “What companies did you use it at?”
Choose one of the companies they mention and ask how they used the technology there. When the candidate responds that they used it for X, ask “What was your involvement in using it for X?”
You can drill in more by following up with questions like:
“What improvements did you make? What were some of the problems you overcame?”
The deeper you drill in in on these topics, the more details you will discover about the person’s skills and experience. That can make the difference in feeling confident you have the right candidate or realizing they are not a good match.
Watch for the “We” answer. As you drill in, pay attention to the language the candidate uses. For instance, if you ask about working with AWS, the candidate might say “Yes, we worked with AWS all the time.”
You need to follow up and ask, “what was your involvement working with AWS? What were your responsibilities?”
Base questions on their responsibilities. In addition to asking general questions like “What is your experience with SQL?” you should also craft specific questions related directly to the key job duties they’ll be responsible for. Here’s a great list of software developer interview questions on a wide range of technical topics.
Have other team-members interview new hires. You should always involve team members beyond the hiring manager in the hiring process. It’s important for both the team and the candidate to meet the people with whom they’ll be working.
Some of the people you might involve include the immediate supervisor, peers, and direct report(s).
Ask Non-Tech Questions
Non-technical questions are essential, especially in determining whether a candidate fits with your company culture. But there are more important questions than the old “where do you see yourself in five years?” Here’s what to look for:
Look to your values. Do the candidate’s values align with your company’s? For example, if one of your core values is innovation, you might ask about a time they faced a tough problem, or one which they lacked the knowledge to solve.
Consider your company culture. What elements do you want to ensure remain in place? Create questions that speak to those elements. For example, if collaboration is crucial to your culture, you might ask about the candidate’s preferences for working alone vs. as part of a team. Here are some other examples of questions to help you determine culture fit.
Look for these soft skills and character traits:
- A customer service drive. Ask about whether they’ve ever worked in a client-facing role, or about a time that they delighted a customer (internal or external.)
- Intelligence – look for people who are eager to solve problems and can figure out anything.
- Integrity. Here are some questions you can ask to determine whether they will do what is right.
- An inner drive to do a good job.
- A desire to take on responsibility.
One final tip for a better, faster interview process: Remember that a great IT staffing firm will only introduce a select few of the best, already vetted candidates to you. This means your interviewing process can be much faster, since you’re not wasting time interviewing candidates that are unlikely to be a good fit.
How To Test What Software Developers Know
While many companies sell programming questionnaires or automated online skills tests — and many companies do opt to use them to filter out low-skilled candidates — we recommend that you skip them.
Yes, they’re simple to implement, but there are a few important things to know about these types of tests.
- They may alienate your best candidates. Skills tests tend to be a terrible recruiting experience. Expert tech professionals in particular find it insulting to be asked to take a test and often drop out of the application process when asked to do them.
- It’s very hard to find quality, up to date tests. Technology moves fast. Can you be sure your skills tests are up to date?
- Is your test even valid? It can be difficult to find valid tests that show a demonstrable relationship between test results and how a candidate will perform on the job. Many are, in fact, terrible predictors of whether someone will be good on the job. You may find yourself screening out good people and screening in bad people.
What should you do instead? We recommend using test projects and whiteboard interviews in place of these types of tests.
The Test Project
Test projects or coding challenges are a better way of having candidates demonstrate that they know what they’re doing. Be careful however, to not make your test project too big as that can be too much of an ask for an interview project.
A live or at-home test project should take 15 minutes to an hour or two at most. Much longer, and developers are likely to feel that you are devaluing their time or asking them to work for free.
The Whiteboard Interview
Whiteboard interviews are similar to a test project, but take place during the interview, usually lasting 30 to 60 minutes. Candidates are given a problem and tasked with working out a solution on the spot on a whiteboard. You may ask questions during the test and have the candidate talk through their thought process.
These tests are less about a developer’s ability to get the “right” answer, and more about problem-solving. How does the candidate approach and work through challenges? How do they behave under pressure? Do they ask questions when they’re stuck? If they get stuck and need help, how do they work with others in the room to overcome the problem?
For both test projects and whiteboard interviews, the task should be closely related to the actual work that the candidate will be expected to perform on the job.
At ProFocus, we feel that the very best test is a contract-to-hire staffing arrangement. With this option, your IT staffing firm finds and employs a contract technology professional for you. You then have the option of hiring that individual permanently after they’ve proven themselves on the job.
They Accepted the Offer — Now What?
You’ve put effort into making your company a place developers want to work, cultivating relationships, finding the right talent, and interviewing candidates. Now the day is here — they’ve accepted your offer, the t’s have been crossed and the i’s dotted. But your job is far from done.
Setting developers up for success through an effective onboarding process is essential if you hope to retain the talent you’ve worked so hard to attract.
Research shows that employees are most engaged during the first six months on the job — after that, engagement tends to drop. But companies that are able to keep employees engaged may benefit from increased growth and performance.
So it’s important to make the most of those first few months — a poor onboarding experience can be a huge detriment, but a solid, structured onboarding experience can make a significant impact on retention.
How to Onboard Software Developers
The process of onboarding developers really doesn’t differ much from the standard best practices for getting any employee started.
In addition to any training, paperwork, and tool / technology setup that’s needed, make sure to also do the following on the first day:
- Give them a big welcome to make them feel at home and motivated.
- Give them a tour of the offices and show them where to find everything they will need.
- Introduce them to their co-workers so they get plugged in right away.
- Make sure they have all the tools they need to do their job successfully.
- Share your expectations for the role with them.
- Let them know you can help them if they have questions.
- Provide access to documentation to help them get up to speed on the existing codebase.
- Ask them how they are doing at the end of the first day… and on an ongoing basis, such as at the end of the first week.
What About Contractors?
When working with contract consultants, it’s common to fall into the trap of thinking “they’re a contractor so I don’t have to do this stuff.”
Don’t make that mistake. If you want maximum productivity and don’t want them looking for the first opportunity to quit and take a different job, you’ll need to do most all of the things you would do for a regular employee to keep them motivated, engaged and productive.
How to Retain Developers
With more IT job openings than computer science students, finding talent is tough enough. But in this competitive market, hiring the tech talent you need is just the beginning.
Retaining those developers is the other side of the equation.
Building a high-performance team and enjoyable work environment — through a solid onboarding process, interesting projects, competitive pay, and the autonomy to do their best work — will go a long way towards attracting developers and keeping them around.
When it comes to finding talent, building relationships with a network of highly skilled developers is one of the best ways to always have access to great job candidates.
But of course, there are times when you need specialized skills that you can’t find in your network. Or perhaps you don’t have time for a lengthy search and interview process.
That’s where a reputable IT staffing firm like ProFocus can help. We offer an award-winning service, enabling you to augment your team with talented software developers for short or long-term projects, as well as highly experienced contract consultants, and contract-to-hire or direct hire placements.
We do all the work of building close relationships with our curated network of highly skilled individuals, so we always have access to the knowledge and experience you need.
We take the time to fully understand the role, your team culture, and the tech skills you need. Then we reach out to our deep network of local talent, identify the best matches, and conduct thorough vetting processes.
In the end, we only introduce a small number of on-target candidates and the ones you like the best start work on your project.