Check out their workAsk to see some of the developer’s finished work. Before you start evaluating, make sure you understand the parts your prospect worked on. Spend some time to explore their project. Make notes of what you like and don’t like. Maybe they built a web app that’s really fast, but it places some odd constraints on the user’s password. Ask them what led them to make those decisions. Any sort of software development, whether it’s web, mobile apps, or desktop is a game of finding the best compromises. Hearing the various trade-offs a developer was faced with and their approach to solving the problem is extremely valuable in assessing how they will address problems your project will encounter. If you know a little about code yourself, you can dig into the developer’s GitHub account to see what they’ve written and which projects they have contributed to. Seeing their code will help you understand if they are a good fit from a technical perspective. This gives you a more concrete idea what that developers list of accomplishments actually means in terms of skill. Here are a few aspects of the freelancer’s GitHub that might not be obvious at first but you should pay special attention to:
- Languages: does the freelancer stick to one or two favored languages, or do they dabble in many different languages? Finding a specialist in the technologies you need for your project can move things forward quickly, but a freelancer with a breadth of experience can offer suggestions about other kinds of tools better suited to your job.
- Comments and Documentation: how well is the code documented? The nature of freelancing means that you may have other people working on the code at some point. Will this freelancer’s code be easy to work with? If not, that means you might be committing to them more than you want to. Some developers believe self-documenting code means they don’t need any comments. If you don’t see comments, how readable do you find the code?
- Do they contribute to other projects? As counterintuitive as it may seem, it’s often harder to contribute to other open-source projects than to build your own. Other people’s code can be difficult to understand but doing so is a necessary skill. This is particularly important if you’re bringing a developer in to work on an existing codebase. If they’ve contributed to open-source, it’s more likely they’ll write code that others can maintain later since they understand the challenges of doing so.
Find out how (and what) they learnFrom the best practices to the actual technology used, software development changes at a rapid pace. If you end up with a developer who is stuck in the practices and tech of 10 years ago, you’ll miss out on tools and techniques that could make your project better, faster, and easier to maintain. Ask prospects how they learn new things and what is the most recent thing they’ve learned that helps them in their development. What did they gain from learning it? What’s the next thing they would like to learn and why? Even if you aren’t familiar with the specifics of their answers, you can get a sense for how curious this developer is. Too much curiosity can lead to projects being built on experimental, unproven foundations, but, in general, a curious developer can bring more to your project.
Find a compatible communicatorCommunication can make or break a project. Make sure the developers you work with are willing and able to communicate in a way and with a frequency that you can live with. Most developers have communication tools in place they use with colleagues. Look into those and see if they will work for you. If not, find out if the developer is OK using the alternative tools you suggest. This is also a great time to find out how often you’ll be hearing from the developer. If the answer is, “Once at the end of each milestone,” you’re probably going to be unhappy. What are the chances the developer will understand your project exactly the way you intend it the first time? What are the chances that every distinct piece that makes up a completed milestone will be perfectly in place just as you imagined it? Regular check-ins (at least once a week) can fix small misunderstandings before they become big ones.
Test them with a projectYou’ll learn more with this method than with all the others combined. Asking probing questions and peeking into their code can only give you tiny glimpses of what working with a person is like. The best way to understand what it’s like to work with them is to do it. A test is also your best opportunity to get past the technical stuff and into the stuff that really matters: Are we going to be miserable trying to work with this person? If possible, break off a small piece of your project and work with the prospect to complete it. If at all possible, pay them to do it. This does a few nice things for you:
- it gives you a low-risk way to test working with the developer;
- it leaves you with a useful deliverable even if the relationship doesn’t work out;
- if you can afford to pay a fair rate it’s mutually beneficial for both you and the developer.
Careful vetting pays offIf your timeline for project completion is approaching and you don’t have time to take all these steps, at least do the test project. Have your prospect build a piece of the larger project, that way your risk is low and no time is wasted. It’s an extremely valuable tool to ensure this is a relationship you want to have. Even if it fails and you have to find someone else, it will cost you less time and money than committing to a development partner to build the entire project only to have it fall through. It’s much easier in the beginning to pick someone you like and hope for the best. Sometimes that can work out, but, for the good of your project, you should enter into relationships with your eyes open as much as possible. Featured image, teamwork image via Shutterstock.
We’re all familiar with rebrands going wrong, but what happens when they go right? From McDonald’s health kick to…
By Max Walton
When you hire graphic designers to create your company's logo, what do you expect? Professional designs, culturally…
By Robert Reeve
As web designers, our role in crafting user-friendly digital landscapes is critical. We are tasked with creating user…
You plan to set up shop with an online store. You know there’ll be competition. And to compete with or beat that…