As a startup founder, it can be very hard to find the right people to work with, especially if you are building a SaaS application and you are not very technical.
Building a local, on-site team can have a lot of advantages, but if you are on a budget or if you are self-funded maybe hiring a freelance developer would make much more sense (as we learned from our own experience as remote CTO to a startup in Barcelona - read the story here).
There are many freelancers and agencies out there that could help, but how do you compare them? Is price really the best indicator? Maybe you can find two developers with the same price tag but vastly different skill levels. And trust me, being a developer (and tech lead) for the past two decades, I've seen it happen a lot of times.
So I want to share two stories that could help you make better decisions when working with people you have not met before and I would skip the obvious things like asking for and checking references, asking for code samples, holding a technical interview etc.
I'll just stick to telling you about two stories: one where the client (George) was happy but paid more, another one where the client was happy and paid less in the long term. The latter will explain what the former lacked in order to be a 100% solid project.
Story #1: George The Client
A few years ago, after me and Paul have been actively working on building Around25, we were meeting our friend and high-school teacher for dinner almost every month or so.
We would discuss about our passion for programming, business and how each of us was doing. After spending a few years talking like this, he wanted to start doing freelance work as well and maybe grow a team of students that could help out if they are passionate enough.
He would find clients on freelancing websites like Freelancer and Upwork (Elance at the time) and he would give them small tasks to do, trying to teach and also rely as much as he could on them.
One day, he had a client named George that wanted a small website for his business. He also wanted a section that only he could use, which should be protected by a password. George did not have any understanding of how a website is built and therefore only wanted to see the results.
Since our teacher was very busy at that time, he gave the project to his student to work on and had little time to review the work.
The student made George very happy. He delivered a simple editable website that had everything the client asked for.
One thing our teacher did not teach the student was how to save data in a database. So the student saved everything on hard disk with all site content and the password to access the restricted section being hard-coded in a PHP file.
When George came back a few weeks later he only had one request. To be able to change the password. So the student complied... he created a file named PasswordOfGeorge.txt and added the password to it. The client could then use a form to change his password and again the client was happy, having received everything he had asked for.
I imagine that George is either still using the website as is and securing access to edit the content in a single .txt file (most likely visible online).
Hiring a freelance developer without any technical background to validate the quality of the work will get you into a lot of situations similar to this one.
You may get everything you want now, but the next time you want to add a new feature to your shiny new website and you can't use the same developer don’t be surprised when your next freelancer says he needs to rewrite the whole project first.
There is an old saying that applies very well to using freelancing websites:
Trust but verify!
By this, I mean check that the work meets your standards regarding what had to be built, but also get someone technical to verify the standard of the code behind that functionality.
You don’t want to realize you're George and instead of hiring a senior developer with 20 years of experience you actually got a high school kid who just started learning how to build a website on your project.
My takeaway here?
Find someone with technical know-how and hire them 1-2 hours per week to only review the state of your project. Then start looking for a freelancer to build your website.
Find more in this hand-picked article for you:
5 Things to Know before Hiring
Your First App Development Team
Story #2: The Consultant
A while back, we were working with one of our clients who was collaborating with a German University to build a solution that would help review, maintain and cure breast cancer and a high quality of life. This was done through an extensible questionnaire system that the patients were asked to fill every week.
Our team had been working on the project for about one year since the initial discussion and we were preparing to launch in a few months, when the client decided to bring in a consultant to verify our work.
The consultant was a very experienced developer and business man with a lot of projects under his belt.
He was given access to the project, at the client's request, and spent around one week or two reviewing the code, the current status, our roadmap, the pending issues, our work process and any other information about the project that was relevant.
In the end, he created a nice document with what is good, what is bad and how it should be improved and then gave it to us and the client to review.
6 months later, right after the launch, he comes back and reviews the work again. He makes another similar document, but this time with far fewer things to write, because we had taken care of most issues, if they weren't already on our bucket list.
He then contacts Paul, after we had completed the project with the client and says that he needs our help with speeding up another project he was involved in. That project was a global company used by many fortune 500 companies. We worked for another 2 years on that project with a team of around 5 people.
Do you think George would've rehired his freelancer had he had someone technical on his side?
I often like to quote this saying: The reward for good work is more work!, and in this case, it applies very well: we did good, solid, documented work and we were able to do that faster and better because there was a consultant at the other end. This was all because the client saw the bigger picture and went for the cost-saving and time-efficient solution of hiring a fully-competent team where you can rely on back-ups if needs be.
So what did George's project lack?
- Awareness that every project can be improved with the proper guidance and you need to seek for that guidance from someone else than the developer(s) working on said project.
- The intuition that almost any freelancer you choose can be a great one, but only as great as your requirements let them be.
- Interest in the quality of the codebase.
George wasn't aware we're living a time where a non-technical startup founder should constantly cultivate the relationship with their technical team.
How about you? How will YOU avoid being just another George in the startup landscape? If you don't know how to answer this, you can drop us a line at [email protected].
Heads-up: Since we're all about knowledge sharing and transparency, we're constantly drawing from our experience to write informative product-related pieces. One we'd like to recommend to you is about our experience being remote CTOs to a Barcelona-based startup and how we overcame the long-distance impediment.