First off I would like to say that you are pitching to the wrong crowds. If I'm not mistaken, HN readers are mostly hands on coders. Meaning we are the programmer that you are talking about outsourcing. Part of the allure of this adventure in Y Combinator style entrepreneurship is the hands-on nature of building our own product. To build our baby, release it to the world and hopefully see it being loved by everyone. If I were to outsource the most interesting part of this adventure, the programming, why am I going this route then. I might as well get some money, contact some vendors in China and sell merchandise. Might not be a tech startup, but a startup nonetheless.
While your ideas are sound, the execution is going to be very different. Just look at the countless companies who outsourced their IT development and support to other countries and how many faced millions of dollars or losses and missing datelines by months if not years. Boeing is the most recent story that comes to mind. If you think Skype and Basecamp is all you need to managed a programmer, i think it's a little bit naive. From my personal experience, agile style code review and plenty of micro milestones are the most important and they are only the beginning.
Also in my humble opinion, unless you have no clue as to how to build your product, you should almost never ask your programmer to come up with the architecture. Most of the time your programmer is not looking at your vision from the same perspective as you are, thus this is where a deviation from the original design occurs. Good or bad deviation is up to the situation, but more importantly what's the long term impact of this deviation and is the new solution or path maintainable?
Every programmer code in their own style. What this essentially means, the next programmer who takes on maintaining your product will have little to no clue how or what the previous programmer did. Thus programmer usually hijack a process mid stream, do what needs to be done and feed the data back to the process. Imagine this process occurs over and over again and 5 yrs down the road, your code just became 5 times more bloated than it needs to be and it will soon be unmaintainable. Then a complete rewrite is needed which usually mean lots more money.
As you can see I've only highlighted a couple of issues, these points are just the tip of the iceberg. If you think programmer can be just another commodity product that you can buy and sell as needed in units, you are sorely mistaken. A good programmer is equal part art and skill. We are not the union workers stamping out car parts, we are the specialize welders and builders that you go to when you want to build a GT racer.
I would like to conclude by saying that I mean no disrespect to your idea and article, but I think there might be quite a few things that have not been considered or covered by your article. Also your idea is very similar to Tim Ferris's 4Hr Work Week.
While your ideas are sound, the execution is going to be very different. Just look at the countless companies who outsourced their IT development and support to other countries and how many faced millions of dollars or losses and missing datelines by months if not years. Boeing is the most recent story that comes to mind. If you think Skype and Basecamp is all you need to managed a programmer, i think it's a little bit naive. From my personal experience, agile style code review and plenty of micro milestones are the most important and they are only the beginning.
Also in my humble opinion, unless you have no clue as to how to build your product, you should almost never ask your programmer to come up with the architecture. Most of the time your programmer is not looking at your vision from the same perspective as you are, thus this is where a deviation from the original design occurs. Good or bad deviation is up to the situation, but more importantly what's the long term impact of this deviation and is the new solution or path maintainable?
Every programmer code in their own style. What this essentially means, the next programmer who takes on maintaining your product will have little to no clue how or what the previous programmer did. Thus programmer usually hijack a process mid stream, do what needs to be done and feed the data back to the process. Imagine this process occurs over and over again and 5 yrs down the road, your code just became 5 times more bloated than it needs to be and it will soon be unmaintainable. Then a complete rewrite is needed which usually mean lots more money.
As you can see I've only highlighted a couple of issues, these points are just the tip of the iceberg. If you think programmer can be just another commodity product that you can buy and sell as needed in units, you are sorely mistaken. A good programmer is equal part art and skill. We are not the union workers stamping out car parts, we are the specialize welders and builders that you go to when you want to build a GT racer.
I would like to conclude by saying that I mean no disrespect to your idea and article, but I think there might be quite a few things that have not been considered or covered by your article. Also your idea is very similar to Tim Ferris's 4Hr Work Week.