One of the Most Time Consuming Startup Roadblocks
softwarebyrob.com
softwarebyrob.com
The question remains: How do you find sufficiently qualified and trustworthy partners who are willing to remain on standby for tiny one-off tasks like these?
Moreover many of his bullets just make no sense whatsoever. How am I supposed to outsource "Fixing Post-Launch Bugs" (on my code-base)? Creating Unit Tests? Database Development?
I have personally witnessed more than one startup fail spectactularly because the CEO drank a bit too much of the outsourcing kool-aid. Over here in the real world it still takes quite a bit of time to bring a contractor up to speed, even on small tasks. In my expirience outsourcing makes more sense for slightly bigger chunks, to justify the overhead, instead of the teeny weeny bits.
There is no sense of company loyalty. There is no sense of how to work independently without being told what to do. Status is defined as 1) how many people work under you, and 2) how many servants you have. If another company offers to give them 5 junior programmers ("freshers") to work under them instead of 4 you can kiss them goodbye. Oh, and never take their word about anything. You need to review the code on a daily basis to make sure something is actually getting done. Not to mention, while they will tell you otherwise, java and .net is the only thing they give a rip about, maybe a little php.
A startup is an inherently creative process. It would be like Bono outsourcing a new album-- then finding out they only play sitar. He would spend TONS of time documenting everything about how he wants it to sound and telling them in detail exactly how it should work. If he is lucky they will get 75% there. Creative processes just don't work like that.
Large bureaucratic organizations can squeeze the cost savings out of outsourcing, but for a startup it's just asinine. The only exception is VERY rote tasks. Basically just data mining. Send them a link to a website that you want mined and they will do it pretty cheap. Now, you could probably write a script to do it in about the same time, but in some cases it's easier just to give it to them.
Now that I think about it, the reason I left to do a startup was because I wanted to get away from people who get a big chubby over Thomas Friedman but don't have a damn clue about software development.
I've had much more luck and a hell of a lot more fun traipsing around Guangdong and dabbling in manufacturing.
Oh really?
Let me suggest that you're using "caste" in a somewhat different way than we are.
Now that sounds fascinating. Maybe you could share some details on that?
I haven't done any projects like this, but I think the next big thing is going to be random iphone/bluetooth devices. Imagine any kind of small object and add low power internet access over bluetooth to it... whole new world of opportunities... Random stuff, like take this object and make all the data available on your iphone...
But yeah, sounds cool!
You spend time up front to find them. With a few hours of up-front work it's not very difficult.
>Moreover many of his bullets just make no sense whatsoever. How am I supposed to outsource "Fixing Post-Launch Bugs" (on my code-base)? Creating Unit Tests? Database Development?
We've outsourced post-launch bugs to a very talented developer who works for us 2-8 hours per week depending on the bugs we find.
Creating unit tests is one of the easiest development tasks to outsource, and you'll find out pretty quickly whether your object model makes sense when you assign this to someone who didn't build the objects themselves.
>I have personally witnessed more than one startup fail spectactularly because the CEO drank a bit too much of the outsourcing kool-aid.
But that doesn't mean outsourcing is bogus, or that it doesn't work.
>it still takes quite a bit of time to bring a contractor up to speed, even on small tasks.
If you're working on a credit card processing system you are correct due to the complexity. But most apps are not this complex, and you'd be surprised how quickly a solid developer can start fixing bugs on a system they've never seen before if they are talented and the architecture is sound.
Well, but upfront I don't even know the tasks that may crop up in the future. And once I encounter them I can often not be sure whether they're one-off or recurring. I just don't see how this is any quicker (or different, tbh) to just finding people when you need them - and hiring them or contracting to them.
The author apparently wants me to avoid hiring people and contract out everything instead. I have never seen that work on such a fine-grained level. I'd need a PA just to spend the time of finding and managing all those micro-contractors.
But that doesn't mean outsourcing is bogus, or that it doesn't work.
Well, I didn't say it wouldn't. I'm just saying it was quite overhyped for a while ("just outsource everything to India") and this article seems to beat that dead horse again, from a slightly different angle.
We've outsourced post-launch bugs to a very talented developer who works for us 2-8 hours per week depending on the bugs we find.
Sorry, but that sounds absurd to me, unless your app is of the truly trivial kind. Bugfixing normally requires a deep understanding of the codebase and is exactly the kind of work that makes not much sense to outsource.
And how is a "post-launch bug" different from a "pre-launch bug", btw?
If you're working on a credit card processing system you are correct due to the complexity. But most apps are not this complex, and you'd be surprised how quickly a solid developer can start fixing bugs on a system they've never seen before if they are talented and the architecture is sound.
If it's honestly cheaper to have an external contractor learn your codebase and fix your bugs, than to have your in-house staff take care of that, then I think you have much bigger problems in first place.
$ wget -i urls.txt
I understand that this may have been a contrived example, but many of these foreign VA stories sound pretty contrived. Having worked with foreign and remote staff, I know that it is what you're able to make of it. But at the same time, there are some natural hurdles to doing this effectively at a small scale. It'd be easy to spend a lot of time managing the process, doing quality review, and providing feedback.When you can scale delegation, or when you're talking about things outside of your skill set, then there is of course no question.
I find it really difficult to maintain focus when switching contexts from one task to another so for me it's really valuable to be able to fire off a brief email to hand off stuff that doesn't require my direct attention.
The hourly rates are not the problem, but the quality and source of the worker. I am location agnostic, but finding the source to do the work is sometimes a huge part of the time suck that happens when you are looking to to drip outsourcing.
The amount of time spent defining what you want is surely going to be equal to this.
Depending on how you code it's likely to take you more than 90 seconds to: Fire up the editor, switch into mental design mode, create the initial script structure, write the script, figuring out authentication/cookie management issues, picking the right regex (or selector), and then debugging the typo or the 2 unexpected problems that came up (as they will on average).
I think you can see the time and mental differences between that and:
"Here is the URL and credentials, can you log in, visit each page in my gallery and send me a zip with all the pictures?"
In the end you'll be more proud of a script approach, but that doesn't give you what you wanted in the first place-- i.e. avoiding the drain on your time when you have more important things to do.
Anyway, this kind of delegation doubles as practice for managing larger teams and companies. You need to get used to not doing every little thing.
Regarding delegation, it is a good point. Knowing when do do something yourself is always a challenge. In my opinion, these tasks are far too trivial for a 'hacker' to give to someone else.
Personally, I have a directory named "doodles" that is full of 2 or 3 line programs that do this kind of thing.
There are many small tasks that you could do, but they are time-consuming and they are not your forte. Knowing when to delegate a task and when not to is something that comes from experience, and anyone working in a startup should do well to know that they are not alone in the world.
So if you're great at Perl, that's fantastic. Go ahead, hack it in a minute or two. But for that guy who hasn't written Perl in a year, might need a google search or two to remind himself of the syntax, might even need to update his packages... well guess what? Maybe it's time to delegate and focus on other things you are even better at.