Fog Creek Software
Discussion Board




New Project - offshore help requested

I am consulting at a mid-size Boston company which has just allocated funds to update their central systems.  As the product manager, I have been asked to put together a team to do convert and update.  The CIO has in her head that we should select 3 or 4 of the top developers and off shore the remainder of the development. (20  additional developers).

Earlier someone posted this http://businessweek.com/smallbiz/content/dec2003/sb2003122_8887.htm  and it got me thinking about the choices:
Option 1 - Hire off shore developers.  I have had some experience, and I have not seen it save money overall, just "per developer seat"
Option 2 - Hire locals at cut rates.  At least I am keeping the local economy going.  But the concern is they will fly as soon as a better deal comes along.
Option 3 - Hire far fewer, but much better developers at a US living rate. 

If anyone has other options or an opinion on selling options 2 or 3, speak up.  When I mentioned other options I got hit with the "per seat developer cost" model.  (Somehow it is seen that 20 @ $10 per seat is better than 10 @ $20 per seat)

MSHack
Thursday, December 18, 2003

What do you mean by convert & update?

Will they be writing a new system or will they be converting data?

 
Thursday, December 18, 2003

I'd shoot for top notch developers at cut rates.

  
Thursday, December 18, 2003

If they care about the long term viability of their 'central systems' then 3 is the best way to go.  When it comes to something that you'll be living with in the long term, quality is absolutely important and should be maximized as much as possible.  If you optimize for minimal developer cost without regard to quality, then you may or may not get the quality that you really need.  However, it seems to me that most sensible businesses try to make their success a matter of depending on low-risk, predictable operating models rather than playing dice.

On the other hand, if the 'central systems' don't really matter much, and don't have to be maintained or work with other important systems, then it makes sense to optimize for minimal development cost (there's no reason to spend a fortune on toilet paper while the bathroom is falling apart, after all).

K
Thursday, December 18, 2003

You aren't going to get "top notch" developers to do maintenance programming even if you pay them a lot. 

Anyone stuck in the situation you describe WILL bolt as soon as a better deal comes along. 

Thus, outsourcing is the best option. Whether that means to india or to some consultancy in burlington is up to you.


Thursday, December 18, 2003

Convert and update means moving off an old (15+ year) mainframe platform to a new J2EE/JAVA environment that is being used by the rest of the corporation.

Where it makes sense we continue to use the old code, but the interface is 3270 and the direction is to put a graphical front end on it.

MSHack
Thursday, December 18, 2003

The only way that I know of to be successful offshoring work is to hire a local from India/Pakistan, etc. Have them in on the initial design, and then send them back "home" to hire staff and manage the effort.

The alternative is to spend lots of time over there yourself. And, redo most of the "work" that gets done overthere because it's crap.

I've done both and the former is much less stressful.

pdq
Thursday, December 18, 2003

My experience with working with off-shore developers is that they will do exactly what they are instructed to do, right or wrong. So if you can have several excellent on-shore developers who are very familiar with the existing system overseeing and integrating small chunks of code written oversees, then you may find success. But I doubt it will actually save money, because the code returned from oversees will need to be debugged and brought up to par quality-wise. Often it will take two or three round-trips to get decent code, and round-trips can take two days because of the time zone difference.

The dream of emailing a spec at 5PM Eastern and having working code at 9AM the next morning remains a dream.

dmooney
Thursday, December 18, 2003

I should have finished that last thought.

It remains a dream because if there is even one ambiguity then you will either get buggy code or you will have a reply to your email with questions. So instead of working code at 9AM tomorrow, it is 9AM the day after assuming you answered the questions in an unambiguous way.

dmooney
Thursday, December 18, 2003

I'd say do what the CIO suggests.  Then hopefully it's her ass when the project is a nightmare. :)

Obviously the best solution is to hire as many good American developers as you need, regardless of political considerations.  Barring that, don't get mired in what's essentially a political choice that has nothing to do with the constraints you face.

bad_choices
Thursday, December 18, 2003

Though many here will not agree with me ;) , here is a 4th option.

4) Hire top notch developers, off-shore. Cheaper and meets QA requirements.

Not a Java person myself, but mail me to provide you with leads here.

Indian Developer in India
Thursday, December 18, 2003

In response to the proposed option 4, that will work fine if you keep those offshore workers as employees who are responsible for maintaining the programs that they develop.  If you instead outsource the development of the software and intend to pay later for maintenance, you're going to get shafted.  There'll be no incentive to construct a maintainable product.

K
Thursday, December 18, 2003

Why not? A good job well done includes future maintainability, irrespective of who does the maintennace, doesn't it?

Indian Developer in India
Thursday, December 18, 2003

Dmooney,

Or, in my case. Working two shifts. I work a regular 8 - 5:30 day and then get on my home computer for an hour or two after dinner to deal with questions that are better handled in person than by email. Some nights at crunch time that means 4-6 hours.

pdq
Thursday, December 18, 2003

Indian,

But that won't be put in out of charity; the developers either have to have some kind of incentive to do the job well or the maintenance requirements must be quantifiable.

K
Thursday, December 18, 2003

K,

True, still I feel it would be cheaper. A good small time Project Leader would cost around Rs. 25K to 30K per month. Add in Programmers of decent calibre at Rs. 15K per month. Make that into 4 Programmers and the team would cost close to Rs. 100K per month. Add Admin costs at Rs. 50K per month. Thats Rs. 150K per month which would around USD 3500 per month. Only point is will they do _as_good_a_job *and* transfer all code/documentation/helper modules/etc. for total and complete maintainability by the client. I think they will.

Is that worth it by US standards? No sarcasm, its an honest Q.

Indian Developer in India
Thursday, December 18, 2003

I think that it's worth it if those Indian or Chinese or Russian developers are taken on as employees or if the contracting company has quantifiable quality criteria.  If that's not the case, then the contractor has no incentive to produce quality (and therefore the most successful firms will be the ones that *do not* produce quality when it's not demanded).

Another side of the analysis here is that many kinds of projects have parts that don't necessarily need to be maintained at all if the submitted code works and has the desired performance characteristics (for which it's easy to design acceptance tests).  I'm considering hiring some Russians to implement low-level cross-platform graphics code that can be interfaced with a script interpreter I've written for some video games.

K
Thursday, December 18, 2003

Fair enough.

Indian Developer in India
Thursday, December 18, 2003

You should consider that american developers are salaried (not sure about offshore) and that we work far, FAR more hours than a salary/52wks/40hrs would tell you.  In fact, I've been here since 10am yesterday (4 hours sleep last night).  I left yesterday morning at 5am (3 hours sleep, shower, commute.)  And for the record, I'm in boston and with the 70+/week hours I've worked in the past 2-3 months, I make the equivalent of $14/hr.  Hire american damn it.

XYZ
Thursday, December 18, 2003

MS Hack, you're asking for trouble with this project. J2EE has a high risk of complexity, the fact you're converting has more, and the fact you need for user level presentation has even more.

If you do go the offshoring route, please document everything for your own sake and also so you fil us in how the project went wrong later.

Indian PM in Mumbai
Thursday, December 18, 2003

LOL!

Indian Developer in India
Thursday, December 18, 2003

That was for teh prev. sig.!

Indian Developer in India
Thursday, December 18, 2003

"Option 2 - Hire locals at cut rates.  At least I am keeping the local economy going.  But the concern is they will fly as soon as a better deal comes along."

And the offshore developers won't?

Jim Rankin
Thursday, December 18, 2003

Is software a cost or an investment? If it is
an investment wouldn't you like to work
closely with your people? Wouldn't you want
them on your side?

I think a lot of software costs a lot because management
bungles the project from the start and then complains
about how much it costs. Get fewer good people,
american or whomever, and let them be productive.

son of parnas
Thursday, December 18, 2003

Presumably your company requires an extra twenty workers just for this one project.

It's going to be expensive however you do it.

Your CIO's idea is fine as long as the waterfall method wil work, but if there is any degree of ambiguity involved then there will be problems.

Outsourcing to a contractor in India generally offers initial savings of around 40%, presuming all goes well.

Alternatively you could send your four top developers off to India for the period of the contract, and get them to hire direct. If they can tell really good people they could offer $2000 a month, and get the very best who would be prepared to accept a one year contract at that price. But the hassles of setting everything up should not be underestimated.

Companies that successfully offshore to India are generally those in for the long haul. Offshoring a one off job doesn't appear that great a financial proposition because so many of your expenses are one off expenses caused by setting things up.

With the employers market in programming I would suggest that it would be safer to do all the work in the States. At least you won't run the risk of spending 70% of the cost to keep it in the States and then having to spend another 120% to get it right.

Stephen Jones
Thursday, December 18, 2003

Option 5. Hire 4-8 top notch developers and forget outsourcing. 

I would honestly evaluate the need for 20+ developers.  You probably don't really need that many if 20 of them are going to be doing the programming equivelent of data entry.  Another lesson that should have been learned from the dotcom days; less is more.  Too many coders spoils the code.  You can't just add programmers to a project and expect it to happen faster, if anything it will increase the likelyhood of failure. 

24 programmers pulling in different directions across different time zones?  It's a recipe for disaster.

prophet of doom
Thursday, December 18, 2003

i agree that 20+ developers is going to be a disaster.

however i don't think it is going to be easy to find 4-8 bad ass developers who want to work upgrading a mainframe application to J2EE. 

i'm not sure where all the anti-outsourcing type people work, but every backoffice style job I've had the misfortune of working on, all the programmers SUCKED. and not only did the programmers suck, the sysadmins sucked, the managers sucked, the manager's manager sucked. the office sucked. the coffee sucked. everything sucked.

it is HARD to get hotshot developers to work on backoffice applications because it is BORING. if you were any good at all, why would you want to work on the project described?

I'm not bashing the OP or his company; back office work needs to get done. But it is really hard to get good people to work on this stuff, because it is not glamorous nor interesting. The only way to get good people to do this is to pay them way more than the going rate.  I'm talking like $150 an hour or more. And simply paying a lot isn't going to ensure that you actually get good people. 

Now if you don't want to pay that or you can't pay that. Your options are to hire bad, desperate people, or to outsource overseas. In the past, companies just hired bad, desperate people. And yes, those people were a disaster. Outsourcing is probably going to be  a disaster, but at least it will be a potentially less expensive disaster.

_
Thursday, December 18, 2003

In "Agile Software Development" Alistair Cockburn discusses several 'sweet spots' for a development team.  They are:

2 to 8 people in one room: Information exchange is at a very high rate, and overall team effectiveness is very high.

Onsite usage expert: Having an expert on-hand gives developers the ability to quickly get user feedback, generate a deeper understanding of the user's worldview and needs, and consequently, build a better mousetrap faster.

Short increments: Incremental development provides rapid feedback on both the status of the product and the effectiveness of the team, allowing the team to make rapid small adjustments in building the product and increasing their effectiveness.

Fully automated regression tests: Developers feel free to make improvements to the code, knowing that any bugs they introduce are likely to be detected.  This makes for a more flexible codebase that can change to accommodate new features.  Without a regression suite, developers are likely to avoid making improvements, resulting in fragile code that is difficult to maintain and add features to.

Experienced developers: A good developer is worth as much as 5 to 10 of his colleagues.  If the team consists entirely of experienced developers, the team size can be dramatically reduced.  If the team does not consist entirely of experience developers, the experienced developers should build the most difficult parts of the system and spend time assisting less-experienced colleagues.

The more sweet spots you can hit, the more effective and efficient your team is.

He also discusses the difficulties with a "virtual team", i.e. a team where not everybody is co-located.  Of offshore development, he says, "I have not been able to find methodologically successful offsite development projects.  They fail the third test: The people I have interviewed have vowed not to do it again."

Hope this helps.

-Thomas

Thomas
Thursday, December 18, 2003

Indian Developer,

you wrote:
>True, still I feel it would be cheaper. A good small time >Project Leader would cost around Rs. 25K to 30K per >month. Add in Programmers of decent calibre at Rs. >15K per month.

I think these numbers are low.  I find that the new
numbers are more like Rs 50K-60K per month for
programmers.
Big companies like Comp Associates moving in
and raiding other companies are causing the rates
to go up steeply.  It is possible that the numbers you have given are for not the large software centers such as Bangalore. 

In a Quandary
Thursday, December 18, 2003

MSHack: If you outsource, would it be to an external offshore firm, or to a subsidiary of your company located overseas?

If outsourcing to a firm, they are going to charge you 50-60% of what it costs to hire locally.  There are firms that charge less than that, but 95% of those cheaper firms will give you garbage.

After that 50% or so, you have to add back the cost of the overheads required to coordinate things, write more detailed specifications, communication delays and misinterpretations, etc.  So if you do things right and have some luck, you may end up with a net of 25% savings.  And that is assuming they produce quality equivalent to or better than what your local developers would have given (i.e. there are no extra cleanup costs).

After all numbers are considered, a more realistic comparison is 15 local developers vs. 20 offshore developers.  Is that really worth it?

Of course, if you are concerned more about shuffling numbers to fit within a budget rather than actual net costs, the offshore option becomes more attractive because the indirect costs can be hidden more easily.  Or if you are sending the work to an offshore division of the company you work for, the savings will be larger because of the lack of the middleman.

T. Norman
Thursday, December 18, 2003

I agree that you are going to have some trouble finding top guys to do a cobol to java port. BUT, there are a bunch of top cobol programmers out of work nearing retirement age. So, if you want to do #3 you are going to look for guys between 50 and 65 years of age who have at least 2 years java experience. And they might be out of work and be willing to go for a bit less than they are used to. That's probably your best bet if you can pull it off - I don't know anything about the availability of such programmers. There's probably a lot less of them than there are java guys so for all I know they may be commanding a premium.

Noww on the offshoring thing, if the CIO thinks that she is going to find an offshore firm that can handle a port from cobol code running on a mainframe to java, she is extremely delusional.

It sounds like she simply can't afford to do this port. (How many man-years are you quoting her, BTW - a 24 person project is an absolutely enormous project when it comes to IT. Fewer people than that designed the latest pentium.) She should make do with what she has until business picks up to the point where she can afford to do it properly.

Projects like this involving updating old mainframe data and porting a large quirky cobol codebase with thousands of tweaks over the years have a reputation for turning into ratholes into which you throw money and never get a product. The best option would be to find the original programmers and pay them whatever they ask. That way you'd get a product at least.

I'd be up front with her. Find out if she wants a product, or if she's just trying to CYA while she's looking for a new position as the company sinks. Hiring the lowest cost developers available is a sure sign a company is failing, despite what they present upfront. They know something, I can assure you. Don't accept equity as pay, BTW.

Dennis Atkins
Thursday, December 18, 2003

When Pakistan detonates a nuke in India, I want to see what happens to these outsourcing projects, but that is a whole other Oprah.

Charles
Monday, February 23, 2004

df

dsf
Wednesday, June 09, 2004

*  Recent Topics

*  Fog Creek Home