When I first started the company I didn’t have a web or mobile development team. I had to turn to the internet and find strangers who had to prove their skills, trustworthiness and reliability. The following are takeaways from my own experience working with freelance developers:
Before you begin a project:
- Ask them if they work for a company or work on their own, many freelancers pretend they are on their own when in fact they help with business development for a larger group. The problem here, is they may be the ones to bring you in, but someone else will be doing the actual coding.
- Ask to review apps they have previously built on the app store. Have them send you links to the app store so you can review live apps.
- Get access to actual code (source code) on projects they’ve worked on in the past and have it reviewed by a 3rd party.
- Give them a test, you can use platforms like codility.com to administer coding exams to assess skills.
- Ask for references and speak with their former clients.
- Ask them if they back-up their code. This is called version control (Bitbucket.com or Github.com are popular platforms). Good developers should be doing this regularly.
- Ask them if they follow a code testing process. Testing your code is a great way to avoid issues in the future. Ask them if they know “test-driven development”.
- Get a breakdown of their development schedule and keep them to it.
- Ask them to review your project and point out any foreseeable risks, perhaps part of the project they have never coded before and may lack experience causing a delay in delivery. It’s good to know these things ahead of time.
- Ask them for any scheduling issues that may come up during your time together. If you’re working with a developer overseas, there may be holidays you are unfamiliar with.
After you begin a project:
- Determine a communication schedule between you and the developer. This can be weekly or daily. The newer the relationship, the more often you should be be communicating.
- Review the work by having the freelancer show you updates. You can easily do this by having them share their screen via Skype or any other video chat platform.
- Use screen capture time tracking software. Upwork.com already has one built on, Hubstaff.com is another one. Make sure you can see their work in real-time. This is extremely important for hourly-based jobs. This way the developer can never charge you for extra time.
- BUGS ARE FREE! This is important. Some developers will make you pay to fix simple mistakes. They have to understand early-on that any mistake (that is not considered a new feature) must be fixed on their own time and should not cost you any money.
- Comment comment comment! Make sure they comment their code. A bunch of code without good commenting is difficult to read, analyze and understand. This wastes time for anyone who may need to work on the same project in the future. Make sure the code is well commented.
- Make sure your freelancer is using the newest libraries/gems/dependencies. Programming languages get updated all the time. Make sure your freelancer is up to date with all of the newest features of the language they are working on. Many freelancers were taught a language based on early principles and structures. Those principles may have since been updated for efficiency, reliability and scalability. You don’t want to see 2006 code in a 2016 product. Trust me your clients will notice regardless of what the developer tells you.
- Ask the developer to send you a live accessible version of the product to test. Many developers work in a simulation environment which may not work exactly as expected on a live browser or device. Make sure they provide you with a way to test a real-case scenario.
- Designers are not developers. If you want a well designed product, with some thought put into user experience, you should hire a UX/UI designer seperately. Don’t rely on a developer to know how to build a good looking product. That’s not their job.
- Use a project management software to review and assign tasks. We use Teamwork. This allows you to set milestones and break the project up into many tasks. It also creates efficiency in communication between you and the developer because you both know what needs to be done.
- Determine a balance between being thorough and not being a pest. Good developers are hard to find, and if you’re lucky to have found someone good and reliable, praise them on their work. Too often developers only hear about the parts that arent working. Be thankful for the work they are doing, regardless whether you are paying them or not. Finally, if the developer isn’t the right one for the job, cut them loose immediately. Don’t delay they inevitable. More than likely it will cause more problems down the line.
Using the tips above should help you mitigate some of the risks that come with hiring someone you don’t really know. Online profiles are easy to fake so be careful and look beyond a 5-star rating and a pretty face. You need to know you won’t be wasting time, money and more importantly building something you and/or your client wont be happy with
Good luck and let me know if I can help in anyway.