Building a team

Hire for talent, not cost

A few reflections on the various ways of building development team capacity, from hiring freelancers or an agency to hiring staff. Based on my experiences working in bootstrapped startups and as a freelancer - this is not necessarily good advice for a well-funded high-growth firm!

Freelancers

It is tempting to think that you can package up your projects into neat little parcels and get people from Upwork to carry them out. In my experience, it takes much longer than you'd think to create work packages like this and quite a long time to find and vet qualified candidates. After that, if they get it right first time the freelance option can be worthwhile. But in general, longer term relationships are harder to maintain. I've never met anyone who actually enjoyed managing a remote freelance dev team. You're also left with the problem of not having continuous tech support available - and any bug fixing has to fit around the developers' other commitments.

The exception to this is designers. I've had some very good experiences with freelance designers, perhaps because design work lends itself more readily to a freelance "work packaged" format.

Agencies

I've personally never used an agency - by which I mean a development firm that offers a full-spectrum service from coding to tech support - they are often based in Eastern Europe. I have, however, been hired several times for one-off projects that were taking too long for an agency to complete. I suspect the business model of a lot of these outfits is to bid cheap and become indispensable for as long as possible, in the knowledge that whoever hired them probably doesn't have much in-house expertise. This is not a model that encourages them to be responsive and go the extra mile. Depending on your niche, you may come across cultural/language issues that can be frustrating. This is also a risk with hiring overseas talent directly, but I've found the problems tend to recede the longer someone has worked for a UK company - and that's more likely to be true for people who are direct hires.

I'm sure there are good agencies out there so if you can get a personal recommendation then it's worth exploring ... just be aware that the cheap ones are cheap for a reason. You'll also need to factor in the overhead that comes with a remote contractual relationship. Asking an agency to switch priorities and work on an urgent bug isn't as simple as just leaning over to the next desk.

Using a recruiter

Use a recruitment agency. It will make your life so much easier. Find one that specialises in your industry, the level of experience you're looking for and your tech stack. Their fees will be annoyingly high and yes, they mostly just DM people who fit the profile on LinkedIn but the alternative is having to wade through hundreds (yes seriously) of barely credible CVs submitted by bots in India. It's worth having a chat with a few firms when you're early in the process of making your first hire so you can find someone you want to build a long term relationship with - and who wants to work with you.

Hiring cheap

If you've got time to invest in someone's training, then hiring an inexperienced but talented person can be an excellent move. It has certainly worked well for me in the past. The trick is to find someone with exceptional talent ... they need to become productive quickly enough to offset the cost of the initial period - when they won't be adding much value. An opportunistic approach can be sensible ... if you happen to come across someone who is keen and seems to have suitable talents, then move them into the dev team. But don't do it because you want to save money - if you're not paying market rates they will quickly work that out and leave. Make sure you have a clear career and pay progression plan - and stick to it. You'll need to carve out time in the working week for training - and make sure you've got room in the budget for materials/courses/subscriptions.

If all that seems like a pain (and it can be) then just pay the market rate for the most experienced developer you can afford. Don't try to hire experienced people cheaply - you want your team to feel valued, not commoditised. If you beat them down to less than 100% of the market rate, they'll bring less than 100% of their energy and talent ... and will probably leave or renegotiate as soon as a better offer comes along anyway.