Fog Creek Software
Discussion Board




Outsourcing development worries

I hope this isn't a rude question to ask on a site run by a software development guru, but here goes:

I'm a half-decent programmer with a pretty good spec for software to help banks in an area that can drastically improve profits.  At this point, I'm operating on a shoestring - and I'm short on time.

I'm thinking about placing the project on a bid site where it would probably wind up being developed in India.  I've got quite a few butterflies in my stomach on this:

- Who are the people on the other end?  If they claim an IIT diploma, are they telling the truth?
- Who are the references?  Is there any Ebay-type fraud in this world?
- Are there legitimate piracy concerns?  Does a country without respect for American drug patents have a culture that discourages bad behavior?
- Is a well-developed spec good enough?  Do you need face time when developing a product from scratch?

Any answers or even other worries are welcome.

bankstrong
Wednesday, April 07, 2004

When I first read the title, I thought you meant that you were going to outsource the worrying itself. Now THAT would be an interesting business: paying some tranquil and serene guru in Kathmandu to worry for you.

I don't have any personal experience with those sites although I've poked around them and heard anecdotes. But let me answer your question as crisply as I possibly can in the absense of detailed information. It Is Not Going To Work.

Seriously.

Programming is a skill and the quality of practitioners ranges from awful to decent to excellent. It's not just a skill, it's a talent, and a lot of people don't have it. And it sounds like your entire business plan is riding on it. I'm not surprised you're worried.

There are a lot of great programmers working at investment banks, especially in New York and London. Many of them could do an excellent job on your application, and many of them would love to get out of the IBank rat-race and start a new company in exchange for a fair equity share. If they've been working in the industry for five to ten years getting IBank salaries and bonuses they might well have enough savings to afford to take a year without salary and work for equity. And they'll bring with them a wealth of contacts and domain knowledge that will make a huge contribution to the success of your business.

Stop thinking of programming as an expense. It's an investment, not an expense.

Joel Spolsky
Fog Creek Software
Monday, April 12, 2004

Bankstrong,

I'm considering something somewhat similar.

My sw company, which makes shrinkwrap software, has been profitable for about 9 years now.

Our original architecture has been stetched as far as possible, and it's time for a rewrite so that we can use the new architecture to develop even more programs.

We're small, so I'm considering outsourcing PIECES of our programming and then if we find someone very skilled, we'll give them more work. 

Here's my plan:

1. Break project into small granularity pieces and post those mini assignments on rentacoder.com or similar sites.
Maybe in 5 hour increments (should be < $50 on Rentacoder.  Basically, I'd be hiring an "assistant".


1a.  Create a test harness for all of these pieces.  Create a GOOD automated test that I give the programmer.If it passes the test, then I feel confident the code works.

2.  Evaluate the code written, do a code review etc.

3. If the code is lousy, but works, then maybe I'm out $50 or the code will need to be refactored later.
If the code is OK, then maybe I don't use that person again. If the code is outstanding, then I'll give that person another assignment.

What do you think of this  "try...catch..." approach?

If you and I both take this approach, keep me posted. Maybe we can share ideas (or tales of woe)

Mr. Analogy
Monday, April 12, 2004

I can certainly believe fine-grained unit testing is what's likely to make this kind of outsourcing viable, but by the time you've written good tests aren't you half way to writing the code yourself?

phil jones
Monday, April 12, 2004

I'm with Phil on this one, especially for $50 chunks of work. It will cost you way more than that in your time to set up the test harness, etc you describe.

I agree with Joel's comments. IT pays well in banks (certainly in the UK) and while never at the level of traders, the senior/good guys will all be on six figures (or more).

For the OP, I think you already know the answer here. If you're worried, then trust your instincts.

There are two main dangers here. Firstly, you'll spend so much time micro-managing these little tiny projects (don't forget the integration/regrassion testing time), that you'll never finish.

Secondly, places like India have no concept of copyright or IP, so if they think it'd be worth ripping off your product they will. Nothing you can do about that.

I seem to remember from working at a few investment banks in the UK that they are very secretive about stuff that gives them an edge. They may be uncomfortable about you outsourcing the work to people you never even met. Okay, so maybe they'd never know, but if they feel like that, perhaps you should too.

This isn't meant to be a "doom and gloom" post, you just need to know what you're getting into. All business is risk, but at least just take this risks where you know what you're going to get, and you'll stand a better chance of success.

Steve Jones (UK)
Monday, April 12, 2004

Doh, "regrassion" is "regression".

Steve Jones (UK)
Monday, April 12, 2004

Joel -

It's bad enough when we start shipping out white-collar jobs, but worries?  Instead of populist preening in Ohio, the Upper West Side would be trampled by politicians protecting Worries For The Next Generation.

The concern about unknown development quality is lower down on my list - if only because I'd face it in any other situation beyond self-inflicted programming.  Hire on a programmer?  Same question.  Hire an American software house?  Same question (unless they have a cult web following and a well-known reputation for excellence).

The IBank programmer is a good idea, but mainly for Lehman/GS/etc. stamp of approval and signal for "great programmer".  This software is about retail banking (you know, North Fork or Commerce).  I would not expect the programmer to bring much domain knowledge (and I should have a pretty good feel for it myself).

bankstrong
Monday, April 12, 2004

Mr. Analogy -

We're definitely thinking along the same lines, but I'd have a tough time working in 5-hour bits.  By the time that each bit was designed, posted, bid, tested, and evaluated, I could have programmed the code (and completed my Great American Novel).

And I don't think that I can use this method to initially search for good quality and then focus on one winner.  It seems that different types of firms/people bid for big and small jobs.

My current Best Idea?  Write the most proprietary code myself (also because I think it's the hardest to nail down 100% in the spec).  Take everything else, from file manipulation to database access and split into two.  Invite selected parties to see one of two specs and bid.

1) I have more security over the code base (no party has enough code to pirate it).
2) The job may go quicker.  I know that code is being developed in tandem, instead of possibly by one person. 
3) My risk is more diversified.  The chance of 100% project failure has gone down significantly.

bankstrong
Monday, April 12, 2004

"but I'd have a tough time working in 5-hour bits.  By the time that each bit was designed, posted, bid, tested, and evaluated, I could have programmed the code "

One advantage of overseas outsourcing is that those folks work while you're asleep.  I've talked to someone at IBM and (and I've read similiar elsewhere) and they have two teams or "shifts" just like a factory.  So, you'd spec out a section during the day and then they'd work on it overnight.  Also, a lot of the feedback on RentACoder states schedule as a big advantage. I've heard the same from people who've outsourced big projects.  The "shifts" factor is very significant.

However, I agree that, in general, each time you break off a little piece of your project and bid it out, there's a "startup" or transaction overhead.

I assume that if you write up a spec and ship it off to someone to work on for 500 hours or so, that you'll try to get good project visibility (per Steve McConnell's proj. mgmt books) with weekly deliverables, so you can monitor progress and see if they've gotten off track?

What are your priorities?
1. Schedule
2. Cost
3. Code quality

(Mine is cost, quality, schedule. I'm rewriting exiting programs, so not a big rush.)

Mr. Analogy
Tuesday, April 13, 2004

"It will cost you way more than that in your time to set up the test harness, etc you describe.
"



I agree that the tests are a significant part of the programming, but I will be writing them anyway. I think the XP methodology of "write the test first" is brilliant idea. Gives you a clear goal, automated regression testing, etc.

We'll see how easy it is in practice. That's why I'll be testing it with little $50 projects. (BTW, from prices I've seen, $50 might actually be 10 hours of work or so from somone in South America or India)

Mr. Analogy
Tuesday, April 13, 2004

Interesting topic. I am an Indian who has worked in the US for some very good projects but returned to India for personal reasons.

As far as piracy concerns go, they are valid on sites like rentacoder where you do not have any knowledge of a developer except maybe trying the $50 thing. On the other hand, I know some very talented people from different parts of the world who do accept work from there.

If you contact software houses in India, they would probably charge more, but probably have better processes in place. Remember, India has the most process certified software companies in the world (SEI CMM mostly).

One major concern that I would have is the culture differences. These mainly come up when drafting tech specs and other communications. The 'American' way is very different from the 'Indian' way of doing things, which is why processes help.

Also I don't know how the rise of the Indian Rupee will affect these transactions. The USD is less than 45 Indian Rupees and the Rupee is expected to go all the way to 42. Makes 50 USD worth less than it was a couple of months ago.

Good luck with your efforts.

Sanjay Pande
Tuesday, April 13, 2004

I usually agree with Joel but t his time he is wrong. He says "It is not going to work". Actually, it has a 0.0005% chance of working out very well and profitably for you! Best of luck to you!

Dennis Atkins
Tuesday, April 13, 2004

As far as CMM and related things go - they are a joke.  There was a recent article in CIO magazine about the rampant fraud, as well as the fact that being certified at a certain CMM level might only apply to a small part of the company.  The certification process is easier to fake than an MCSE...

-e
Tuesday, April 13, 2004

Sanjay -

Thanks for the comments.  As an Indian who's experienced Americans up-close, what kind of advice do you have for me going in?  Particularly, how can I tell diamonds from cubic zirconium?  My knowledge about India is limited, but indicates that I should check my wallet after being in the room with a government official, for example.  Similarly, would you trust people to represent themselves on these sites accurately?

Dennis -

"Actually, it has a 0.0005% chance of working out very well and profitably for you! Best of luck to you! "

Thanks for the good wishes. 

Seriously, what do you think the major obstacles are and do you see any good ways around them?

Mike

bankstrong
Tuesday, April 13, 2004

Your major obstacle is that you are exposing your endeavor to extremely high levels of risk. You need ta manage that risk if you are really going to try this despite the odds.

Dennis Atkins
Wednesday, April 14, 2004

As far as your concerns about someone having a degree from an IIT, that can easily be validated. The undergrad degrees of IIT are considered betetr than MIT these days (grad and above is a different story).

On trusting people, its really difficult, especially on such sites. Therefore the whole test a little approach works better unless you know the developer personally which does happen at times. I have friends in the States, Canada, Korea, West Indies etc.

Considering what you are saying about it being a niche, it is risky to expose something like that to people you do not trust even in your home country. If I were in your boots, I would probably even choose a programming language like Smalltalk or Lisp to reduce the number of competent people who would even consider touching the project besides having a productivity advantage over commodity developers who work on Java, C#, C++, VB etc. This usually works as a great filter.

Most experienced developers understand the concerns of a client, especially people who have worked in other countries. Many of them end up in the software houses in India drawing big salaries and hence costing some more than a rentacoder.

On India, the situation is getting better by the day. The distant narrow view of Americans because of their lack of exposure to other countries can sometime be offensive (especially channels like PBS - They show the bad and the poor without paying any attention to the other side).

Nowadays, with a lot of work being done offshore, why don't you ask for personal references. People who have worked and worked well. Ask around from friends/companies who have outsourced work. I am a very strong believer in word of mouth, especially from people you trust.

Hope that helps!

Take Care

Sanjay

Sanjay Pande
Wednesday, April 14, 2004

> The undergrad degrees of IIT are considered betetr than MIT these days

By who? 60 Minutes?


Thursday, April 15, 2004

I do not know specifically now as I have forgotten where I read that. However having studied in India and worked in the States, for a very good university, I can tell you that most of the education in India, all the way from school to the undergrad level, especially in tech and med schools is better than the US.

Its unbelievalbly hard to even get admission in an IIT. Its much easier to get into MIT or any American school for that matter, because education only costs money there. Here, money cannot buy you a seat into IIT or most other prestigious institutions.

Take Care

Sanjay

Sanjay Pande
Thursday, April 15, 2004

I can offer a view from the other side of the deal: I was
an outsourcing programmer for last five years in Russia.

There are good outsourcing companies, and there are
bad ones. You hardly can distinguish one from another from the first look. Nice sites and cool presentation mean nothing. And even ISO cert do not say much. As everywhere, it's people who determine the end result. So, you may trust only a person who actually had a business with an outsourcing company and the project was successful.

Regarding "bid sites" -- I would be very careful with them. Outsourcing is risky, but those sites are simply unpredictable.

Now I'm in Canada, but I still have a lot of friends in Russian outsourcing companies, so if someone needs my advice on choosing Russian outsourcing company -- you're welcome.

Vladimir Dyuzhev (http://dozen.ru)
Saturday, April 17, 2004

==========
BTW, from prices I've seen, $50 might actually be 10 hours of work or so from somone in South America or India
==========

No, for $5/hr you'll get a crap. Complete crap.

Think close to $10/hr min for a good programmer,
and $15/hr -- for an very good/excellent.

Vladimir Dyuzhev (http://dozen.ru)
Saturday, April 17, 2004

Are you kidding about IIT vs MIT? MIT is at least thirty times better than IIT. Come on now, name some research being done at IIT. Go ahead. Name three important contributions to science that have been made at IIT.

I can name hundreds of thousands of key contributions to the world that have come from MIT research.

MIT is a great place, IIT is for petty wankers
Saturday, April 17, 2004

>most of the education in India, all the way from school to the undergrad level, especially in tech and med schools is better than the US.

India... isn't that the place with the 50% literacy rate? Where AIDS is on the upswing due to the endemic ignorance and apathy of its public? Where everyone is on the take, corrupt, or sets their wife on fire after buying her dowry? Where people are afraid of demon monkeys that eat people's faces? In this the same India that doesn't have electricity in most homes? Where people get their water from a filthy well and shit in the streets?

India is a shithole
Saturday, April 17, 2004

Dear .... -

<<India... isn't that the place with the 50% literacy rate?>>

You've got to be kidding me. 

Sanjay and other humans -

My intent in starting this topic was to look honestly at real worries that I have in outsourcing to India (or Russia, or any other place that I do not intimately know).  Not to provoke racist diatribes or even list real, but unrelated problems in other countries. 

Please accept my apologies.

bankstrong
Saturday, April 17, 2004

"I'm a half-decent programmer with a pretty good spec for software to help banks in an area that can drastically improve profits."

You think you can just throw the spec over the ocean and get back a product in X days or weeks later?  Chances are the spec will be plain wrong in many of the details, and have other undesirable or ambiguous parts that won't surface until some of the code is built.  It will require significant interaction on your part to get things done how you want them. What they build will probably satisfy your spec, but they won't fill in the blanks in the way you want or interpret ambiguities in the same way you would.

T. Norman
Saturday, April 17, 2004

T. Norman -

"Chances are the spec will be plain wrong in many of the details, and have other undesirable or ambiguous parts that won't surface until some of the code is built.  It will require significant interaction on your part to get things done how you want them. What they build will probably satisfy your spec, but they won't fill in the blanks in the way you want or interpret ambiguities in the same way you would. "

I agree - my spec is certainly wrong in parts.  How do I overcome the hurdles that you raise?

Some thoughts:
1) If communicating changes / negotiating prices is too difficult, accept software written to spec and modify myself.

2) Perhaps this means that I have to work with a native-born American.

What do you think?

bankstrong
Saturday, April 17, 2004

A racist diatribe? By stating known facts that disprove absurd allegations made by others? I think not! I happen to like indians I know so how can I be racist? I am merely stating facts about india. It is not some educational utopia as others are claiming. It is about as backwards as it gets. Sure, the cities are getting rich off the backs of the common people who are suffering, and many think that makes the rich city people kings. "Live like a king ind india" doesn't refer to money but to the power over the 'little people'. Well, soon they will revolt and cut the throats of their maters. And then who will to the development. The inequality between classes is worse in india than in any other country in the world. Soon that rooster will come home to roost.

India is a cesspool
Saturday, April 17, 2004

> I agree - my spec is certainly wrong in parts.  How do I overcome the hurdles that you raise?

Just make sure your spec has no flaws. It is as simple as that.

Simpleton
Saturday, April 17, 2004

You don't necessarily have to work with a native-born American.  In order to avoid excessive changes you just need somebody who understands your industry and the type of software you're trying to write, who will also have the initiative to spot flaws and ambiguities in the spec early and offer suggestions to correct them without much extra cost to you.

It just happens that the way offshore vendors work -- typically doing "whatever" software that first-world firms pay them to do, they usually don't have the domain expertise to "fill in the blanks" in the way that you want.  In addition, since their per-hour prices are so low, they have stronger incentives to get more billable hours.  So even if they see flaws, they'll code it to spec, then charge you again to do it how you really want.

At least if the person is working with you inside the same building (whether they are American or not), they can learn the business much quicker, and you can more quickly spot the instances where they're coding to a non-viable spec.

If you're going to send it offshore, make sure you find a firm that specializes in the type of software you're building.

T. Norman
Sunday, April 18, 2004

Re:  Literacy Rates:

Quote:

http://www.sil.org/lingualinks/literacy/prepareforaliteracyprogram/countrieswiththelowestratesofl.htm

Quote:

India ...  48.2
(1993 Stats)

From:

http://unstats.un.org/unsd/demographic/social/illiteracy.htm

Quote:

(illiteracy rates)
(Men/Women (All), Men/Women (age 15-24))
India - 31.6/54.6, 20.3/35.2

* * *

The stuff are all found using "literacy rates country" on Google.

T.J.
Sunday, April 18, 2004

========
I agree - my spec is certainly wrong in parts.  How do I overcome the hurdles that you raise?
========

  Easy:

  Before starting each task a person at the other
  side will ensure that he got your intentions correct. The
  person is analyst, and his time is rated at the same
  $15/hr.

  After the task had done you check what was done and
  ensure it's what you've expected. If something is wrong,
  and it was company's fault, company redoes it in own
  expenses. Otherwise, corrections are billed as well.

  As you can see, communications are crucial. Basically
  you have to "sign" any next task to be put into process.

  When development goes long, you can start to trust
  to analyst to make a decision, because he/she started
  to understand the field and your business/product. That
  will reduce the communication overhead.

=========
accept software written to spec and modify myself.
=========

  ??? What a reason to outsource then? What if
  difference would be so huge that you have to
  rewrite the task from the scratch?

=========
2) Perhaps this means that I have to work with a native-born American.
=========

  Absolutely not. If you can understand what I am writing
  here, you could understand most of Russians and Indians.
  And, native born Americans are usually stay in America. ;)

  Again: email me any questions you have about how
  outsourcing works, and I'll answer them. It's better to
  be informed from the first hands when doing such a
  important step.

Vladimir Dyuzhev (http://dozen.ru)
Monday, April 19, 2004

=========
In addition, since their per-hour prices are so low, they have stronger incentives to get more billable hours.  So even if they see flaws, they'll code it to spec, then charge you again to do it how you really want.
=========

  Bullshit. Those rates are only looked as low.
  From the Russian or Indian local point of view
  the rates are high. Concurrency is high too.

  Thus, no company can allow itself to lose a long-term
  customer by overcharging him. Some silly companies
  probably do it, but the lifespan of those is short:
  customers are not stupid, and do see when the
  company attempts to cheat.
 

Vladimir Dyuzhev (http://dozen.ru)
Monday, April 19, 2004

They keep raising the bar for literacy so it seems as if it is always with us.

A high illiteracy rate can co-exist with an excellent standard of Higher Education. This is the case in India, and many would say that one is the cause of the other. The Indians took over the British tendency to prime the teaching of the elite at the expense of making education universal in more than name, and so you have vast chunks of rural India where people scarcely if ever go to school, and millions of people ;passing through quality higher education.

A symptom of this is that India can export vast numbers of doctors (it is doubtful if the NHS in the Uk could exist without them) and yet have a shortage of nurses - (the Philipines on the other hand provides nurses for the rest of the world).

Stephen Jones
Monday, April 19, 2004

As of 2003, India has a 20.3% literacy rate for young adult males. These are self-reported numbers, the real numbers are expected to be lower.

Literacy rates have always been strongly correlated with long term economic viability.

Some want to say they are an advanced modern country.

The facts seem to indicate otherwise.

Observer
Monday, April 19, 2004

Oops, read those stats backwards. They would appear to have a 80% young male literacy rate.

Never mind.

Observer
Monday, April 19, 2004

" If you can understand what I am writing
  here, you could understand most of Russians and Indians."


Followed immediately by the understandable, but barely literate:

"  And, native born Americans are usually stay in America. ;)"


I'm not knocking non-native speakers, just illustrating that even those who can speak english do so with some rough edges that add friction to an already difficult process of communication.

I'm not knocking outsourcing (I plan to do so myself) I just have serious concerns.  Heck, it's difficult enough communicating an idea to a fluent english speaker.

Mr. Analogy
Tuesday, April 20, 2004

T. Norman -

"If you're going to send it offshore, make sure you find a firm that specializes in the type of software you're building. "

I wish that it were that easy.  The type of software that needs building doesn't exist - I've had to invent a name to describe the class.  The domain knowledge pulls together a few different areas that I would not necessarily expect to find in one firm (banking, stats, finance).  I'd be happy to find someone who is just smart, experienced, and hard-working - and rely on myself to explain the guts as best as possible.

Your point about working with someone in the same building is well-taken - it's much easier to resolve issues face-to-face.  However, I'm limited by money and my day job.  Unless I can find someone willing to work very cheap and live in my basement next to the oil tank, this won't work for this stage of the company. 

Ironically, if the product takes off (first client meeting Tuesday!), I'll have more money, but less need for an in-house programmer (I don't sweat upgrades and maintenance as much as original design). 

Vladimir -

<<What if
  difference would be so huge that you have to
  rewrite the task from the scratch?>>

While I'm sure that the spec has holes (like every other spec ever written), I don't expect that they are major.  If the programmer blindly follows the spec and writes good code, I would expect only minor rewrites.

I'm specifying VB even though it may not be the best tool for the job.  This is because I feel more comfortable in VB and want to review code / monitor progress / back up the coder if there are major schedule problems.

Stephen -

<<The Indians took over the British tendency to prime the teaching of the elite at the expense of making education universal in more than name, and so you have vast chunks of rural India where people scarcely if ever go to school, and millions of people ;passing through quality higher education. >>

It was not too long ago that the press lamented all of these overeducated Indians in a society that couldn't put them to adequate use.  Similarly, Israel seemed burdened by too many pianists and computer scientists rather than plumbers.  Things look much different with the internet and the advent of free trade in both countries.

Mr. Analogy -

<<I'm not knocking non-native speakers, just illustrating that even those who can speak english do so with some rough edges that add friction to an already difficult process of communication.>>

Point well taken.  I've also found problems in the other direction - directions that are precise can be read differently by a non-native speaker.  I think that the issue can only be resolved with patience and double-checking on both ends.

bankstrong
Tuesday, April 20, 2004

=====
I'm not knocking non-native speakers, just illustrating that even those who can speak english do so with some rough edges that add friction to an already difficult process of communication.
======

  Yes, you're right to some extent.

  But a person who directly communicates with a
  customer in an  outsourced company usually have
  better English skills (I was a regular developer,
  do not forget).

  Still, it could be a problem, but, fortunatelly, you can
  estimate fluency from the first contact, and leave
  if it's inappropriate.

Vladimir Dyuzhev (http://dozen.ru)
Thursday, April 22, 2004

I don't agree with Joel on "It Is Not Going To Work."

It Does Work. There is a demand, thus, there is an offer, so there is growing offshoring market.

There ARE lots of US companies (among them are world-known companies) that ARE SUCCESSFULLY outsourcing programming of not-trivial software in Eastern Europe and other counties where programming is cheaper.

So, while searching for a company outside US to develop a program it makes sense to see its portfolio. Search the web for comments, articles, reviews, etc of this company's clients and user's of programs that this company developed. Ask this company for estimations. Talk to managers. Discuss estimations and other development issues. And then decide.

Agree that different kinds of CMM, ISO certification means nothing. There ARE companies out there in Ukraine and Russia (probably, India too) that develop, upgrade, port great world-known software. And a cost of development in such companies sometimes is higher than average on the offshoring market, but still lower (sometimes a bit lower) than in US, Canada, UK...

I am sure that outsourcing of programming works for lots of different cases.

DenRad
Tuesday, May 04, 2004

Ur worries are reasonable but not necessary. As a company providing outsourcing business in China, we expect that our clients will trust our tech. force and give us a chance to show you our talents.

As for your worries, I think u may have a broader idea on outsourcing. quickly take a glance at all the bidders and find out potencial ones. a brief study of these companies r also essential while successful cases r always most persuasive.  After provided with their proposal, u may have a general idea of how they will work. The outcome will talk.

Hope these shabby views may of bit help.

sincerely
FABLE ( fshen@shanghai-digital.com)

Fable Shen
Wednesday, May 12, 2004

*  Recent Topics

*  Fog Creek Home