Our view on when you need a freelancer, agency or employee.
This is Part 2 of our series on software development for non-technical founders. Part 1 was You will not find a technical co-founder!
This article is about how to determine the best way to develop your software project if you are not a programmer. In other words: who should you ask to turn your software idea reality?
Projects don’t scale linearly. You have to approach a 100 hour project very differently than a 1000 hour project. You cannot cut your big project into ten smaller chunks and get off that easy. You will be wasting the advantages of scale, paying double for expected overruns, sacrificing quality and ruining the odds of this code scaling with your company.
An adult male Bengal tiger weighs up to 258kg (569lbs). An average male domestic cat weighs 3.9kg (8.6lb). It is a very different game keeping a single Bengal tiger or 66 house cats!
One 1000 hour project is not the same as ten 100 hour projects!
Some reasons why software projects don’t scale linearly:
- Tech projects get exponentially more complex with size. (Notsomething we made up.) Larger projects need more planning, a structured team with different & complementary skill sets, project management, more legalese, etc. Or to look at it in a positive light: small projects probably don’t need any of this.
- You might find a genius coder who is gainfully employed, but likes a fun freelance job in the weekend. Her work, family, XBOX and friends will come first, but she might be able to squeeze in a few hours every week. A genius freelancer is great for a tiny or small project, but becomes unpractical at scale. (Similarly, a development shop might have some idle developers in between projects that you can hire for a good price, but as soon as the BIG CUSTOMER comes calling, you are definitely not a priority.)
- The stakes are different. Wasting a few grand is a bummer, but won’t ruin your life. Wasting a hundred grand (here in Europe) might destroy your entrepreunerial career before it ever started. That means not only the tech component becomes more complex, but also all the management aspects. As owner of a bigger tech project, you will face reporting duties, managers, customers, more legal stuff, tax stuff, etc. Having “some guy, somewhere” develop it, will make your life very hard if something goes wrong.
- Developers (or development agencies) want a higher rate per hour for small projects than bigger projects. This has to do with certain fixed costs per project/client, like acquisition & setup. Ten 100 hour projects will cost more than one 1000 hour project.
- Small projects can be done on basically any platform in any language. (Itreally doesn’t matter.) But that is no longer true when a project grows or has very specific requirements. Therefore, your tiny project that works like a charm might not work at scale or as a component of something bigger. And not all languages are quick enough for big-data, encryption and very complex search.
Sizing up your project
Having established the premise that software projects indeed don’t scale, let’s talk about projects of different sizes and how to find developer(s) for them. Let’s use some semi-random numbers that we have found to be useful.
- Small projects: budgets less than €2500.
- MVP-size projects: budgeted between €10,000 and €50,000.
(MVP: Minimum Viable Product).
- Big projects: €50,000 and up.
Small projects (less than €2500)
These projects are too small for development houses and you definitely don’t want to hire (payroll) a developer. In our opinion there are only two ways to develop a project of this size.
- PLAN A: Develop it yourself
- PLAN B: Hire a freelancer
PLAN A: Develop it yourself
We will write a future post about how this is usually a bad idea and we don’t believe in it, but ignore future-us! Projects of this size are a great way to acquaint yourself with software development theory and practice. The stakes are low and it won’t cost you too much time. And even if you fail, you have at least learned enough to properly determine and write down your project’s specifications for Plan B.
PLAN B: Hire a freelancer
If you do not have the time or just don’t feel like learning basic software development skills, you can hire a freelancer. This is not the same as hiring an agency. Much has been written about using freelancers. Read all this at your leisure, but let’s be blunt: you don’t have an alternative.
There are many kinds of freelancers on the well-known freelancer sites, including students, Asian software factories, overcapacity of (Eastern/Central) European agencies, geniuses with boring jobs looking for some fun and genuine professional freelancers. Results will vary.
“Begging a buddy to do a job in exchange for a six-pack is the same as hiring a freelancer. The only difference is the currency.” – Rik
Finding a good freelancer and successfully completing a project is actually quite difficult, but we can offer some general guidelines:
- Use one of the well known sites: freelancer.com, odesk.com or elance.com
- Only work with freelancers with high ratings in similar projects.
- Make very sure the freelancer has read your specifications. You will usually get bids within seconds of posting your project. Feel free to ignore all these guys.
- For relatively big small projects ($500 or up), ask for samples, references, etc.
- ALWAYS use the escrow function and NEVER release before you are satisfied. Agree on a road map with intermediate deliverables and milestone payments.
- Don’t automatically go for the cheapest freelancer. This should be fairly obvious: price is only one metric.
- Cut your losses early. If the communication is lacking or the deliverables are not good enough, find another freelancer! You don’t have money or time to waste.
We have both used these sites extensively with mixed results. This post is already getting quite long, so we won’t discuss all our thoughts here.
Projects that should not exist (between €2500 and €10,000)
This is a tough one. We find projects larger than approximately €2,500 don’t work on freelancer sites. Unless you are ready to be a full time project managerand spend a lot of time on trying to find the right freelancer, you are virtually guaranteed to get a crappy result. Projects in this category are complex enough that they require forethought and planning, but they are not big enough to warrant the overhead. We know this sucks, but you have options. Two of them:
- OPTION A: Make the project smaller. You can cut your project into €1–2k chunks and do one at a time. Better yet, don’t cut it in chunks, but trim the fat. Do your best to find a workable core product (mini-MVP) that can be built for less than €2500.
- OPTION B: Make the project bigger. Develop a realistic development road map that you can show to agencies. Try to sell them on you and your idea. Perhaps you can find an agency that is willing to work with you on a smaller project with the promise of additional business. If you don’t have the money now, convince these guys that you will find a way to keep feeding your tiger cub.
MVP-size projects (between €10,000 and €50,000)
These are the coolest and most exciting projects. They are bigger and more complex than the small projects and not as monotonous and long-term as the big projects. Everyone loves these. They keep food on the table for a few months and usually have at least one or two interesting technical or design challenges.
In this range, we typically find projects that involve between 400 and 1500 hours of work. They cost enough money that some of the budget is usually set aside for overhead, like project management, cost overruns, writing specifications and testing.
Assuming you are a business co-founder without the technical skills to build your own MVP, you have a few options. Forget freelancers for the aforementioned reasons . Forget hiring (at least in Western Europe). That leaves finding a technical co-founder (which is awesome, but will not happen) or finding an agency to outsource the development to.
Outsourcing is the best way to go for start-ups with limited funding and a concrete MVP that they want to develop.
In the coming blogs we will be expanding a lot on this topic, but let’s start with our list of reasons why we believe outsourcing to a mid-sized agency (ten to fifty employees) is best:
- Agencies have people with different skills in house. Good agencies will have (or know) terrific database guys, AWS-experts, front-end gurus, obsessive QA people and strict project managers.
- Great developers and designers like variety. A project like this will get them excited to test new techniques they have read about or just to work on something else for a while.
- The agency runs all the business risks of sick days, holidays, maternity leave, etc.
- Agencies have knowledge in house that can help you. A good agency can be like a surrogate (technical) co-founder. They should know a lot about project management, communication tools & development best-practices. Don’t underestimate the amount of time you can waste learning PM tools and methods. We’ve even heard of agencies helping their clients raise funding.
- Outsourcing to foreign lands can be very useful. Here in the Netherlands good developers are as hard to find as anywhere else and also three to four times more expensive than our brethren in Eastern and Central Europe. We’d argue that nowadays there needs to be very little practical difference between outsourcing to 50km or 500km away.
But be warned: outsourcing is not easy. You are not buying a commodity, you’re looking for a partner. You will need to invest time and money to find the right development house. That means extensive contact with a few possible suitors and, if possible, face-to-face meetings.
Large projects (€50,000 and more)
Projects of this size are different. They are too big to be a proper Minimum Viable Product. If you are thinking about a €50k+ MVP: reconsider! If humanly possible, try to reduce it to a more manageable €20–30,000. That way you have some runway to improve and/or pivot.
But maybe you’re not looking for a MVP. If that is the case, you probably work for a big firm. Our advice: try to in-source talent (employees) and work with a flexible layer of semi-permanent developers at a large agency. There are a few multinationals devoted to delivering software according to this business model. It is very similar to outsourcing for MVP projects, but also much harder. These agencies are generally a lot larger (hundreds or thousands of employees) than what we would advice for startups. Requirements are typically written based on office politics, legacy software, marketing strategies, legal aspects and such.
Rik has been involved in a few projects of this size and they are tremendously difficult to do well. Even large professional firms regularly get burned on large software projects. Their final solution is usually to bring in a classical software consultant at tremendous cost.
As we stated in our first blog: we are here to write about outsourcing for start-ups. That means our main focus is the MVP-size category of projects. We will also spend some time talking about smaller projects, because we all have to deal with them and they are often the first step to a bigger project. For now we will avoid talking about large projects, because they are not our area of expertise.
@SUoutsourcing recommended articles:
Why do large software projects fail
Mind’s limit found: 4 things at once (Bigger projects are harder, because no one can remember what all the parts do.)
The danger of complexity: More code, more bugs
Hiring Freelance Contractors: 8 Things You Need To Know
Does your startup really need to hire in-house developers?
 We like forced metaphors, especially if they allow us to use tiger cubs as the background image!
 These are just general guidelines, feel free to express projects in hours or any other units you like. We find €25–50 per hour to be a reasonable estimate, depending on the complexity, programming language, country, etc.
 We know this puts new people at a disadvantage, but such is life. Your project should not be someone else’s first steps.
 Google Hangouts, Skype, email, Trello, Basecamp, Podio and a million other tools can you collaborate online.