Off Shore vs "Self Development"


8

After being a senior developer for quite a few years (more than 15) I would like to start my own business and implement a product that will be used for financial purpose (it will probably take 4-5 months)

Now I have a doubt: if I stop working as contractor to implement my own idea I will lose quite a bit of money.

If I implement my idea after work it will take ages and the quality of the code won’t be as good because after having worked 8 hours I won’t be very productive.

That’s why I was thinking about Offshore Development. Doing that I can focus on design my application and writing functional specs and such I could then lead an offshore team giving them the guidance.

I could keep working as contractor to have funds to invenst in offshore development(the money loss will be less than If I stop working).

What’s your opinion about that?

Software Outsourcing Offshore

asked Mar 6 '12 at 04:18
Blank
Massimiliano Peluso
172 points
  • Try the tag "outsourcing" and you'll find a plethora of answers. – Dnbrv 13 years ago
  • My biggest qusetion about offshoring -- how can you guarantee they won't steal your idea/product and make it their own? – Doug T. 13 years ago
  • If you hire offshore don't give one programmer the entire project, start with a small starter project be specific to your programming requirements, OOP, classes, commented code, zend framework MVC followed etc. You're a programmer explain what you want and don't leave anything out. It's easy working with programmers you just have to find the right one(s). It's cheap and they work while your sleeping so it's very efficient. You can find good programmers for around $5 USD an hour. Just be sure to try out a few programmers ask for sample code, maybe hire a few to do the same test project. – Anagio 13 years ago
  • Have you considered looking for a partner? There are a number of resources on the web to help you find potential co-founders who can help reduce the workload (and bring their own style of innovation to your venture!) without requiring you to pay lots of money upfront or relinquish (an unreasonable amount of) control. I'm on a few sites: Founder2be, StartUpers and WeekendHackers. – Todofixthis 13 years ago

7 Answers


9

You need to pay the bills and feed your family, so your options are that you take ages working on it part-time, in which case if you are entering a competitive market, then you may be too late.

Another option is that you can try to find VC funding for your idea that will allow you to put full time hours in and get it completed and out the door faster. Other ways of getting funding without getting in contact with a VC firm is partnering with somebody who has experience running a business and is willing to fund the venture for partial ownership. If you do this then you may have enough money to work full time on it and contract out much of the work.

Either way, if you are offshoring be extremely careful. It requires a significant amount of discipline and documentation to do correctly, otherwise the offshore team will most likely not deliver what you ask for. If you are going to do this, make sure that you create functional specifications, lead in design, and participate in code reviews to ensure that quality is being maintained in the project. Without this level of discipline you will get burned, and all of this can be a full time job in and of itself.

answered Mar 6 '12 at 04:34
Blank
Maple Shaft
323 points
  • +1; this is the single biggest risk with offshore development. While all development obviously needs real specs, the risk is amplified in offshore scenarios. – Adam Robinson 13 years ago
  • Forget VC funding. It's not right for the stage you are at. – Susan Jones 13 years ago

4

I suggest you read Rob Walling's Start Small, Stay Small, specifically chapter 3. An excerpt (but by all means, read the whole book - it's great):

Hiring someone to build your software is a good middle ground, as it allows you some control over the technical aspects of your product without sucking the coding life from your veins. The biggest hurdle when deciding whether to hire someone to build your software is that you think you can build software better than the next person. You don’t have to admit this to anyone, but every good developer I know thinks his/her code is the best code out there, and that by hiring it out they will receive a poorly-written product. If you’re going to hire out your software construction: You have to get over your desire to write the software yourself. You do. You have to accept the fact that the code is not going to be in exactly your style, and it may not be as good as if you build it yourself.


Walling, Rob; Taber, Mike (2010-08-04). Start Small, Stay Small: A Developer's Guide to Launching a Startup (Kindle Locations 1480-1488). The Numa Group, LLC. Kindle Edition.

He and Mike also cover this topic briefly in Episode 64 of their Startups for the Rest of Us podcast.

answered Mar 6 '12 at 05:26
Blank
Tnorthcutt
144 points
  • The time to make sure that the software is implemented correctly in proper documentation, communication, coordination and review still takes up time even if coding is done by someone else. The coding is the easy part. – Maple Shaft 13 years ago
  • @maple_shaft you're absolutely right! Successfully outsourcing a project requires possibly more time speccing out a project (not to mention communication) than if you built it yourself. However, you do then get the added benefit of having an application that's possibly better documented than it otherwise would be, and you're likely to spend less time overall on development than if you built it yourself. – Tnorthcutt 13 years ago
  • I've never had a project spec take me anywhere near as long as building the project myself. Typical spec, management and code review time take 10-20% of the dev time, maybe 30% if your developer needs a lot of babysitting. If you're spending 200 hours to spec and manage a 200 hour dev project you've really screwed up. – Rob Walling 13 years ago
  • @RobWalling I agree that implementation of software takes significantly more time. My point was that good implementation of software is significantly easier than good design, architecture, and project management. Not every developer can produce quality design, but most developers can implement it if given the appropriate guidance. – Maple Shaft 13 years ago

4

Having managed a small team of offshore developers for the past 4-5 months (and all my experience with other outsourcing companies), I can tell you that you do want to be careful. Most of the outsourcing companies I have worked with have produce sub-par code at best.

Even with the good outsourcing companies, you still need to make that the documentation, requirements, and directions you giving the outsourcing team are extremely clear otherwise you might not get what you expect.

You should also keep in mind that time difference and language barrier also impact on the effectiveness of outsourcing.

answered Mar 6 '12 at 04:45
Blank
Ryanzec
141 points

5

What your talking about is outsourcing your core business. I would strongly recommend against it. By outsourcing you lose the level of control you need over your core business.

answered Mar 6 '12 at 04:30
Blank
Tom Squires
1,047 points
  • That is an outdated way of thinking. This way of thinking is no longer viable. If he wishes to code it all himself, he will not succeed as he has a day job, a family to feed and to spend time with. If he hires someone, he will save so much time and IF he does not like something he does not want, he can just tell the developer to change it! He will not lose control as he will be the one paying his developer – Bhargav Patel 13 years ago
  • @BhargavPatel: Offshoring and coding it yourself are not the only two options. Working with someone more local very likely will give him a greater degree of control and confidence in what's being done. – Adam Robinson 13 years ago
  • @BhargavPatel I agree with this sentiment, and disagree about losing control of core business. If you remain in control of functional and design specifications then you are in still control. The big challenge with offshoring is communication, and it does impact the quality of the software that the offshore team produces. Language, time zone, and cultural differences lead to miscommunication and then software is delivered that doesn't meet user needs. – Maple Shaft 13 years ago
  • @maple_shaft Very much so. As both contractor and (less so) manager, I can confirm that miscommunication is probably the worst part. [Illusion of transparency](http://en.wikipedia.org/wiki/Illusion_of_transparency) is much bigger a problem online, even if you're working with people from the same country as yourself. You need to be very precise, and frequently check if contractor is on the right track. If contractor doesn't like that, it's probably not a good sign. – Anton Strogonoff 13 years ago

3

The best way to do it is work nights and weekends, get a Minimum Viable Product built, and use it to bootstrap or get funding so you can quit your dayjob.

But if you can't or don't want to do that, you can use outsourcing to build your MVP. Just remember the following:

  • You will need to devote a large amount of time to communication, quality assurance, and planning, possibly more than if you just wrote it yourself.
  • The result may not be what you intended, may be poor quality, or could have other undesired problems. You're taking a gamble, especially if you haven't worked with outsourced development teams before.
  • Once you have your MVP, and start getting traction or VC funding, you will probably have to throw away all of the code and start from scratch.

It is possible to do this successfully. But it comes with its own drawbacks and costs.

answered Mar 6 '12 at 05:31
Blank
J. Jeffryes
216 points
  • I agree with J. I have actually done exactly what he said. I hired a developer from Hungary who delivered the product I wanted within 4 hours! You said your full version wuld take four months. You probably know already as a developer that its going to run you in thousands (even if it is offshore). You should only and ONLY (no exceptions) make a minimal viable product. Find out some of the features that are the CORE of your software and just get those made. This will be so cheaper and will save you tonnes of money. I advise you to invest $25 and buy the Lean Startup, you will learn a lot – Bhargav Patel 13 years ago

1

I will start out my answer with a Bush-ism.

You don't know what you don't know.

Every product starts out as an idea.

9 out of 10 ideas, someone has already thought of.

Out of those 9 ideas, 8 have already been implemented. The one that wasn't was deemed
a dud, not feasible, too expensive to implement. It was not one of the low hanging fruit.

7 of those 8 ideas were duds meaning that it cost more to make these ideas a reality than
the profit from selling the actual product. Why?

  1. Because that market niche was already occupied. i.e. Yet another CRM, office suite, database, web server, etc.
  2. Because that market niche is legally defended by patents. i.e. If your idea is very, very similar to some patented specialized application. Heck, there are patent trolls going after legitimate companies where prior art has already been there for ages. Why? To intimidate these companies into paying up and settling on a case that has no legal merit.
  3. Because there was market saturation already there. i.e. You want to sell software that everyone else gives away for free. Why would I pay for a web browser?
  4. Because of consumer indifference. i.e. So you wrote another web server... Who cares?
  5. Because of poor marketing, not having an established reputation. i.e. I've never heard of your company. We make purchasing decisions based on the reputation of our vendors. Our vendors are big companies that have been growing steadily for years. They'll be around to honor their support agreements. "You can't go wrong with (InsertBigVendorHere)". "No one ever got fired for going with (InsertBigVendorHere)."

Basically, what it comes down to is a process of elimination. The market is very good at this. There is a lot of stuff in the market. The market separates the quality from the quantity.

That said, if you truly believe your idea is the million dollar baby, do the following:

You need to architect/design the software first. The operative word here is 'design'. Write the user manual or draw out the screens (if it's a web system). Draw out the user interface flow. In other words, you will go from this screen to that by clicking on this link/button, etc. This in itself takes more time than actual programming. You discover all sorts of wonderful things at this stage. For example, that the tools you would have used to build the software would not meet the design requirements. You'll basically go back to the drawing board more and more as your idea hardens into an actual design. When you are confident you've got 99% of the design bases covered, you get to farm out the easy part --> the implementation. The more design you did, meaning the more time you spent on design, the easier it is to see what needs to be done in concrete terms. In other words, this button is tied to this module that calls on this screen that displays these buttons that map to these modules and so forth, ad infinitum. Break out the implementation into pieces. Give out the pieces to different companies that have no business ties. Never reveal the big picture to any one entity. Set up a modular firewall. If version 1.1 of modules A, B and C were completed by OffshoreRUs, don't give them version 1.2 of modules D, E and F! If they kept an archival copy of A, B and C, they've now got A, B, C, D, E and F. By setting up modular firewalls, you ensure that you've got the big picture and no one else has managed to reconstruct your modules from archival code.

That's my 2 cents!

Good luck to you sir!

answered Mar 6 '12 at 11:28
Blank
Dragos Toader
119 points
  • It's more of a Rumsfeldism than a Bushism – Juan2raid 13 years ago
  • Do you know of any cases where an outsourcing firm or individual developer has "stolen" an idea from someone who was paying them to develop an application? Your plan, while logical, seems like overkill and like it would add a huge layer of unnecessary management complexity. – Tnorthcutt 13 years ago
  • Apparently it's quite rampant. Some offshore developers will underbid a project just so they can get the existing source code. Then, they will make their own version to sell to anyone on the Internet as a competing, lower priced product. There's no IP enforcement overseas. See this http://www.freerepublic.com/focus/f-news/587831/postsDragos Toader 13 years ago

1

Do not outsource the whole single project to a single company If you have a clear idea of your project, and can document it, in specifications, U.M.L., or other documetns, and know hot to delegate it, to other people...

...then you may want to keep your full-time job, and use that small free time (lunch time, weekends, after job) to model (design) your software project, in a way that can be divided or separated in small parts, modules, libraries.

You may want to outsource only parts or sections of you whole project, to different people,
and leave the main final integration to yourself.

Its a common practice, even with subcontrators, in the manufacturing market.

An example:
Have you seen the first "Batman" movie ("Batman Begins"). The characters had to get all the character uniform & vehicles, from different parts of the world, in order to keep it secret. Good Luck with your project.

answered Mar 6 '12 at 08:12
Blank
Umlcat
141 points

Your Answer

  • Bold
  • Italic
  • • Bullets
  • 1. Numbers
  • Quote
Not the answer you're looking for? Ask your own question or browse other questions in these topics:

Software Outsourcing Offshore