The aim of this post is to give an overview of why I outsource and an introduction of how you can do it yourself.
Outsourcing allows you to :
- Grow your business to the next level without significant risk
- Spend more time doing things you like or are good at
- Spend less time doing things you don’t like or suck at
- Still do important activities even when you lack the time or skills(marketing anyone!)
- Improve your management skills
- Get access to skills currently not in your team
As an indie developer you most likely work alone or in a small team with very limited time and resources. It is not uncommon to hold down a full time job, look after small children and meet other significant commitments while also trying to start and grow your business. The risks to your business are huge. For every developer who is making a tidy income there are many more who fail to achieve the success they were looking for.
Once you get the hang of outsourcing and make some good contacts you will be able to focus your time and energy on the strategic aspects of your business while your freelancers execute on your vision. Scaling your business is easier as you don’t need to clone yourself to grow.
Why Do I Outsource
Over the last 10 years I have outsourced around 20-30 projects. Including SEO, content copywriting, wordpress websites, c# web app development and a variety of other work.
Just over a week ago I started my first mobile game – Monster Splash. I used to play games alot when I was younger but I have never made a game in my life. Now I have a busy full time job and a toddler. I surf, socialise and exercise whenever possible. It’s a great life but it doesn’t leave much time in the day to learn game development.
My wife is a graphic/web designer so the original plan was to have her do the art but that quickly fell apart. She stays at home looking after our toddler and also has no experience playing or designing games.
To make Monster Splash successful I decided to best approach would be to hire a game developer and a game artist. By outsourcing the development my focus can be 100% on marketing(including writing these posts!).
Did I mention that we have a big fat mortgage(woohoo!), so money is also very tight. Luckily I have a few apps in the app store which are simple but they earn me $500 / month. This doesn’t provide me with enough to live on but after a few months it is enough to invest back into new projects.
For this project I prepared 3 documents(with Google Docs) :
- Game Specification
This contains the objectives, gameplay elements, non functional requirements, guidance and a list of resources. This is the main reference for the developer. This took me about 6 hours to prepare. - Game Design Elements
This contains a summary, inspiration, screen dimensions, in game graphical elements, out of game graphical elements. This is the main reference for the designer. This took me about 4 hours to prepare. - Marketing Checklist
This contains 4 major stages: pre announcement, announcement, launch day & post launch. This is what I am focused on and where possible I will allocate tasks to my personal assistant.
I will be blogging about the development, marketing and finances of Monster Splash as it progresses if you are interested in finding out more.
What Should You Outsource
As you can see from the things I have outsourced it really depends on what it is you need help with. How you choose to spend your own time has an enormous opportunity cost. Being able to leverage other peoples time allows you to focus on the things that really matter.
To determine what you could or should outsource start by writing down the activities that you and you team are currently doing each day. Also list activities that think you should be doing but don’t have the time, skills or patience to do. Take this list and start to categorise them into the following groups:
- Things you want to do or are good at
- These are probably the things that you should try to keep doing yourself
- Things you don’t want to do or aren’t good at
- You shouldn’t really do these because if you aren’t interested or don’t have the skills then you will do a bad job
- Things you don’t have time to do or are time consuming
- If it’s important but you don’t have the time to do it properly then you are taking a huge risk.
The second two groups in this will help you identify activities that would be good candidates for outsourcing.
Where to Find Freelancers
Now you have a list of things that feel could/should be outsourced. You will need to do some preparation before posting a project and hiring someone so I suggest having a look first to see if there are people there you feel have the skills you need.
There are many freelancing websites but the ones that I use myself and had success with are:
I also used http://bestjobs.ph/ to find my personal assistant but this is just a job posting site with no freelancing features.
Some of the benefits of using the freelancing websites rather than just posting on a job board are:
- Reputation
Each freelancer has a profile and gets a rating and feedback for each project they complete. Where possible you should try to hire someone who has a high rating and has very good feedback. Read through their feedback for projects which are similar to yours. Try to avoid using people with no feedback and definitely don’t hire people with bad feedback. - Protection Through Escrow For Fixed Price Projects
If you chose to do a fixed price project then you agree on a price with the freelancer. Before they start work you will have to put the money into an escrow. This protects the freelancer as they know there is money for the project. It also protects you as they won’t get the money until they complete the project(or milestones within the project).
How to Outsource Work
This is where you can hone your management skills. When you have people working for you they need to know exactly what to do next and have everything they need to be able to do the job. If you can’t spend the time and effort to be able to communicate what needs to be done and how they need to do it then there is a good chance that your project will fail.
- Non Disclosure Agreements or NDA
I purchased the “How to Make iPhone Apps With No Programming Experience” which contains an NDA. There are many free ones on the internet so just do a search. - Google Docs
I make extensive use of Google Docs its a great collaborative environment where I can share it with freelancers and update it through the project. - Skype
Most freelancers will communicate through skype chat. Video chatting is very rare. - Version Control and Bug Tracking
I couldn’t live without using version control and task tracking. Emailing source code around sucks. When you have more than one developer you need it. I currently use Repository Hosting but can also recommend Codesion.
How to Succeed Outsourcing
In my experience the keys to successfully outsourcing work are:
- Be Prepared
Prior to hiring anyone you need to put your boy scout hat on and do some hard work. This usually means providing them with a spec. for development/design work or step by step instructions of what you need them to do for more general tasks. If the instructions you give them are unclear then you only have yourself to blame when the project fails. - Choose Carefully
This person needs to have the skills for the job, time to do it and be an excellent communicator in a language you are fluent with. If they lack any of these then there is a good chance it will go pear shaped. Ideally select people who have a near perfect feedback score in projects similar to yours.
- Communicate, Communicate, Communicate
Assuming you have given them clear instructions and you have chosen the right person then you now need to monitor their progress. Set milestones for them to reach by a specific time and always be available to discuss the project. Your job during this phase is to remove anything that is blocking them and to provide feedback and guidance of their progress.There is no need to micro manage but you need to keep checking in with them to make sure they are on the right track. - Nurture the Relationship & Provide Feedback
As with all people who you work with you should give them praise for doing things well and give them constructive feedback when they aren’t. Avoid insults or rude behaviour even if you feel they have let you down. - Give them a Great Review
Where possible you should rate the freelancer and it possible give them good feedback. They will also rate you as an employer. Your reputation as an excellent employer will make it easier to find quality, skilled workers for future projects.
Things to Watch Out For
I’ve been burnt a few times outsourcing work so don’t leave here feeling like it’s all roses. Some of the things that I have experienced are :
- The Developer Didn’t Have the Time or Skills
On a fixed price project the developer made a good start on it but never completed the first milestone. This project dragged and dragged. While this was happening my money was stuck in escrow so I couldn’t just repost the project and get someone else to do it. I got it back eventually but it was probably 6 months later- Lesson Learnt: Be more careful about who I chose and set an small early milestone so they can demonstrate they have the skills
- I Paid $350 Upfront Without Using a Freelancing Website(ie. Paypal)
What was I thinking!!! This was someone I found through the bestjobs.ph website for doing SEO work. They sounded great, I paid the money and then never heard from them again.- Lesson Learnt: Don’t be douche. Avoid paying upfront, especially for people you don’t know & trust. Use the freelancing websites until you have a relationship and trust them.
I hope this gives you some insight into outsourcing. Personally I find outsourcing enjoyable and rewarding. Please share your experiences below, would you trust your critical projects to freelancers?
Want more details? Ask me on twitter @scott___bradley