4 ms·
Around 12-13 years ago, I was working (as a team of one on a highly technical upgrade, 32-64 bit upgrade, new compilers, OS changes, etc. Basically everything w
by hermitdev 6y ago
Around 12-13 years ago, I was working (as a team of one on a highly technical upgrade, 32-64 bit upgrade, new compilers, OS changes, etc. Basically everything was changing). Naturally, I was falling behind debugging obscure issues largely due to 32->64 bit (this was C++ cross platform between windows and Linux).
My director offered to toss some offshore resources my way to help. Bluntly told him: I think I have 3 months work ahead of me. Give me offshore resources, it'll more likely be a 9-12 months, because by the time ive described the problem in sufficient detail, I could have just done the work. Instead, id have to review a broken "solution" that doesnt work, probably makes things worse.
Offshore is fine when you need grunt work, pounding out CRUD interfaces or already having a detailed spec. But, offshore doesnt work when you're flying by the seat of your pants.
Most of the big ossues I jad durong that release werent even my own. A few I remember: an x86/x64 inline ASM bug, use of an uninitialized variable in a DB lib that led to random failures dealing with NULLs, an overflow in a 3rd party datetime lib and ABI mismatch because of wrong datatypes used in an OSS ODBC wrapper that worked in 32-bit, but failed horribly on 64-bit.
None of the offshore talent I worked with at the time could have identified, let alone fix those issues. Several of those took reading the actual generated assembler to see what is going on. I dont write much x86/64, but I can read enough to know when shits going to hell.
The 2 big agencies I delt with were Salient and Accenture. I could work with Salient, most of their asserts were Indian and spoke English. Our Accenture resources were all Chinese. It was a pain in the ass because none of our engineering resources spoke or read/wrote English. Everything had to go both ways through a translator. Something was always lost in the translation. We ended up eating the contract and backing out with Accenture.
- _bxg1 6y ago> Offshore is fine when you need grunt work, pounding out CRUD interfaces or already having a detailed spec. My partner works at a startup with a very simple CRUD project. They outsourced one of the early sections of that UI. Even in such a simple case, integrating that component has been a huge time-sink and maintaining it is basically out of the question. They're working on a plan to rebuild it, as so often happens with these things. Fire-and-forget software simply doesn't work.
- hhas01 6y agoAny monkey can write code. Writing the right code critically depends on communication.
- thr0w__4w4y 6y agoIt's been 20 years since I worked a corporate job, but a good friend and brilliant colleague / friend told me about his own horror story with Accenture / Chinese consultants. He told me the English skills and attitude of the Indian consultants he used to work with far outweighed the pain of dealing with Accenture consultants, in spite of their tech skills. Language problems and ego / combativeness from the stories he told me. Hearsay, I know... but this guy's work is in products that 90% of the people reading this use, so... yeah.
- hhas01 6y ago“My director offered to toss some offshore resources my way to help.” Brooks’s Law in action. Mythical Man-Month should be required reading for all developers and managers.
- smoofles 6y agoI’ve seen that done just as a gesture of good will, in a "if it helps, we can spend more money"-kind of way, even though everyone involved knows it would just complicate things.