|
|
|
| Hurry! Enter The Daily WTF's OMGWTF2 Contest by June 28th! - Prizes! Fame! Trophies! Do your worst: http://omg2.thedailywtf.com/ |
| « Prev | Page 1 | Page 2 | Page 3 | Next » |
Re: eTeller Horror
2009-04-16 18:03
•
by
kayakyakr
(unregistered)
|
I apologize. It was early in the morning and apparently I'm an American asshole. also my captcha is jumentum. I'm going to count it as a new vocabulary word: jumentum - what a jew (yo) possesses when he enters the "code zone" |
|
Hey! I found the real WTF!
"The developers complied, but nothing could have prepared Steve, the CEO, or anyone else for what they were about to inherit." So, they had a contract with another company where that company would produce executables - but hold on to the source code? Seriously? I don't care if you have the Indian CEO's retarded 10 year old nephew or a hand-picked team of the best of the best of the best westerners at a thousand dollars a minute - if you don't review their code, you're doing it wrong. If they had done it right, they'ld have reviewed the code weekly - and known well before the first release that the subcontrators were incompetent. And then they could have found different subcontractors. The problem with outsourcing isn't the lack of quality. Its the lack of quality control. |
You are so, so, not going to tempt me into Ebonics, as in "yo, yo-yo yo boy..." An apology on this site is a yoyoyoyoyoyo (oops, stuck in obsessive-compulsive behaviour) absurdity. I hereby apologise double, which by co-incidence is half my name. It's nice to know that you've drunk enough coffee to spot that, for once in the last month or so, there's an actual elegance to the WTF. I mean, that ellipsis was pretty cool. No unicorns, no panning over endless Amazonian forest, no cutting a pissed-off Harrison Ford giving the speech of his life while he thinks he's just walking along the sea-front whilst fulfilling a Contractual Obligation. Just Art. I'm in love with that ellipsis. Three tiny dots, just leading to the future of TDWTF ... Which doesn't include friggin pod-casts, unless you live in a pod and/or have a limb in a cast. But that's Another Thread. ... so I can't accept your apology. But I'd be happy to buy you a cup of Yo next time we meet in the code zone. (For any real Nazis out there, that's a phonetic joke in extremely bad taste. The drink I'm actually proposing is squeezed from huge overhanging fronds by fairies in the early morning.) (And for any homophobes out there... Well, y'all are on the Pink List. We know where you park your pickups.) |
|
In Communist Russia, INSANE LOW PRICES own you!
|
|
On a serious note, there is something to be said for trying to fix this mess piecemeal instead of starting from scratch, but it's a business reason, not a software reason.
Yes, starting over is the most efficient way, it's the quickest, cheapest path to good code. But it's a path you can't use because it involves going bankrupt before reaching the goal. The clients are just about ready to wash their hands of you, they won't wait six months for the grand unveiling, your only hope is to keep the code running and show improvement starting now. I had a gruesome project a while ago under a couple of bosses (alarm phrase right there) who didn't understand this. As a hard deadline grew steadily closer they spent their time dreaming up ever-more-perfect architecture and ignoring all my warnings while I worked like a bee on meth. In the end they showed their true talent: being elsewhere when things hit the fan. The fact that such cretins can rise to managerial positions is a strong clue to the prevelance of WTF projects (and maybe the bad American reputation). |
Gah! I'm working with the exact same thing-- except instead of str it's @sql, and the block is followed by EXEC(@sql) |
|
I don't know about that... I worked on a project for one of the VERY big U.S. banks and I told my manager daily that the "India Team" was delivering crap. He diligently passed the info up the chain and was regularly reminded that the company was saving a ton of money by outsourcing some of the work.
After 2 years, and literally millions of dollars, the project was scrapped. You can't save people from their own stupidity. |
|
Ah, the old one million responsibilities per class.
|
|
I was wondering that; the .NET framework even uses IDictionary for moving configuration options about in the Remoting namespace (the documented example is using a Hashtable).
I find using a similar approach works well sometimes; otherwise you can end up having a configuration options class representing a hideous number of mutually exclusive options to cover different possible configuration scenarios. One case I had was configuring a connection, where the underlying connection type could either be old school FTP or shiny SFTP. There are options for SFTP that just aren't relevant to FTP; sometimes you just don't need to include a set of options, e.g. for configuring a proxy. You lose your strongly typed goodness and sometimes bugs can be hard to pick up (if your keys are case dependant strings, for example), but you make up for it by not having a huge ugly classes most of which might not be used and some of those problems can be designed away. |
|
Reminds me of an app that was outsourced by a company I used to work for. The lab that originally maintained the code was in the habit of adding small features and never updating the specs. If they thought the feature was needed, it was dropped in whenever the developer was 'in that area'.
The entire lab was outsourced and sent overseas to a company with a relatively good reputation. They got the specs and the source code. The first thing they did: Reviewed the specs and removed every undocumented feature. It took months to get the specs (and program) updated to fix the dozens of problems that was caused by the cleanup. |
The whole ending?! |
Well, a listener without a speaker or a speaker without a listener is pretty pointless, unless you want to talk to yourself all day... |
|
The original submission I wrote was *much* too long to include on the mainpage, but I've posted technical details about this application on StackOverflow:
http://stackoverflow.com/questions/434414/what-is-the-most-evil-code-you-have-ever-seen-in-a-production-enterprise-environm/434562#434562 Seriously, read that. The application was a beast from start to finish. It was written in C#, but it looked like it was written by a bunch of developers whose latest programming experience didn't go beyond VB5. To fill in some of the missing details: a few years ago my company wanted to produce a new product for our banks. The project management triangle states "you can have a product that's done well, cheap, and quick -- choose two". We went with fast and cheap at the expense of quality, so we offshored developed to the lowest bidder. Of course, that's not why this project spiraled out of control. We were an agile shop, so we didn't produce requirements on any kind of permanent medium. Requirements were community by whiteboards, notecards, email, and word of mouth. So, when we passed the project off to India, we didn't provide them with any requirements. Strike 1. Even without requirements, India's turnaround time was amazing. They were able to produce an executbale within days of us requesting a change, the turnaround time was amazing. However, India developed pretty much unsupervised, its not clear to me whether there were any code reviews. We never saw any of the code until it became a crisis. Strike 2. We started selling eTeller 1.0, with the minimal functionality it had, to our customers and they really enjoyed it. We expected bug reports, feature requests, and so on as part of the normal lifecycle of product development. India was quick to fix the bugs for the first few months, but after a while their turnaround time began to really slow down. The bug queue increased from a few dozen bugs to quadruple digits, and each new release of the application spawned an entirely new set of bugs. The application became so unstable that it was crashing 40-50 times a day. It got to the point where bank presidents were putting the president of my company on speed dial just to report bugs. We were on the verge of losing a number of customers. It got to a point where we said "alright India, if you can't hold up your end of the bargain, we'll do it ourselves". We decided to add some of our own manpower to the programming effort, essentially going through the code and fumigating bugs. When we saw the code for the first time, it became *immediately* obvious why India was unable to attack bugs: the code base was 130,000 LOC of spaghetti code, as described in the link to SO above. The entire application was written using the "just do what it takes" FAD methodology. We were reluctant to make any sweeping changes to the application because, in an effort to save time, India has skipped all form of documentation, QA, and above all else: no unit tests. Strike 3. We terminated our contract with India immediately and moved the project in-house. Since the application was already in production, my dev team had to work *very* carefully to untangle the code. Over the course of 12 months, and maybe a few WTF's committed by our own team (yours truly included), we were able to pare down the code base to a slim 36,000 LOC without losing any functionality (and more than that, we *added* a lot of functionality too!). I left the company in Oct 2008, just as the eTeller code was starting to become palatable. But, at the very least, this WTF has a happy ending: my team and I rescued the application from oblivion, saved the company potential lost customers (and lawsuits!), and the application now has the most solid code out of all of our products. |
Re: eTeller Horror
2009-04-17 09:14
•
by
zedhex
(unregistered)
|
I run an offshore software company in Thailand. I also spent 15 years working as a developer in the US, Switzerland and the UK. I also employ some highly skilled western trained developers. I don't employ half-trained monkeys. Our code is exactly the same high quality stuff I wrote while working onshore. Just because we write it in SE Asia doesn't make it crap. |
|
Having seen Bank software in person, this is actually not far from the general case.
|
Re: eTeller Horror
2009-04-17 09:20
•
by
No one of importance
(unregistered)
|
|
Perhaps "you don't get what you don't pay for" is more accurate because powerful, important customers (e.g., the UK, Canada) have paid millions to E*S or Acc*****e or <prestigious producer of egregious crap> and received garbage. There are few bargains but many swindles.
|
|
It's hot gay sex. http://en.wikipedia.org/wiki/Male
|
It's hot gay sex. http://en.wikipedia.org/wiki/Male |
Re: eTeller Horror
2009-04-17 13:32
•
by
god here
(unregistered)
|
That all depends on other things like SLOC. |
Re: eTeller Horror
2009-04-17 14:08
•
by
Procedural
(unregistered)
|
I suppose it could also be, but then you could to do away with the clearly illustrated double-sided dildo. If the objects naturally came with base methods, why would Alex slip in this clearly superfluous interface ? I think he's a better architect than that ! |
Re: eTeller Horror
2009-04-17 14:24
•
by
Procedural
(unregistered)
|
I want to clearly delineate my argumentative structure here, including its implicit requirements because, try as I might to be clear, sometimes people miss what is clearly spelled out in this limpid and straightforward argumentation. Either 1. This is gay sex, and therefore Alex is a bad software architect (or at least one with limited experience of the specific problem domain) or 2. This is lesbian sex and it confirms that Alex is indeed a good architect. I think it is about time that we clearly and definitely establish the basics here. (I am presuming here that Alex isn't a fan of agile development, but I could be wrong) |
|
This is why I fully support offshoring....fixing their shite keeps competent developers in work for YEARS....LOL
|
|
This is exactly my experience with offshore development.
|
|
Wipro and Tata are just the same. A tiny competent minority put up a prototype taster to suck in the customer then guys who bought their degrees at the local vegetable market do the rest.
|
*Sigh*. You might want to listen to Radio WTF all day, every day. And Radio WTF may narrowcast to you and only you, because after all you're clearly an idiot and will buy anything they advertise. Generally, this is not considered a sound business model. I believe the official term for it is "Tin Foil Hat syndrome." |
|
I recognize the specific details of this story, and was on the same development team as Steve. The code we inherited was truly as bad as described, but I'd say our problems were greatly compounded by programmer overzealousness for making the code "beautiful", without putting in the necessary effort to make sure the new code didn't break stuff that was already working.
Yeah, that takes time and a lot more effort to try to understand the old code. But by throwing out old code as "incomprehensible" instead of wading through it and trying to make sense of it first, a lot of stuff tended to break. Lots of details that had spent over a year being refined (and the code messier for it) tended to get lost in these rewrites. And several months later, finding out that some obscure feature that only a few customers used was broken because of that. There are definite long term advantages to making the code more maintainable, and the code base has come a really, really long way in that regard. But when paying customers are depending on software for their business, it's business suicide to ignore the short term "this has to be in a working state the next time we send it out, with all the functionality they depended on in the last version". |
Re: eTeller Horror
2009-04-19 03:29
•
by
not that witty
(unregistered)
|
so you're suggesting a Wiki? |
I wonder what would happen if you outsourced the management. |
Ummm... Please try to think outside of the ASCII box... Nvarchar(255). ;-) |
You should learn a witty thing or two yourself. One of them is called "search", and you can use it to see if your main point (in this case "wiki") was already mentioned or not... |
Re: eTeller Horror
2009-04-20 09:16
•
by
Metal Lord
(unregistered)
|
|
does this smell like a 90's comeback, or what?
|
All I can say is that the assumption is proven in reality. While I see my opinion changing in the future as the US shifts away from its' core founding principals that made the country so great, I still don't see another country that I would rather live in (OK, maybe New Zealand). The country I think is better than all others was created by....Americans....The countries that I would never live in were created by.....not Americans.... Does the fact that a certain group of people created something like a country better than another group of people make them better, maybe not. But it should cause one to at least consider that maybe it does. There must be something that the US has been doing that other countries do not that has made it so successful. |
|
[quote user="Code Dependent"][quote user="Some American"]I'm thoroughly ashamed of what the Bush administration has done, and of the perception of Americans in general by the rest of the world as arrogant, isolated in their views and out of touch.[/quote]
Maybe it is the rest of the world that is arrogant, isolated in their views and out of touch with reality? I know it's trendy for us all to blame the US for the world's problems. Even our president has hopped on the bandwagon. Hey, Europe, Africa and Asia. You have been screwing up the world since history began. The US has only been around for a couple hundred years and only been a major player in the international scene for less than a century. Don't blame the US because you have not been able to get your act together over many millennium while we have been able to do it in a fraction of the time. Get past your jealousy and start putting blame where it belongs....yourselves. |
|
Me and my ex colleague got some serious flashbacks while reading this article, having to support a Delphi application of similar size, with all the code being kept in user interface forms.
It is over a year ago now since we resigned and we keep thinking (its not unlike like Posttraumatic stress disorder, having the occasional nightmare on returning back to work), what could we have done to tame that beast? A month ago I came up with the idea of off-shoring it too India for refactoring... Now I understand that this would have made things only worse! So yes, the application was doomed - and resigning was the only good option. Sympathy to all those people suffering right now maintaining applications like this one! Our thoughts are with you... |
Right. Don't lie. Tell people you're an American, and then don't act like an ass. Maybe the rest of the world will start thinking that not all Americans are rude and ignorant! |
Not bad, only three grammar/spelling mistakes that I see. |
Re: eTeller Horror
2009-04-21 13:30
•
by
Mitur Binesderti
(unregistered)
|
Are you counting the four dot elpises as one error? 'Cause there's four of 'em. |
Re: eTeller Horror
2009-04-22 14:30
•
by
Jordan
(unregistered)
|
|
Nothing inherently bad, however, it does depend on how you're passing it. A Class (Model) helps you organize related data and specifies how that data should be accessed. Throwing around data is a recipe for disaster. Whoops...too late!
|
That's just so 20th century. varchar(MAX) ftw! |
Re: eTeller Horror
2009-04-23 11:57
•
by
rong1982
(unregistered)
|
Re: eTeller Horror
2009-04-23 11:57
•
by
rong1982
(unregistered)
|
|
搬家搬家 搬家公司在職進修 婚紗 新娘秘書 汽車旅館 彩妝造型 新娘秘書 票貼 室內設計 室內設計 外遇 抓姦 應收帳款 徵信 徵信社 外遇 徵信 徵信社 外遇 植牙 牙齒矯正 坐月子 宜蘭民宿 婚禮佈置 宜蘭民宿推薦 催眠 派報 太陽能熱水器 Shade sail nike shoes 關鍵字廣告 租屋 搬家 搬家 買房子 花蓮民宿 花蓮民宿 花店 租房子 xo醬 房屋貸款 搬家公司 減肥 減重 床墊 創業加盟 團體服 學英文 英文 補習班 勞工體檢 資源回收 生日禮物 團體服 團體制服 班服 塑膠 日立家電 飾品批發 MBA 在职研究生 在职博士 电动隔膜泵 自吸泵 化工泵 离心泵 磁力泵 螺杆泵 水泵 隔膜泵 气动隔膜泵 婚禮佈置 婚禮佈置 婚禮佈置 酒店經紀 酒店經紀 班服配件 團體服配件 團體服 班服 團體服 班服 團體服 室內設計公司 室內設計公司 室內設計公司 金門高梁酒變頻洗衣機學英文
|
|
uggs, with a legendary brand, first to see the snow ugg boots ,Ugg people will not Ben Ben flu cartoon form, and is a boots, as a result of many European and American film star has adequate Gordon Street Ugg snow boots and a pretty popular in Europe and America look like the earth, Ugg blowing sustained winds of the popular Madden, in Japan, Taiwan has a lot of fans Ugg.
|
Re: eTeller Horror
2009-05-27 16:09
•
by
Lance Walton
(unregistered)
|
First, you are not just moving data around. You are moving it around for a reason. That reason is usually better served with the assistance of abstraction barriers. Second, if you wrap the collection and then move all of the behaviour that is relevant into the wrapper, then you don't have a degenerate 'wrapper' but a very semantically rich class. Third, we don't define structures for their structure, we define them for the behaviour that is associated with that structure. |
|
Can you post the rest of your submission, your stack overflow was great, however I read that first.
|
| « Prev | Page 1 | Page 2 | Page 3 | Next » |