Comment On eTeller Horror

Most large applications are designed with multiple, autonomous interacting components. In very high level terms, they look like this: [expand full text]
« PrevPage 1 | Page 2 | Page 3Next »

Re: eTeller Horror

2009-04-16 11:04 • by m0ffx (unregistered)
You shouldn't have two mutually dependent components. If they depend on each other, they should just be one component.

Re: eTeller Horror

2009-04-16 11:12 • by ThePants999
256223 in reply to 256222
m0ffx:
You shouldn't have two mutually dependent components. If they depend on each other, they should just be one component.

Isn't that precisely the thinking that led to this article? :-)

Re: eTeller Horror

2009-04-16 11:22 • by Rob (unregistered)
256224 in reply to 256222
m0ffx:
You shouldn't have two mutually dependent components. If they depend on each other, they should just be one component.


Well, that's just more security - if one component fails, the server is only "half dead" instead of "mostly dead"

Re: eTeller Horror

2009-04-16 11:22 • by Eric (unregistered)
The approach seemed to work, though it did have it drawbacks. Not only did changes take longer to implement, but the codebase didn't seem less ugly; it was only a bit smaller.

Hmm.. what to do with this tangled knot in my shoelaces... I know! I'll pull on the ends as hard as I can to make the knot smaller!

Re: eTeller Horror

2009-04-16 11:29 • by Nick (unregistered)
256226 in reply to 256222
What if there is a third component, that only depends on one of the components. That should be rolled in there too?

Re: eTeller Horror

2009-04-16 11:31 • by Code Dependent
This story is summed up in one line: "You get what you pay for."

Re: eTeller Horror

2009-04-16 11:32 • by howes (unregistered)
I went to china, india and the like. It all comes down to one thing. You get what you pay for. Pay up or shut up..

Re: eTeller Horror

2009-04-16 11:34 • by Layer I Up (unregistered)
256229 in reply to 256226
Nick:
What if there is a third component, that only depends on one of the components. That should be rolled in there too?


Exactly! There should be some layer of abstraction to allow changes to be easily made to an upstream component.

Perhaps when the author said "At a very high level", he was intentionally disregarding interfaces / layers of abstraction.

Architecturally speaking, the diagram rings alarm bells!

Re: eTeller Horror

2009-04-16 11:36 • by Warren (unregistered)
"Each new bug [threw] the development team into crisis-mode"

Found one there, hope you're not in crisis-mode now.

Re: eTeller Horror

2009-04-16 11:36 • by Anonymous (unregistered)
What's so bad about using ArrayLists, HashTables, and DataSets to move around data?

Not for everything, of course, but wrapping yourself to death with custom data structures is not exactly better.

Re: eTeller Horror

2009-04-16 11:38 • by blah (unregistered)
What the blimey do you all think you're doing? We should share an account and edit a single comment!

Re: eTeller Horror

2009-04-16 11:39 • by No one you know (unregistered)
INSANE is missing the blink tag.

Re: eTeller Horror

2009-04-16 11:43 • by Code Dependent
256234 in reply to 256231
Anonymous:
What's so bad about using ArrayLists, HashTables, and DataSets to move around data?
It's just soooo .Net 1.1. We're almost to 4.0 now. Get with the program!

Re: eTeller Horror

2009-04-16 11:44 • by DMC (unregistered)
Love the reference to Crazy Eddie's in BKLYN. "Prices so low, they're INSANE"

Re: eTeller Horror

2009-04-16 11:45 • by Yanman (unregistered)
256236 in reply to 256232
blah:
What the blimey do you all think you're doing? We should share an account and edit a single comment!


Communism?

Re: eTeller Horror

2009-04-16 11:50 • by blah (unregistered)
Static globalism.

Re: eTeller Horror

2009-04-16 11:50 • by kayakyakr (unregistered)
Is it just me or have the feature articles been ending just as the story seems like it's about to become interesting?

I mean, this one seems like it should have a co-dependent pt. 2 to it.

Form post for today:
1. Good programming vs bad programming (w/ diagrams)
2. Company sends code offshore
3. Offshore code sucks
4. Company saves money by retrofitting shitty code instead of rewriting
5. Retrofit process still ongoing (or is it?)

Re: eTeller Horror

2009-04-16 11:50 • by Mcoder
256240 in reply to 256236
Yanman:
blah:
What the blimey do you all think you're doing? We should share an account and edit a single comment!


Communism?

Wiki?

Re: eTeller Horror

2009-04-16 11:54 • by PeriSoft
256241 in reply to 256239
kayakyakr:
Is it just me or have the feature articles been ending just as the story seems like it's about to become interesting?

I mean, this one seems like it should have a co-dependent pt. 2 to it.

Form post for today:
1. Good programming vs bad programming (w/ diagrams)
2. Company sends code offshore
3. Offshore code sucks
4. Company saves money by retrofitting shitty code instead of rewriting
5. Retrofit process still ongoing (or is it?)


No... '5' is, "New feature set is impossible to add due to 4. Goto 2".

Re: eTeller Horror

2009-04-16 11:56 • by tragomaskhalos (unregistered)
Strangely redolent of code I am currently working with. Features include:
= Entire program in one function, including numerous repetitions of near-identical logic
= But novel use of #region to break logic into chunks !
= lots of goodness like:

if (condition)
str = <HUGE concatentation of terms, all on the one line>
else
str = <EXACT duplicate of above huge concat, with ONE extra term!>

Re: eTeller Horror

2009-04-16 11:59 • by Dave (unregistered)
Why didn't the bank run through their own testing when they got the release from their offshore developers? They had a QA dept. It's their own fault for releasing a piece of software they didn't test themselves.

Re: eTeller Horror

2009-04-16 12:07 • by monkeyPushButton (unregistered)
256245 in reply to 256240
Mcoder:
Yanman:
blah:
What the blimey do you all think you're doing? We should share an account and edit a single comment!


Communism?

Wiki?
In communist wiki, comments edit you.

Re: eTeller Horror

2009-04-16 12:08 • by XioPod
256246 in reply to 256243
tragomaskhalos:
Strangely redolent of code I am currently working with. Features include:
= Entire program in one function, including numerous repetitions of near-identical logic
= But novel use of #region to break logic into chunks !
= lots of goodness like:

if (condition)
str = HUGE concatentation of terms, all on the one line
else
str = EXACT duplicate of above huge concat, with ONE extra term!

<br><br>

Last time i checked, you can't put region blocks in method bodies...

Re: eTeller Horror

2009-04-16 12:09 • by Anonymous (unregistered)
So, we have incompetent offshore developers coupled with management who are all too ready to repeat their past mistakes. Technically this is a WTF but in reality it's not going to raise any eyebrows around here. Welcome to the IT industry.

Re: eTeller Horror

2009-04-16 12:09 • by amischiefr
256248 in reply to 256222
This is what you get when you hire cheap offshore workers. I have yet to see an app that was developed as an offshore project like this (not talking about major offshore corps like NCSoft) actually come back with clean, functional and maintainable code.

Re: eTeller Horror

2009-04-16 12:10 • by none (unregistered)
I have no sympathy. A modicum of code review by Infotech or the bank would have revealed that the code was crap very early in the process.

Re: eTeller Horror

2009-04-16 12:11 • by Anonymous (unregistered)
256251 in reply to 256246
XioPod:
Last time i checked, you can't put region blocks in method bodies...
Then it's probably about time you checked again. This is C#, you can put regions wherever the hell you like.

Re: eTeller Horror

2009-04-16 12:12 • by LBP (unregistered)
256252 in reply to 256243
I really recommend that if you're not using ConQat or Clone Detective, that you start. They're both free, and ConQat is now a lot easier to configure than it used to be.

Re: eTeller Horror

2009-04-16 12:12 • by silent d (unregistered)
Guaranteed way to keep your customers from becoming disgruntled: don't gruntle them in the first place.

Re: eTeller Horror

2009-04-16 12:12 • by brazzy
256255 in reply to 256231
Anonymous:
What's so bad about using ArrayLists, HashTables, and DataSets to move around data?

Not for everything, of course, but wrapping yourself to death with custom data structures is not exactly better.

Lists are probably OK, but the HashTables and DataSets WERE being used for everything (note that they did not define ANY classes except as holders for static methods). Basically they had completely foregone OOP. And type safety; I bet you 3:1 that the vast majority of those HashTables contained a nice mix of strings, decimals, bools, and other HashTables.

Re: eTeller Horror

2009-04-16 12:13 • by JoeCoder (unregistered)
256256 in reply to 256246
XioPod:
tragomaskhalos:
Strangely redolent of code I am currently working with. Features include:
= Entire program in one function, including numerous repetitions of near-identical logic
= But novel use of #region to break logic into chunks !
= lots of goodness like:

if (condition)
str = HUGE concatentation of terms, all on the one line
else
str = EXACT duplicate of above huge concat, with ONE extra term!

<br><br>

Last time i checked, you can't put region blocks in method bodies...


check again, I see it all the time.

Re: eTeller Horror

2009-04-16 12:14 • by brazzy
256257 in reply to 256248
amischiefr:
I have yet to see an app that was developed as an offshore project like this (not talking about major offshore corps like NCSoft) actually come back with clean, functional and maintainable code.

Then again, how many onshore-outsourced projects have you seen that had clean, functional and maintainable code?

Re: eTeller Horror

2009-04-16 12:18 • by WTF Fan (unregistered)
Finally, a pretty thoroughly WTF WTF. Congratulations to Alex et al. for returning to the source: persistently bad management decisions.

Re: eTeller Horror

2009-04-16 12:18 • by A Gould (unregistered)
256259 in reply to 256248
amischiefr:
This is what you get when you hire cheap offshore workers. I have yet to see an app that was developed as an offshore project like this (not talking about major offshore corps like NCSoft) actually come back with clean, functional and maintainable code.


Which makes sense, if you think about it - they're not paying for clean *or* maintainable code. They're paying for functional, and I'll bet it does *exactly* what they were paid to have it do (as shown by whatever testing was used), and not a thing more.

That's what "lowest bidder" means - no frills. (And anything not in the original bid is a frill).

Re: eTeller Horror

2009-04-16 12:21 • by Stefan (unregistered)
256260 in reply to 256246
[quote user="XioPodLast time i checked, you can't put region blocks in method bodies...[/quote]


private void Comment_Load(object sender, EventArgs e)
{
#region "Yes you can"
string a ="Just see ";
string b = "me doing it!";
#endregion
#region "I rest my Case"
Console.Write(a + b);
#region "I rest my Case"

}

Re: eTeller Horror

2009-04-16 12:23 • by Stefan (unregistered)
private void Form1_Load(object sender, EventArgs e)
{
#region "Yes you can"
string a = "Just see ";
string b = "me doing it!";
#endregion
#region "I rest my Case"
Console.Write(a + b);
#endregion "Even text in the closing tag!"

}

Re: eTeller Horror

2009-04-16 12:45 • by Someone You Know
Mark Bowytz:
The "Fit" hits the "Shan"


Mark, we're adults. We're not going to send you to the principal's office for saying the word "shit".

Re: eTeller Horror

2009-04-16 12:51 • by Shaftoe (unregistered)
This is exactly why offshoring Dev work is a short sighted and stupid idea.

Re: eTeller Horror

2009-04-16 12:56 • by OldCoder (unregistered)
256268 in reply to 256239
kayakyakr:
Is it just me or have the feature articles been ending just as the story seems like it's about to become interesting?


Perhaps Alex accidentally the ending?

Re: eTeller Horror

2009-04-16 12:56 • by lonewolf
256269 in reply to 256246
XioPod:
tragomaskhalos:
...
<br><br>

Last time i checked, you can't put region blocks in method bodies...



private void YouAreWrong()
{
#region WTF?!
MessageBox.Show("i can haz region!");
#endregion
}

Re: eTeller Horror

2009-04-16 13:00 • by Osno (unregistered)
256271 in reply to 256267
Offshoring dev work to idiots is a short sighted and stupid idea. Americans seem not to understand that there's a lot of bright people around. Not the lowest bidder, generally.

captcha: dignissim. What I feel as an excellent offshore developer.

Re: eTeller Horror

2009-04-16 13:06 • by blah (unregistered)
256272 in reply to 256265
Someone You Know:
Mark, we're adults. We're not going to send you to the principal's office for saying the word "shit".
Can you really blame Mark? He has the spelling/grammar skillz of a second grader.

Re: eTeller Horror

2009-04-16 13:07 • by Code Dependent
256273 in reply to 256271
Osno:
Americans seem not to understand that there's a lot of bright people around. Not the lowest bidder, generally.
How did you conclude they were American?

Addendum (2009-04-16 13:18):
analysts in the US would send a list of new bugs to the offshore developers
Yes, that would do it. Nevermind.

Re: eTeller Horror

2009-04-16 13:17 • by Osno (unregistered)
256276 in reply to 256273
Experience, I guess :). Ok, I'm biased against Americans because all the offshoring I did, I did it for them and the code they provided was so incredibly bad and their egos where so incredibly huge. Sorry for my bias, what I said can be applied to anyone that thinks he's better than the rest of the world.

Re: eTeller Horror

2009-04-16 13:21 • by telluryde (unregistered)
"No primary keys, indexes, or foreign key constraints existed on tables, nearly all fields were of type varchar(50), and 100% of fields were nullable."

Amateurs! Everybody knows those fields should be varchar(255).

Re: eTeller Horror

2009-04-16 13:22 • by Code Dependent
256279 in reply to 256276
Osno:
...and their egos where so incredibly huge. Sorry for my bias, what I said can be applied to anyone that thinks he's better than the rest of the world.
Yeah, the ugly American, I've heard of him all my life. On behalf of American assholes the world over, I apologize.

Incidentally, I've been to Canada and Mexico, but never off the North American continent, so I've never behaved badly in Europe, Asia or Australia. I hope to travel more widely someday, and not behave like an ugly American in the doing.

Re: eTeller Horror

2009-04-16 13:28 • by Procedural (unregistered)

Is the first diagram having hot lesbian sex or am I too horny right now ?

Re: eTeller Horror

2009-04-16 13:29 • by dsckeld
256281 in reply to 256246
XioPod:
tragomaskhalos:
Strangely redolent of code I am currently working with. Features include:
= Entire program in one function, including numerous repetitions of near-identical logic
= But novel use of #region to break logic into chunks !
= lots of goodness like:

if (condition)
str = HUGE concatentation of terms, all on the one line
else
str = EXACT duplicate of above huge concat, with ONE extra term!

<br><br>

Last time i checked, you can't put region blocks in method bodies...

Last time I checked, I could...

Re: eTeller Horror

2009-04-16 13:29 • by Wodin (unregistered)
256282 in reply to 256265
Someone You Know:
Mark Bowytz:
The "Fit" hits the "Shan"


Mark, we're adults. We're not going to send you to the principal's office for saying the word "shit".

If he'd said the word "fan", though...

Re: eTeller Horror

2009-04-16 13:31 • by m0ffx (unregistered)
256283 in reply to 256279
When you come to Europe, tell people you're Canadian.
« PrevPage 1 | Page 2 | Page 3Next »

Add Comment