- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Deep Fried? Much more deep freeze. They're lucky, they can reasonably claim that they cannot untangle the mess created by the offshore team.
Admin
With no current Frist, and an old First that hadn’t been committed to in three years, Hanzo and the team were left with no choice but to pick up exactly where they left off three years ago
Admin
The were Lucky, or smart enough not to look too hard. Imagine what mess they would be in, had they been forced to start with the latest "build" of the offshore team.
Admin
Ah yes the old "Why are we paying someone $80,000 a year when we can hire several Indians for that price and get more bodies?" approach. Glad to see it backfired. People rely too much on bodies and not skill, I notice, and I cannot for the life of me imagine what makes management so stupid that they fail to see this time and time and time again.
Although the other WTF here is were they not having status meetings with the offshore team about progress? I mean, at my job we use an offshore team and we make sure (and have to insist several times...) that they remember to check in code to TFS.
Admin
Real WTF today is in Your case - using TFS
Admin
There's nothing worse than “Here be VPs”. I was on a long-term contract one of the top 10 Insurance companies. Their “Here be VP” decided they could save a lot of money by switching all workstations from PC's to Macs (thankfully someone talked him out of trying to do so with the servers as well). Never mind the learning curve, never mind the atrocious GUI and widgets, never mind the crappy Mac/Windows networking framework, the Macs themselves would freeze up 3-8 times daily requiring a reboot, for everybody IT and users as well. A few hi-priority projects were allowed to use hand-me-down (or new if the project was critical enough) PC's from the Operations/DBA teams that stay with PC's to support the servers. When my contract was up they were still saving a few hundred on Macs and losing a few thousand on Lost Time, both IT and End Users. I heard a few years later that they eventually returned to PC's.
Now I'm an employee not a contractor at a Division of a Corporation. Our division has it's own IT everything. Monthly reports go to Corporate for their Financial Reporting. The newest Corporate “Here be VP” buzzword became "Cloud" 2 years ago. They've already trashed our phone system, pursuing their third provider in 2 years. Email is also on it's third provider and is actually pretty stable.
Fortunately I'm retiring soon. The “Here be VPs” are actually considering pushing our local SQL Server machines (that support LOCAL apps, we have no Internet presence) out onto cloud providers. Great, so now our carefully crafted databases, tables, indexes, views, and sp's that respond in milli/micro seconds, can add in a round trip to Minnesota/Wherever. Or who knows maybe the nut jobs will go for India. We're still fighting with them and seem to be winning. But it's a "Corporate" decision. We're just a Division.
Admin
Not my choice, sadly. I would much prefer Git.
Admin
Starting with their own source code that they left off with was probably the best present they could receive after getting stuffed back onto the job.
Admin
It almost always backfires! That much is a given. This one is impressive because someone in management not just noticed it before they were too deep in their shit, they also tried to undo the bad decision made three years earlier. The usual approach I am constantly seeing in the industry is to keep validating a bad decision up until bankruptcy because doing otherwise would mean admitting to having made a mistake. The common PHB thinks of themselves to be infallible; admitting to being wrong defies the basis of their own world view. They would rather bury their heads in the sand instead while blaming something/someone else.
Admin
@Appalled:
I'm in a Fortune 50 company. For reasons I cannot comprehend, our local SQL Server (like yours, supporting local applications only) was relocated earlier this year.
From the major American city where our development processes are housed.
To Poland.
Admin
Poland's actually quite good. Not as good as Romania, which is what we got to augment the WTFery that is India, but pretty good.
Admin
Management tries to do this as standard because for most professions, it works. We have a carpenter's shop in house. We could have a carpenter's shop offshore for 1/2 the price with twice the labor. Lets move our carpenter's shop offshore. "More Bodies" works in a heck of a lot of cases. It just doesn't work with programmers. Core problem: programming isn't like most other industries. Not everyone (maybe even not most) who is trained to do it can do a passable job, and it is possible for people to achieve "negative work". They absolutely accomplished nothing but negative work, since the company was forced to continue to ship vanilla. Heck, the offshore company could have made a huge amount of money by just holding onto the contract, not doing work at all, and continuing to ship vanilla the whole time.
Honestly, TRWTF is that no one from management was tracking commits at all and noticed the lack of them. Transferring work to an offshore team usually means you keep at least one guy on the local team to monitor them in the first few months. The ball got dropped before the game even started.
Admin
I don't have any problem with the professionalism of the folks hosting our server now, but the turnaround time for queries is just a TINY bit longer when I have to bounce them to Warsaw and back rather than to the server room down the hall.
Admin
Wow, that was even worse than I was expecting.
I used to work at a place where development was mostly competent, but Upper Management had one particular blind spot: they'd foisted the Russian Code Monkey Outsourcing Squad upon us. I'll simply refer to them as Inyitrode.
The basic idea was simple, and sounded good on paper: The expensive, competent in-house developers took care of the serious feature work, and the much cheaper Inyitrode did the "grunt work" so that they wouldn't have to pay us much more to do it and we could concentrate on the important stuff.
Unfortunately, there's one little flaw in this plan: it erroneously assumes the existence of insignificant functionality. What invariably ended up happening was that Inyitrode would check in something that was a) seriously buggy, b) horrendously performance-killing, or c) both. Their favorite way of screwing up--which they never learned from, despite repeated feedback on the subject--was an utter inability to grok the difference between a database and local memory. And so their mess would be sent back to us--the expensive ones that Upper Management was trying to avoid involving in this stuff--to fix.
My favorite example of their WTFery was the time when they took a simple grid control, which displayed the results of a database search, and attached an OnDrawCell event handler to one of the columns. Nothing particularly wrong with that... except that the handler fired off a database query.
While the grid was supposed to be in the process of painting.
For each row.
Admin
The TRWTF is building their own offshore team by hiring college graduates and letting them run on their won. They did not offshore/outsource but seem to have just opened an office in a low cost country and got new cheap employees. Outsourcing works only when you have an external service provider with embedded interfaces in to your organization with checkpoints and milestones that are tied to payment schedules. All bigger outsourcing providers agree to that. Ideally at least some of the external service provider team should be part of your team at your office interfacing with IT ensuring you are getting what you are expecting. If you are too greedy and want to eliminate that "cost" as well and directly build/manage a remote team, you are going to end up like this.
Admin
You simply call it a benchmark for the database. Nothing wrong with that ;-) ok, maybe a bit unusual in production ...
Admin
When someone first got the idea of outsourcing code development to India, it was a very reasonable idea and certainly worth a try. Maybe it's worked in some cases, but every case I've seen or heard of has been a failure.
There's a curious thing about human nature. We get the idea that, logically, plan X should work. It looks good on paper, all the numbers add up, no one can see any flaw in the logic, etc. And so we try it. Reasonable so far. And if it doesn't work, we say, oh, but the idea is solid, it HAS to work, we must have just messed up some details. So we try again. Okay, still basically reasonable. If fails again. We go through several more cycles. At that point someone should say, Hey, this looks good on paper, but it just doesn't work in practice. There must be a flaw in our thinking. Even if a hundred of the smartest people in the country can't spot the flaw, the fact that it doesn't work in practice proves that there is one. It's time to either drop the idea as unworkable, or step back and figure out why it's not work.
But people rarely do that. Instead, they say, "Nope, I just KNOW that this is a good idea, despite all your supposed 'evidence' to the contrary. I'm going to keep trying until it works."
I could name any number of failed ideas in business management, politics, economics, etc, that people just won't give up. Despite all the evidence that every time it's been tried it has failed, they just KNOW in their heart of hearts that this idea HAS to work, and so they keep trying it.
Admin
Particularly in the client of a 3-tier setup!
Admin
<quote>The ball got dropped before the game even started.</quote> To be fair, in hockey, the game can't start until the ball/puck is dropped.
Admin
I was thinking roughly the same thing but with basketball. In basketball the referee actually throws the ball up for the jumping start, but it is a violation if one of the players touch the ball before it begins its descent. So the game cannot start until the ball drops.
Of course you're probably american and I'm being silly by "teaching" BB rules to one...
Admin
Until there's an Internet issue like last Friday's DDOS attack on DNS Provider DYN. Then you're entire organization application suite that needs SQL Server comes to a screeching halt.
But we don't NEED DNS, we connect to the Remote Server with IP's? OK then, a DDOS against the company or local backbone in Poland?
It don't matter. If the Internet dies, YOU die. Whereas if it stayed down the hall, no-one would notice a thing.
Admin
"Then disaster struck. A pointy-haired boss..."\
After 40 years doing this, it never fails to amaze me that those two phrases always seem to be in close proximity...
Admin
Sounds like Vista. Have you tried turning it off and on again?
Oh no, it is Vista. We're going to die!
I'm not sure what difference it makes that it was offshored though. Japanese programmers are equally capable of fucking it up as offshore programmers.
No wait, maybe not equally. Our latest WTF from outsourcing to Americans is that dates don't even get formatted right. This isn't date computations (those are hard, even in a country that doesn't have daylight savings time). This is just formatting. The correct way to write a date is yyyy年mm月dd日. TDWTF does it right too; the correct shorthand is yyyy-mm-dd. But you know how Linux does things like mm月 dd yyyy or dd mm月 yyyy? A ton of offshore programmers copy that pile of barf. We have to teach them to fix it.
Then there are companies that think the results of their machine translations don't have to be checked by native Japanese speakers.
Admin
Hey, that's the same combination as my chastity belt!
Oh, you didn't know I had one? You've never seen it because it's private.
Admin
An alternate format that works pretty well is dd-MMM-yyyy. This format makes it easy to distinguish whether 12/10/2016 means 10-Dec-2016 or 12-Oct-2016. Of course, 2016-01-01 is unambiguous, and it is my preference, though I'll try to use whatever the common format is for the context where I'm entering a date.
Admin
That's exactly why Linux systems often display monstrosities like 28 10月 2016.
Admin
Forgot to eat my cookies today.
Admin
I was working with a Japanese company ones. Same crap, only in reverse. I received tons of "documentation" filled with yen signs, some mysterious tables, a couple of comments in broken English and entire pages of untranslated Japanese. The hardware that they sent us kept failing (well, not the hardware itself, but its software interface). When I wrote a utility that systematically checked each call of their interface, they appropriate it (good) and then DEMANDED that I add more checks as they added more calls to the API (amazing).
Admin
Sounds like they use Windows.
If they were doing things formally, it would be 100% untranslated Japanese unless the contract says otherwise. Informally, broken English is used for marketing purposes, for example to indicate "we're not nerds" (the same way people in Western countries write bug-ridden programs to indicate "we're not nerds").
Accompanied by DEMANDING that they double your salary, right? This should be a win-win.
Admin
I don't really understand why people keep saying Vista is not stable.
I've used Vista solely for development for two years before switching to Win7, and in my experience Vista is in fact more stable than Win7.
So I think the blame is to put on driver and applications you use... maybe also on application compatibility if applicable.
Admin
Sounds like test driven development to me
Admin
Of course, 2016-01-01 is unambiguous, and it is my preference
And.... you get to stamp "ISO 8601 Compliant!" all over it.
Admin
Where'd they get these offshore developers from anyway, Nigeria!?
"I go chop your dolla! I gon' take your money, disappea'!"
Admin
"Save money because Macs are easier to use" sounds like the foofaraw Prudential Healthcare went through. ?
Admin
I'd ask what planet you live on because vista was about as stable as a house of cards before a desk fan. Is it the planet where IBM continued to have a presence in the OS market after OS/2?
Admin
@DocMonster --- Then use Git repositories (rather than TFVC repositories) with TFS......
Admin
There is a good chance that there was a kickback involved in the decision-making process about outsourcing that project.
Admin
Not allowed to, has to be TFS itself. Mentioned Git, got a "What's that?" kind of look followed by something about us being a "Microsoft shop".
Admin
The big problem is that management don't realise how much second guessing their IT departments have to do in order to stand a chance of producing something that is vaguely better than it's predecessor.
Offshore it and the ineptitude of VPs is shown in a harsh light
Admin
The real problem is that no one under the pointy haired manager had the brains and resources to go over his head to someone more senior and explain what kind of mess they would be in in three years if they followed his recommendation. That used to be my job and I was generally successful at preventing foot shooting. I continue to do that.
Admin
Ok. One short story. I got wind that IBM was going to put the OS2 OS on all the PCs in the Leasing Dept. in Stamford CT. Fortunately I had someone I could call and explain that that would require at least four of their most highly payed technical staff on the floor to respond quickly enough to issues (they were going to run Windows on top of OS2). The idea went bye-bye very quickly after that.
Admin
Something almost this happened to an old coworker. The 'savings' in payroll were used on literally nothing more than luxuries for the managers and execs.
In their case, however, almost everyone on the old team came back (they'd been surviving on min-wage jobs and had pretty much nowhere to go that wasn't out of state) - but only after the management had been forced to sign a very lopsided employment contract offered by the 'union' that had literally formed the day before. Their lawyers raged against signing it and the pointy-hairs fumed, but they were not only facing embarrassment but they were facing the loss of a contract due to the offshore workers being so stupid they could barely program "HELLO WORLD". And if they didn't deliver they would not only be not paid but sued for failure to deliver. "Sign or die" was the choice, so they signed the contract, blame was assigned at the executive level for the fiasco and early retirement speeches were made.
Admin
"Which he did, in hundreds of pages of explicit detail..." <-- That's a pretty big WTF right there. Did the author really expect them to read hundreds of pages of documentation? Maybe if it's Googlable, they might have found something in it... but outside that, I wouldn't expect cheap labor to be able to pick up on anything.
Admin
That's pretty bad. I had a similar one a few years back. It started with an Indian supervisor. This woman was the worst kind of micromanager. She never divulged any kind of big picture and just sent "minor" change after "minor" change after "minor" change.
So this project started with "draw this recordset on a page." Really easy, even did filtering/sorting client side to save a round trip (WebForms are awful about constant postbacks). She had a fit. Never told me to use WebForms, apparently I was just supposed to know. Because boo hoo neither she nor the Indians she just hired could figure out what I did. Fine, let's butcher my design and performance with it. Wasted alot of time fighting the page cycle to get a fraction of the functionality I already had done but it worked and I turned it in.
Then came the next set. I turned in a second page, mostly copied from the first. She had another fit. Apparently I was supposed to make every single lookup run off the same page. With "tabs" to flip between them. After another postback or ten of course. This went on for another dozen or so reports. Eventually, I had an ASPX file that was about 40 pages long and 2MB of code. Performance was terrible because it either ran all of the queries on every mouseclick/keypress or stuffed the viewstate with cached results and pointers/attributes that were otherwise lost on postback.
And she could not understand why it was so slow. Clearly I did it on purpose, she said. Just like Windows GDI specs from 1987 were my fault too.
I've seen them post that job about half a dozen times in the couple of years since I walked out. Every time, I see her still on payroll and wonder how long it'll take her boss(es) to see that she's the problem.
Admin
Actually, let me clarify that GDI remark. Given a large block of unbreakable text, a form/page will do one of two things. It will either look for a fixed size container in its hierarchy to draw only what will fit (scrollbar optional) or, absent that, stretch the immediate container to fit the text. You may be wondering why this came up. Well, the dummy decided that a column in many of those tables should contain the Java stack traces kicked out by buggy SOAP processes. No, I wasn't allowed to use a link labeled "Stack Trace" that pointed to a more detailed page with more appropriate layout. Nor could I set fixed sizes or use quirks mode where "100%" can mean "100% if the leftover space" instead of "100% of the nearest defined parent size" (which does weird stuff like make a "100px" element 200px wide if it contains two "100%" elements if it doesn't hide one of them or shift vertically). This all refers back to GDI because that's ultimately who decides a text block's dimensions and how/where it breaks. If you can't alter the text and you can't alter its container, you're stuck with the default whether you like it or not.
Admin
Ha, same thing here! I think it might be rather commonplace, usually for PHB reasons, but sometimes because it was already decided and people want to keep consistency across a really large number of teams. Honestly, I don't really care too much what version control I'm using as long as everyone is using it in a consistent fashion...
Admin
Old Fogy (unregistered) wrote:
Nice TryBM (r)
Admin
<quote>I'm not sure what difference it makes that it was offshored though. Japanese programmers are equally capable of fucking it up as offshore programmers.</quote>
The difference isn't the country the programmer comes from. The difference is that you've decided to pay rock-bottom wages for programmers, and when you do that, you're going to get a bunch of bad programmers no matter their nationality. And then as you noted, you get the cultural and language issues as a bonus on top of that (American's write dates in month-day-year format, so its hardly surprising that you're seeing the results you do if you don't inform them that things are done differently in Japan.)
I would bet that there's hundreds or thousands of cases out there where the company decided they didn't want to pay a decent American wage so they decided to pay a decent Indian wage instead and it mostly worked out fine. But that doesn't make for good drama or humor so we don't hear about those stories too often.
The stories we hear about are the ones that don't want to pay a decent American wage so they decide to pay an Indian minimum wage (or well, at least not a competitive wage in any case even by India's economic standard.) And then they're surprised that they're not any better than hiring an American programmer who's willing to work for minimum wage.
The article even somewhat alludes to that -- it says went from long-term American engineers to fresh-from-college Indian engineers. The "Indian" part of that sentence isn't the main problem. The lack of experience is (and that's just general experience never mind domain knowledge.)
Admin
What's wrong with TFS? It's much better than Git IMO. You can use TFS out of the box, while for Git you need to:
Admin
That, and the Here Be VPs who came up with such asinine ideas likely were also a) too old to even think about working elsewhere and/or b) invested everything (not just mentally) into the idea and were counting on it to pay dividends --- even if it was just self-entitlement or to get through that midlife crisis --- so when said idea fails for equally obvious ideas, they can't fathom it failing, as getting them to admit that their big ambitious idea was an utter failure would pretty much be asking them to eat their gun.