I know I should be focusing on one project at a time, but it’s often hard to shake a good fun idea out of my head once it make it’s way between the couple of brain cells I have in my head.
I like to listen to interviews and talks from YouTube when I’m doing none writing work. But recently I got increasingly frustrated by how slow videos of talks and interviews can be, I think in part this is because I got used to listen to audiobooks and podcast at double speed on my iPod, so I began to wonder if there’s a way to do it for YouTube videos. I found you can control the video playback speed in VLC player but it was a bit inconvenient for me (even though I does use keyboard shortcuts to control playback) so I decided to make this an experiment in outsourcing and try to find someone on oDesk to make this into a Chrome Plugin.
The process
Finding a suitable developer was surprisingly straight forward. I went to oDesk and eLance and did a quick search for “Chrome Plugin developers”. Found 7 candidates that specifically mentioned Chrome Plugin experience in their profile. Emailed 4 of them very briefly mentioning a project to control YouTube videos with a Chrome Plugin. 2 of them got back to me within the next 2 hours (Communication and response rate is very important) and since one had experience working with YouTube API, i decided to work with him as a fixed cost project with a deadline of 2 weeks.
Over the next 2 weeks, the developer sent me a number versions to test, I was pretty impressed with the quality of his work, I thought this was a rather simple plugin, so I didn’t think it would require too much attention, but of several occasions, I was asked questions to scenarios I have never heard of, after ironing them with a few more hiccups than I would like, my first experiment in outsourcing development was complete and below is what I have learnt.
Here’s what I learnt
1. Read up on the documentation (At least a tiny bit)
Being an end user is NOT the same as being someone responsible for the product, just because you have a rough idea of what you want there are still many ways to “skin the cat” (This is a just a common saying, I am very much against animal cruelty). I think I was rather fortunate in finding a decent developer who with good ethics, if I wasn’t I’m pretty sure I could have been ripped off
2. Write a really good detailed brief
I’ve long believed a picture can speak a thousand words, so I made a number of mock ups to demonstrate what I had in mind. This saved both of us plenty of time.
3. Clarify the deal
Make sure you have an agreement on the terms of the partnership from the very start. This includes what would be delivered, within how much time and what happens if something goes wrong. I was a bit silly to not state I wanted access to the source code from the beginning, so half way through the process I had to discuss with the developer if I can have the editable files. Luckily he was fine with it, but if he said no, or asked for more money to do so, it would have been incredibly frustrating.
4. Take the time to test out the end result
Seeing we have been making good progress with the plugin so far and being busy with some other work. I actually didn’t check the end result before I sign off the project and full sum was transferred over! Extremely dumb of me on my behalf. I trust the popup from the tool bar would be styled to how I mocked up the design, disappointing AFTER I uploaded the plugin to Google, I realise that wasn’t the case. So I had to unpack the files and edit all the CSS myself and resubmit the project. Imagine if the styling wasn’t controlled by a language I am familiar with, I’m not sure what would I’ve done. I could engage with the developer again to finish the job or just stick with how it was, but it would have been so much easier if I checked before signing it off.
At the end, I’m reasonably happy with the result at the $160 USD I paid for the development. Any fault in the end product was my own, either not being thorough enough or not writing a better brief.
The Result
Embedded View
YouTube View – not keen on the placement, but what can you do?