Fast growth is a great problem to have. You may be experiencing viral success, attracting new investment, or successfully pivoting to a broader business model. Or all of the above: Good for you!
Success will also require a sophisticated staffing process to expand your trust network with the help of experienced managers expert in both technology and the recruiting of elite software talent.
At Telegraph Hill Software we have learned some valuable lessons helping firms rapidly scale their development organizations in these times of scarce labor supply, high demand and brutal competition.
In Part 1 of this article, we covered Lessons 1-4, which tie your software recruiting strategy to your overall business model. In Lessons 5-8, we provide more specifics about optimizing and accelerating your software staffing process.
Lesson 5: Limit Recruiters to Management Positions
Lesson 6: Developer Hiring Cannot be Rushed or Automated
Lesson 7: The Best Staffing Partners Include Elite Engineers
Lesson 8: Contingent Hiring Delivers the Greatest Efficiencies at Least Risk
For niche position of limited duration where particular skills are most important and well-defined, a retained recruiter often makes sense. Positions such as, for example: Support Layer 7 v5.4 using Python 3.x for very high API volume in healthcare under HIPAA, ten or more years experience.
But retained recruiters can be both slow and prohibitively expensive for rapid software hiring in quantity. The problem is that most recruiters are not technical; either that or they have let their software knowledge lapse.
Unlike IT operations jobs (e.g., certified cisco engineer level 4), credentials tell us little about software development talent. This is especially true of today’s cloud devops positions, which require intimate understanding of vendor systems, but also the ability to write quality software. Even a degree from an elite school is not a fool-proof proxy, since most universities teach computer science theory, not the day to day craft of writing software.
Only an experienced software manager can properly evaluate or understand an engineer’s real-world skills, as well as their psychological and career motivations. The best developers are not primarily motivated by money; as engineers, they are motivated by the desire to build a technology their peers will admire, hopefully the world at large.
Software recruiting is different in that everyone has to “go deep”, not just into skills, but what makes a programmer tick, the state of the local business market, competitive offers, state of the IPO market, etc. Recruiters that don’t fully understand software developers will emphasize financial reward, potential stock appreciation, office perquisites and “culture” instead. Such offers are easily matched by competitors, and miss the core motivations of a good developer.
The cost/benefit of retained recruiters is best for line management positions where technical evaluation is likely secondary and at best commensurate with development skills. Recruiters also may be better focusing on core management skills vs software evaluations. Because engineers tend to overrate technical skills when evaluating managers, a non-technical recruiter won’t have that bias.
We all know the adage: “Low Cost, Speed, and High Quality: You can have any two of these, but not all three”. No place is this more true than hiring top developers.
When your need for additional developers is acute, there is every temptation is shortcut the process. Every milestone in the staffing process takes time: Sourcing, screening, and evaluating both technical and non-technical “soft skills”.
One option is to use an outside testing service to evaluate coding skills versus an in-person evaluation on a whiteboard. But even these services are liable to gaming — like college tests that become known in advance, there will always be hacks and cheats. You can trust the results, but will need to verify them, too.
With the ubiquitous adoption of agile methods, software is now a team sport. That means that technical skills alone are still necessary, but not sufficient. The ability to communicate and work effectively with product owners, project managers, peers, QA and operational engineers is critical for agile team success.
You need to understand how a candidate’s professional goals and psychological needs will complement the existing team. This takes time, a conversation between software professionals.
If you decide a given candidate will be a good fit, then the process of soliciting, scheduling and negotiating offers also takes time. Since the best candidates are constantly approached with other offers, closing candidates needs to be performed efficiently: A close is never complete until the candidate reports and completes on-boarding!
This process consumes not just your management time, but the time of everyone involved. Time that everyone would prefer was spent delivering product.
We believe best practice is to decouple the staffing process so it operates in parallel with your agile development process so your line managers focus remains product development.
If I were responsible for onboarding one or more talented engineers each week, after I had hired from my trust network, how would I do it? A good staffing partner will add value in the following three ways.
Staffing Partner Requirement 1: Possess Organizational Insight
A staffing partner’s ability to communicate and work effectively with product owners, project managers, peers, QA, and operational engineers is critical. So the first thing a staffing partner must possess is an understanding of my agile process. My staffing partner will:
- Communicate with my line managers as a peer, and relieve them of the hours it takes to screen, interview and evaluate candidates so they can focus on delivering software faster.
- Understand the sort of software development organization my company needs to build and help us build it.
- Work collaboratively with my other talent acquisition methods and partners in HR and work across multiple labor pools.
Staffing Partner Requirement 2: Provide Fully Qualified Candidates
Software development has become a team sport. A good staffing partner will be able to quality candidates on the basis of both technical skills and the soft skills required for agile team productivity. Among other things, the staffing partner will:
- Have a proven track record of finding and acquiring high skill talent, not simply selling the talent they have “on the bench”.
- Enable me to hire with minimal risk, indemnifying me when resources do not perform.
- Help me to fill both temporary and permanent positions.
- Be capable of staffing entire project teams when necessary.
Staffing Partner Requirement 3: Deliver Process Efficiencies
Finding the right talent consumes a large amount of time that would be better spent on managing the development project. A good staffing partner will make the talent acquisition process faster and easier by:
- Allowing line managers to focus primarily on building product vs staffing.
- Finding and onboarding elite talent faster than recruiters.
- Integrating their activity with my HR department’s processes and tools.
- Costing me less overall than my current talent acquisition methods.
- Operating without geographic limitations.
- Mitigating immigration and employment law issues.
Telegraph Hill Software believes the lowest-risk hiring method is Contract to Hire, also referred to as “contingent hiring” (although not all contingent hires include contract to hire terms). We see the following four benefits at all of our clients.
Avoiding the “Bad Hire” While Proving a “Great Hire”
Not everyone will work out after onboarding, no matter how good the first impression. Contract to hire allows you to evaluate the productivity and fit of candidates before deciding to recruit as an employee. You reduce the risk of hiring someone lacking the hard or soft skills they need to fit into your agile teams.
Contract to hire also reduces risk on the down side: If someone does not work out, they are easily terminated, eliminating the dreaded “performance improvement plan” or PIP often required by HR, particularly for protected class employees (over 40yrs old, female, etc.). PIPs are famous time sinks to distract software managers. Layoffs, should they be necessary, also have costs and expenses controlled by employment law which are avoided by Contract to hire.
Expanding the Pool of Available Talent
Adding contingent positions also expands the pool of high-skill developers beyond the pool of full-time job seekers. Hiring only full-time is a tougher sales job because candidates must be convinced that their next career move is full-time vs a time-bound “gig”.
Later in their career, elite software developers are choosing to remain independent consultants, especially under the new tax laws. The volatility of the software industry — ~95% of all startups fail, venture capital cycles end, etc. — leads older elite developers to select work based on technical challenge and work/life balance, not career advancement.
When a development manager recruits for full time positions, he or she makes a huge investment in time and costs. Having at least part of the workforce contingent delivers organizational flexibility that can deliver reductions in both time and long-term costs.
Your CFO will also want you to account for capitalization and how many hires will be permanent employees versus contractors and consultants. Ideally you want to mix all three to maximize your flexibility based on available talent.
Summary – Hiring Fast Need Not Compromise Quality Talent
Scaling software staff with high productivity is never easy. Brook’s Law tells us adding people to a late project makes it later, and measuring agile productivity is more art than science, even with a stable workforce. Competition today drives up costs and increases turnover.
Line managers are your single biggest success factor. Every agile software team has unique sets of technical skills, varying experience levels, and personality mixes. Developer roles, especially as defined by job titles, are never perfectly interchangeable, and only your line managers have all the information and context necessary to make a good hiring decision. And the quality of teamwork between your line managers determines how well your agile process adapts to a growing number of developers, scrums, and team interdependencies.
- Growing software teams by the tens or hundreds will require a custom mix of strategies:
- Traditional full time staff recruiting, seeking out active and passive job seekers.
- Retained recruiters for highly specialized positions.
- Distributed locations to access remote candidate pools.
- HR for process and risk control.
- Staffing partners with a high software IQ.
Take Advantage of Our Software Staffing Services
At Telegraph Hill Software, a software engineering and staffing firm, we strive to be the ideal technology partner our fast-growing clients. We’ve perfected it with fast-growing firms here in the San Francisco area, and would love to hear how they match your experience growing your software organization no matter where you conduct business.