Hacker News new | past | comments | ask | show | jobs | submit login
One of the Most Time Consuming Startup Roadblocks (softwarebyrob.com)
39 points by pragmatic on July 14, 2009 | hide | past | favorite | 31 comments



To me this looks like the old outsourcing myth in a new(?) disguise.

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.


I opened an office for a company in India (in protest). Eight people on staff (plus a little servant boy to serve them tea twice a day). One year later we scuttled the whole office and started everything from scratch. Everything they produced was garbage. Can you find talented people in India? YES. But it will cost you so much there is no point.

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.


a little servant boy?


their words, not mine. the caste system is alive and well, now it just has a capitalist tinge to it.


That's incorrect. In India, a small company office will have full time 'peon' http://en.wikipedia.org/wiki/Peon . This person will be responsible for various office chores, the main one being to get 'tea' from nearby teashop. [Imagine having an office boy here who gets a Starbucks coffee for you when asked.] This happens because in India, concept of 'vending machine' is not very popular and labor is cheap. A lot of times, young kid from a poor family seem to take up this job. This has nothing whatsoever to do with caste. I am from a smaller city in India and I haven't seen any caste system discrimination in my 24 years of living there.


> A lot of times, young kid from a poor family seem to take up this job. This has nothing whatsoever to do with caste.

Oh really?

Let me suggest that you're using "caste" in a somewhat different way than we are.


How much does such a boy (or girl?) typically get paid? Do the workers tip him/her or is it fixed wages?


> I've had much more luck and a hell of a lot more fun traipsing around Guangdong and dabbling in manufacturing.

Now that sounds fascinating. Maybe you could share some details on that?


We had been doing some pretty standard manufacturing stuff for the publishing industry so when we went to build out a new office we decided to do it ourselves. Visited factories for furniture, electronics, marble, fixtures... Everything custom made and dropped in a few containers. Definitely cheaper than if we had gotten everything locally, and although it did take some time, the process was a fun cross cultural adventure.

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...

http://www.thinkgeek.com/gadgets/car/aa31/


I heard you have to keep a very close eye on your containers in China though.

But yeah, sounds cool!


>How do you find sufficiently qualified and trustworthy partners who are willing to remain on standby for tiny one-off tasks like these?

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.


You spend time up front to find them. With a few hours of up-front work it's not very difficult.

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.


He thinks this needed a perl script or defining the task by email for an assistant? Seriously?

  $ 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.


"Micro-outsourcing" daily tasks isn't everyone's cup of tea but there are absolutely huge gains to be had if done carefully. Not just for technical and business tasks, but personal ones as well (cleaning, cooking, errands, etc...).

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 value of this depends on whether you can afford to make that trade of money for time.


Can you afford not to?


What happens when the outsource work isn't to your quality standards? You've wasted a lot of time already, and now you have to dispute it and waste some more time.


That's how my friend's service-based startup died before it even got out of the gate. He tried to outsource way too much overseas, not realizing the extremely low quality of work he would get (e.g. copy writing). He had to have a lot of it redone and burned through all of his cash before he got anywhere. (And he had a pretty weak business plan in the first place.)


Depends on what your goal is - if you've got the skills to do everything and/or are happy picking them up as you go along, while building your business - and in no hurry, then go for it...


I like the idea of drip outsourcing but one common problem I have run into, and seen others have trouble with, is finding the right providers.

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.


I agree with what you are saying. You could download images in an hour or design a logo in 2. Unless you are planning on releasing websites by the dozen or have existing relationship with providers, you probably will spend more time, fret and expend more mental energy on whether they will deliver.


Choose 2: Quality, speed, price. I do some freelance work, but not for $3 an hour.


This is great - I just wrote about exactly that topic - choosing 2 (but you can't have all three) on my own blog.


If the time required to write that perl script was longer than writing an email you should look into a different field.


If you think you are correctly estimating how long the script will take to write, and your estimate is "less time than writing an email," you should look into managing programmers in a large, clumsy corporation.


I am quite serious here. You already have the URI's, and you should be able to write this script in under 2 minutes. This reminds me of this: http://news.ycombinator.com/item?id=703585

The amount of time spent defining what you want is surely going to be equal to this.


> It took me exactly 90 seconds to get the request to him

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.


Not if it takes you away from a task that requires your specific attention.

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.


I would argue that writing the email will require just as much thought because you have to define what you want.

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.


The point of the article is this:

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.


i agree with him - i can't code at all so i was forced to go this route to build some projects for my last position. i invested a lot of time in the specs to start with and as the contractor and i got more comfortable with what 'success looked like' it got a lot easier and soon he was suggesting improvements or implementing some features on the fly (you gotta earn that kind of trust). the key for me was to make sure each set of tasks was distinct and i could actually test something that works each week - ended up with 4-5 solid iterations before we finished and the weekly turnaround let me get a lot of good feedback from others.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: