• Arschloch (unregistered) in reply to anne
    anne:
    My officemate is Indian and swears wonderfully. I think there's something about not speaking a particular language as your first language that lets you really cut to the meat of what swearing is all about in that language.

    I mean, those of us who have been swearing in English all our lives don't really think about it, do we? We just sort of let loose a stream of expletives. Maybe if you are new to a language, and not constrained by pre-defined word orders and vocabulary, you are freer to create new and interesting turns of phrase.

    And nothing gives you more cause to swear than maintaining ridiculous code.

    Yeah, I was a military brat and I know first hand that when learning a new language, the first thing you learn is the curse words. They are more interesting, and memorable, no matter what language you speak.

    captcha = howdy (Dur, how'd they know I am in Texas?)

  • Dustin (unregistered) in reply to Jonh Robo

    It is merely to indicate that English isn't his first language.

    And when you are told to maintain bad code, no matter how many languages you speak, they will all fail you.

  • (cs) in reply to rgz
    rgz:
    The joke is in the comically broken yet surprisingly insightful English.

    The whole dynamics around the incident, the part about Hung being Korean, like the little tech story help explain the situation, allows us to feel emphaty and fulfills the site's theme requirements. But the joke is about the broken English.

    Why is it, that a man can trip and roll down a hill and it gets posted in America's funniest videos? Because he is a male white American man. You can joke all you want about white male American guys, but don't you dare to change any of these variables or it becomes a felony.

    Nahh, I'm sorry I just don't buy it. Look we side with Hung here, we are not laughing at him, we are not laughing at his frustration, we are not even laughing at he not having full command of English. We are laughing at how his complaints are so wrong and so right at the same time, that's the punchline here.

    Nahh... when I first read it, my brain instantly took your standard, thick Asian accent (and after having many Asian math and CS professors in college, I've got a pretty good grasp of it), and mapping it to the text. It was funny and made me laugh out loud.

    And yes, I sympathized with poor Huang, felt sorry for him, laughed with him - but make no mistake, I did, in fact, laugh at him, too.

  • WTF (unregistered)

    Making fun of accents != racism... just ask a Southerner or a Texan. Accents are far more varied than races. Sure, some accents are undeniably linked to race, but it's only one minor component. Finding minor (and unimportant) differences amusing is perfectly natural and harmless behavior... not even remotely akin to actual discrimination...

  • rgz (unregistered) in reply to WTF
    WTF:
    Making fun of accents != racism... just ask a Southerner or a Texan. Accents are far more varied than races. Sure, some accents are undeniably linked to race, but it's only one minor component. Finding minor (and unimportant) differences amusing is perfectly natural and harmless behavior... not even remotely akin to actual discrimination...

    If I had mod points I'll mod you insightful.

    I'm, sorry, CAPTCHA: (I did say sorry!) xevious. fuck xevious damn no is stupid word in the English!

  • Damo (unregistered) in reply to Jonh Robo

    "Whites rarely realize when they are being racist." - That's a very racist thing to say, even if you didn't realise it.

  • Pwoidah (not Peter) (unregistered) in reply to disappointed

    Definition of funny: "2. Strangely or suspiciously odd; curious."

    Hmmm. How racist are you if a particular accent seems odd (ie, out of the norm) to you? God forbid, you may be the next Hitler.

  • (cs) in reply to WTF
    WTF:
    Making fun of accents != racism... just ask a Southerner or a Texan.

    Speaking as a half-Korean (1) from Texas (2), this is absolutely on the mark. Complaining about this sort of thing is crying wolf, causing the criticism of actual discrimination to be taken less seriously.

    (1) Not that I know much about the language or culture, so I'm sure some humorless git would reply "but you don't count!".

    (2) Up until 1995.

  • ChrisW75 (unregistered)

    OK, here's a question for you all : Why do we never push back hard enough? We've all been in situations where we're asked to do a job which we know is a complete waste of time and resources, and which will most likely make the overall situation worse than it currently is. And yet, at the end of the day, we sit down and do it. We'll generally put in an argument to try to explain to the PTBs that this isn't the right way forwards, but upon hitting that brick wall of manager ignorance/stubborness, we sit down and do the work. Why is it that we don't have a structure in IT organisations to be able to say "You don't know sh!t about this, I'm taking over"? God dammit, WE are the ones who know what we're talking about, so why do we so rarely get listened to?

  • (cs) in reply to antichris
    antichris:
    You see this sort of thing a lot, though.

    Something about dev management never understanding the concept of "sunk cost"

    You already paid for it. It's broken crap. Forcing your team to use it doesn't make it money well spent.

    QFT I was about to say the same thing, but you've said it quite well. Actually that this was one of the first things I learned about economics at uni (that was one of the engineering management units that are required as part of my software engineering degree). captcha = sign on :P

  • (cs)

    GUYS, IF YOU HEAR ME!

    1. PUT ALL THAT NEW CODE INTO LANDFILL
    2. Write in C: exec("oldDlphiSystem.exe");
    3. Say that yo're done
    4. Go surfing

    Do it now.

  • (cs) in reply to batyi
    batyi:
    GUYS, IF YOU HEAR ME!
    1. PUT ALL THAT NEW CODE INTO LANDFILL
    2. Write in C: exec("oldDlphiSystem.exe");
    3. Say that yo're done
    4. Go surfing

    Do it now.

    Can't put it in the landfill, it's hazardous waste.

  • PS (unregistered) in reply to disappointed
    disappointed:
    Strider:
    We're laughing at a guys accent... This is always funny
    and always offensive. I thought this site was about programming, not poking fun at foreigners. I could watch Breakfast at Tiffany's for that.

    Just to clarify. Poking fun at people that have a bad command of a programming language is okay. Poking fun at people that have a bad command of the English language is not. I believe this is called "selective prejudice".

  • nobody (unregistered)

    It's always sad to know a man who's not well Hung.

  • Bert (unregistered)

    As someone who has been in a similar situation from the management prospective, I think many developers miss the business side of the equation. It isn’t always about “saving face” or “being blind.” Sometimes ripping on management is justified, but sometimes people just don’t see the “whole business” beyond their interests.

    In this case, you’re right. Starting from scratch probably would have been the best option. No useable code, unknown libraries, and poor documentation make it a recipe for disaster. However, from a manager’s position the story may have been different. We just don’t know from what the article tells us. Though, as someone in IT Management, a lot of times we’re called idiots or fools for making unpopular decisions that may have to conform to poor (or good) enterprise wide requirements. Sometimes decisions are made that suck for IT, but benefit other departments (again, unlikely in this case). Without additional information, it’s hard to say what this business was responding to.

    How could this mistake have been made? I’m going to make some leaps here to fill in some blanks, but this is a possible way things could have gone sour for the development team. Admittedly, these are some pretty big leaps, but I’m just trying to give an example.

    You (as IT management) have hired an “expert” which informs you that you need to update your software and the best choice is to rewrite an application in a “modern” language. You accept his premise (for whatever reason or reasons) and begin a project hiring him to create a new software package. He’s sold you on a bill of goods that translating the existing application just isn’t a good idea. Recycling code, porting the application, or (insert alternative) just isn’t a good idea.

    Yes, the program works but as an IT Manager you’re reliant on the expert to telling you whether it’s a good idea to expand on it, port it, and recycle the code in some way. Perhaps the functions and libraries are a kludge. The trick is discerning whether or not you’re being told the right story. I’m not going to get into discussing consulting groups but they have their place. If you’ve accepted their story, you’re going to move forward with the rewrite rather than a modification.

    As the program rewrite progresses let’s assume that Edward has missed all of his deadlines. IT management is trying to do the “right thing” by allowing Edward to get it right instead of pushing the deadline. However, coming up on two years, now we’re starting to get nervous. Edward’s program isn’t working, missed deadlines are stacking up, and we’ve still got nothing to show for our investment. Edward sees the writing on the wall and BAM, he leaves.

    So – now IT management has to make a decision. A new group of “experts” has come in telling them that surprise all their new code is unusable and that it would be easier to start from scratch. They get the same song and dance from the new group of experts as the last.

    See where I’m going with this? You’ve got a significant investment in this new application that you MUST be prepared to throw away. You have to trust that your new experts will not pull another Edward and you’re going to have to explain to the VP why you abandoned his code and started over. Again, perhaps in this case it was fully justified. However, you’d be surprised how many developers just don’t want to work on someone else’s code. Sometimes you have to do a little arm twisting and when they get into really doing it, it isn’t so bad and you’ll recoup your investment.

    It’s smart to establish realistic benchmarks and have decent oversight. It’s easy to place the blame on bad management and rotten Edward, but in all fairness, when you’re in those situations the scenario can be quite different. It’s not always easy to know when it’s time to dump your investment and start over. The trick is figuring out when to do it and having the courage to do it. It’s not always about being a moron, saving face, or being hard headed. Sometimes it’s just a tough business decision that the development staff isn’t going to like.

  • my god ignorance is everywhere (unregistered)

    ...

    The name Hung is not even remotely close to a Korean name.

    If you had to change the names to hide the identities, why don't you change the name Tim to ChingChangChong?

    Don't get me wrong, the name does sound "Asian" as you might have wanted to, but it is definitely not Korean.

    As a matter of fact, are you even sure that this "Hung" screamed his frustration in Korean? You sure it's not Chinese, Japanese, or even German? Would you even have the ability to distinguish between German and Korean? Obviously not.

    Ignorance...

  • (cs) in reply to my god ignorance is everywhere
    my god ignorance is everywhere:
    As a matter of fact, are you even sure that this "Hung" screamed his frustration in Korean? You sure it's not Chinese, Japanese, or even German? Would you even have the ability to distinguish between German and Korean? Obviously not.

    Actually, he was screaming his frustration in (broken) English. We're trusting that he was Korean because (I'm assuming) the submitter said so, and since the submitter was the one who actually KNEW "Hung", he might know where he came from. It's one of those pieces of information you tend to pick up when working with somebody who came from another country.

    The fact that the name he chose wasn't a Korean name...yeah, it's a bit of an oversight. Jake could probably have found a better name to use. That doesn't, however, mean that he can "obviously" not figure out the difference between Korean and German. It's not like he re-named the guy Wilhelm or some such.

  • disappointed (unregistered) in reply to WTF

    I never said the article was racist. That is, I don't believe the article tries to imply that Hung is inferior in character or ability because of his race. I did say it was offensive. I believe it promotes ethnic stereotyping. You may not be offended, even if you are Korean. That is your right--just as it is mine to object.

  • Not you (unregistered)

    Ok picky delicate sensible people.. Hung isn't a Korean name right? What if Hung was korean but his mom dad wanted to name him a chinese name? See were I'm going? No? well nevermind then.

  • Jonh Robo (unregistered) in reply to disappointed
    disappointed:
    I never said the article was racist. That is, I don't believe the article tries to imply that Hung is inferior in character or ability because of his race. I did say it was offensive. I believe it promotes ethnic stereotyping. You may not be offended, even if you are Korean. That is your right--just as it is mine to object.

    I agree 100%...

  • (cs)

    If Korean wasn't the guy's real nationality, why pick it? My guess is that Koreans are a "funny" stereotype in the US, like people from the Indian subcontinent are here in Britain. This kind of anecdote is much funnier told by a "Korean" at their own expense. Why not say he was a Jew who swears in broken Yiddish ? Yeah,right... (Bigotry test: If you substitute Jew for the race in question, does it sound anti-semitic?)

  • Nick (unregistered) in reply to method1

    Interesting; I don't find people from India funny as a race.

    I also don't find a Jew swearing in broken Yiddish offensive. Although to be true to the original story, s/he'd have to be swearing in broken English... still not offensive, by any means.

  • Watson (unregistered) in reply to method1

    For all we know, in the original Hung was Isaac and, while fluent in Yiddish, was swearing and ranting in broken English; but that went the way of anonymisation.

    But still, no matter what the guy's home language was, and however fractured the guy's English was, we still understood his problem exactly.

    But anyway, since someone has already cited Hitler, I want to invoke Godwin's Law (even though it won't work).

  • (cs)

    Poor Hung ... I feel really sorry for him. But as an employee one should not get emotionally attached to work stuff. Emotional attachments are for one's personal life, not work.

    Poor Tim ... I know how he feels.

    Two solutions to the problem:

    1.) Translate the pascal with P2C (that was available back then). Use the UI library and the printer library directly from the translated C code. Ditch Edward's code alltogether and lie to management about not using Edward's code.

    2.) Wait until the list of errors discovered in Edward's code is truly monumental, then list them all together with the amount of time required to fix them and issue a detailed report (with a summary - we all know our PHBs) to management and request a management decision whether the continuation of the huuuuuuuuuuuuuge effort to fix the issues should be continued (again in writing) to cover your ass.

    Remark: Yes, I work in a large (government) organization and therefore am maybe morally jilted.

  • (cs) in reply to KattMan
    KattMan:
    diaphanein:
    While I feel Hung's pain (myself currently being in a similar situation), I have to wonder companies don't go after jacknuts like Edward. I mean, doesn't Edward's actions construe fraud?

    Fraud? Maybe no. If there were not specific terms determining what was truly expected then there is no fraud involved. Did he perform work? Yes. Did he leave all the source at the client as per "work for hire" rules? Yes. Did he fulfill the stated requirements? Maybe.

    It's like asking for your house to be painted red and not specifying you want fire engine red and the painter chooses brick red. it is still red, he still performed work, and he did it within the specifications given. Your specifications were not detailed enough to satisfy your requirements but that is not the painters problem.

    Saying he should be sued for fraud should actually make you worried. What if this new company determines that, due to the difficulties they can not complete the project within time due to situations that they do not control. Should they be sued? In this case, perhaps not. If Hung can't get the work out to them and they miss a deadline, it is not their fault. Problem is, this one is easier to prove in court and they can get sued and the client wins. Who really pays here? Remember our civil courts are run by people that do not know this business and we techs don't know enough about the law to help our lawers in our own defense.

    Hmmm ... let me tell you how the legal situation is here in Germany on issues like this: if there are no clear specifications then the customer has the better legal leverage and the supplier has to jump through hoops until the customer is happy and signs off. Therefore scoping the work/system to be done/implemented as exact as humanly possible is very, very much in the interest of the supplier. If this is not so and it comes to a lawsuit then the supplier will be holding the short end of the stick at court - case closed.

    The interpretation you suggest has been rejected in german courts when these issues first came up on the grounds that customers (at that time) were usually not IT-"literate" and are therefore at the mercy of the IT-suppliers otherwise.

    Now I do not know how it is in the US or Canada - anything, anybody ?

  • (cs) in reply to Alyosha`
    Alyosha`:
    As his level of frustration grew, his command of the English language faded.

    I find Hung's command of the English language nothing short of masterful.

    It doesn't take any effort to learn English plurals, verb tenses, and the difference between "no" and "not". But I have rarely encountered a foreigner so adept at swearing in English. Expletives are such a vital part of our language that sadly they just don't teach in overseas schools.

    That's what Rap and HipHop lyrics are for ....

  • (cs) in reply to Jonh Robo
    Jonh Robo:
    If the joke was at his frustration versus his ancestry then why was it SO important to point out that he was Korean?

    Why not just call him a GOOK?

    Maybe because that is racist and derogatory ...

  • (cs) in reply to antichris
    antichris:
    You see this sort of thing a lot, though.

    Something about dev management never understanding the concept of "sunk cost"

    You already paid for it. It's broken crap. Forcing your team to use it doesn't make it money well spent.

    Yeah, management never gets it about not reinforcing failure ...

  • (cs) in reply to Sarni
    Sarni:
    Three month ago I became an Incidental Expert. It was a job no one wanted to do. The previous person was a PhD. Oh yes, she piled higher and deeper. Math was her thing. She expressed everything in math. Probably wouldn't have found the way to the toilette without solving a complex topology formula.

    And here I am. An engineer with the usual math training of engineers in a pile of real serious math. Given the choice between this job and being made redundant I took the job.

    Management knows she was worth nothing. But she was an expensive PhD, and they don't want to lose face by just dropping her line of work. But they didn't want to pay for another PhD, or provide some training about what this is all about. Serious, I don't know. I see formulas and calculations without having the slightest idea what this should be good for or where and how they are supposed to be used.

    And once a week I look at a part of her stuff, decide I don't understand it and throw it away. Then I replace it with something simpler. Usually a comment telling people "you ain't gonna need this" and a dummy implementation of the function, delivering some default result. That takes a few hours and the rest of the week I do web surfing.

    I have a bet with myself that I can keep this up for at least a year until someone will complain. And when someone will complain I'll first ask for an explanation of what all this stuff is supposed to be about. Then I'll act extremely surprised and argue that I had been told something completely different.

    I just hope for you that your resume is up-to-date. Look for other jobs internally or externally. Learn another programming language/paradigm. Just don't waste your time.

    Ask for everything you need in writing and keep a paper trail "in order to pass the buck" so they can not get at you for non-performance.

  • (cs) in reply to Eam
    Eam:
    A lot of racist honkies around here...

    What's a "honkie" ? Never heard that one before.

    Addendum (2007-04-15 02:18): Oh, never mind - got it from urbandictionary.com:

    Word HONKIE or HONKEY originated in Chicago in the 1940s when repeatedly White men would drive to predominately black areas honking their vehicle horns looking for prostitutes. The annoyance caused the black community to refer to them as Honkies. Still today this term is still widely used to describe White people.

  • (cs) in reply to dkf
    dkf:
    brazzy:
    Throw it away and rewrite from scratch without telling the managers. Since Edward's code has no functionality, nobody will ever be able to notice.
    If the managers insist on the code being used, arrange for it to be linked in in such a way as to be required but not actually affect anything that matters (e.g. find a variable in the library that holds a NULL...) Like that, it's linked in and you can demonstrate that it is "needed" and "used" without causing any heartache. You can always use some extra BS about "leveraging key learnings", "taking the lessons and techniques to heart" and stuff like that to make it seem more acceptable.

    If, later on, it causes problems with porting, just ditch Edward's lib and claim that it is a real step forward. You won't be lying... :-)

    Yeah, make Edward's live in a separate lib and just do not use it in your code at all. Link into the executable and then ditch it in the first maintenance release. Case closed.

  • (cs) in reply to Will
    Will:
    You know, if Hung quit and got a job as a waiter, one might well go into a restaurant one day and find that one's server was hung.

    That's great ... I nearly pissed myself.

  • (cs) in reply to Bert
    Bert:
    As someone who has been in a similar situation from the management prospective, I think many developers miss the business side of the equation.

    < Snip >

    How could this mistake have been made?

    < Snip >

    As the program rewrite progresses let’s assume that Edward has missed all of his deadlines. IT management is trying to do the “right thing” by allowing Edward to get it right instead of pushing the deadline. However, coming up on two years, now we’re starting to get nervous. Edward’s program isn’t working, missed deadlines are stacking up, and we’ve still got nothing to show for our investment. Edward sees the writing on the wall and BAM, he leaves.

    < Snip >

    First of all, thank you: I found your submission very insightful.

    Now for my nit-picking:

    A.) Why was Edward not bound in a cast-iron contract ?

    B.) Edward was working two years without results missing his deadlines. What do you think how many deadlines must he have missed ? Four, five, six or even more ? Unless Edward was working in org limbo or had a PHB to report to that should have escalated further sooner quicker.

    C.) The company had Hung available as a technical AND subject matter expert to conduct code reviews after the first few missed deadlines (unless getting rid of Hung was the initial objective of bringing Edward in). Oh, sorry, I forgot the first rule of consultants: management thinks consultants are always right since you pay them more than salaried employees (I recall one Dilbert strip where it is indicated that the word "consultant" is a merger of the phrases "con man" and "insult"). And you can not let the code of a consultant having been reviewed by an employee since that includes the risk of the consultant's management sponsor losing face.

    It does matter what your intentions were: if a manager behaves like a PHB, he is a PHB.

  • Rob (unregistered) in reply to Bert
    Bert:
    See where I’m going with this? You’ve got a significant investment in this new application that you MUST be prepared to throw away. You have to trust that your new experts will not pull another Edward and you’re going to have to explain to the VP why you abandoned his code and started over. Again, perhaps in this case it was fully justified. However, you’d be surprised how many developers just don’t want to work on someone else’s code. Sometimes you have to do a little arm twisting and when they get into really doing it, it isn’t so bad and you’ll recoup your investment.

    I think the "sunken cost" fallacy might be at work here. It's perfectly understandable to me that people in management would have a hard time believing that 2 years worth of "work" are of no value. To a manager, that must sound like the equivalent of bulldozing a factory and building a new one; I would really really want to see if something in that factory could be salvaged. Unfortunately, software development doesn't look like that.

    The thing is, outside of IT, management would want to keep an eye on how things are progressing. SOMEBODY would take a trip out to the factory being built to see that, yeah, something's there, people are hard at work. This is a strong argument for small iterations of development, where everybody can see that something's taking shape. It's also why every project I've ever worked on has an independent testing team to ensure functionality is actually being implemented.

  • Nelson (unregistered) in reply to anne
    anne:
    Maybe if you are new to a language, and not constrained by pre-defined word orders and vocabulary, you are freer to create new and interesting turns of phrase.

    Thanks, you've made me spill my drink on my screen, through my nose.

    I believe you have a point, though. But the way you put it... lol :D

  • Martin (unregistered) in reply to my god ignorance is everywhere
    The name Hung is not even remotely close to a Korean name

    Straight from Wikipedia: Hyung-Tae Kim (김형태) (born February, 1978, Seoul) is a Korean artist...

    Are you sure "Hung" and "Hyung" are not even remotely close to each other? They look similar to me...

Leave a comment on “The Incidental Expert”

Log In or post as a guest

Replying to comment #:

« Return to Article