- 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
Nice
Admin
Fifteenth
Admin
Tim needs to send them packin'.
Admin
If I were Timothy, I would have said "screw the six-figures. It's gone up to Seven"
It's like the Fram commercials. . . "pay me now, or pay me later"
Admin
His client needs to learn to sit down, shut up, and realize that you get what you paid for (especially when you go over seas).
Admin
"Kirk to Enterprise."
"Enterprise here, Captain."
"Transporter room--one to beam up."
"Sorry, sir, we're having a little trouble formatting a phone number right now...."
Admin
Whats with these constants?
Why would you add these static strings?
Is it some sort of poor mans reflection?
I am very confused... :|
Admin
You obviously aren't the only one.
Admin
Some people simply do not deserve a working information system.
Admin
Who needs a client like this anyway? If they're this stupid at the outset and "insulted" by the price then imagine their reaction to change requests etc. I'd walk.
Admin
So what percentage of Timothy's quote are we up to at this point and for next to nothing in results?
It was done in "Star Trek". The Enterprise was at risk of being destroyed nearly every week.Someone is not learning.
I think it is fairly safe to say that Timothy did not cringe and apologize for the client getting it wrong. Go, Timothy!
Sincerely,Gene Wirchenko
Admin
I guess the client never heard of getting what you pay for, I guess. Or, in this case, what you deserve...
Admin
Oooh but I love the nested abstract classes to store string constants, that shows some real knowledge of OO!
But the real WTF is they are using a literal for the hyphen in the phone number....
public abstract class CHARACTERS {
public const string HYPHEN = "-";
}
Admin
Hope they never get any overseas customers - not everybody is on the North American Dialing Plan.
Admin
This is great! Now I know how to handle dim clients :D Go Timothy!
Admin
No, the proper way to handle dim clients is when they tell you that your 6 figure quote is too high and they can get it for 1/10th as much overseas, tell them that you charge twice the hourly rate to fix outsourced code as you charge to write new code. When they come back complaining about the overseas cluster fuck, laugh in their face and say "sorry, my rates just doubled again."
Admin
Ahhh... overseas programming. I love it. Everytime I see CIO magazine I just laugh when I hear how these turds are "realizing new synergies" with their overseas partners.
Apparently one of these synergies is not trusting the CLR error stack to give you your method and class names when an exception is thrown! Bahahahha!
Admin
There is actually something very clever to this code. This way, you’re not relying on .NET reflection. All they have to do next is wrap all the strings in a class called EnterpriseString.
Oh and EnterpriseException…
There’s nothing like a meaningless prefix to make everything all better.
So what kind of a name is CONSTANTS for a class?
It should be called ENTERPRISE_CONSTANTS.
See? Much better. It’s very… distinguished.<o:p></o:p>
<o:p> </o:p>
Admin
Well, I am no expert but if Timothy's original quote is X and they got the system for one tenth then they budgeted (X/10). If they were 300% over budget then it cost 3 * (X/10) which is X * (3/10). So they are still one third of the way to Timothy's original price... of couse, they still have no work done.
Admin
Fantastic. If I were timothy, I'd ask for at least part of the cash for the project up front, because it seems like with these guys in charge they're not going to be around much longer.
Admin
If they were 300% over budget, then they are at 4 times X (the budgetted amount plus 300% of that.)
Sincerely,
Gene Wirchenko
Admin
Either way, the client still has zero.
Admin
More like what you would come up with if you WANTED reflection, but couldn't be bothered to learn that it already exists.
Admin
Actually, 300% is 4 times their original estimate, i.e. 100% is double, 200% is triple, etc. They're almost at half of what Timothy's rate is and nothing to show for it. Ouch
Admin
This reminds me of the "time tested" adage;
You can have it:
Choose only two
Admin
Cost of hiring a consultant to develop an enterprise-class information system...six figures
"Cost" of hiring an overseas team...less than 1/10th of original consultant's price
Real cost of hiring an overseas team..300% over-budget, and receiving a buggy, non-functional system
Original consultant's vindication...priceless
There are some things lots of money can buy, like high quality software. For everything else, there's outsourcing.
Admin
Yes, and don't forget that CLASS_NAMES should be ENTERPRISE_CLASS_NAMES and STRING_NAMES should be ENTERPRISE_STRING_NAMES.
Admin
Well, frequently when logging I print the name of the function I'm in- something like logger->print("Entering Foo.bar(int x)"). I'll give them the benefit of the doubt and assume thats why they existed at all. The abstract class hierarchy of constant names is still a wtf though.
Admin
Once, long ago when there was actually a thriving business to be made from custom Word Perfect macros, I worked at Egghead Software. I was a salesperson at the time but I had written a few things and knew computer setup and maintenance pretty well ... I had a side business charging $30/hour to do various tasks such as installing a mouse, installing drives, upgrading RAM, etc.
One day, someone called the store asking for a person who could write a fairly detailed Word Perfect macro system that could help a law office fill out and manage boilerplate contracts ... so that they could get by with secretaries instead of paralegals. I had a number of contacts that I could have supplied this gentleman with ... but they all charged $150/hour. He wasn't interested in that. I told him that I didn't have any experience writing Word Perfect macros, but that I would be happy to learn to do it and write his system for $75/hour. He was outraged that I would charge so much when I had already admitted not having any experience. He told me, "I could find ten people who would charge no more than $30/hour!" I stifled a giggle and the obvious question, "Then what are you talking to me for?" and simply said that he should put them in touch with me because I could refer them a bunch of work.
Someone later asked me why I quoted him $75 when I normally charged only $30. I said that I already knew he was going to be a pain in the rear by the time we talked price ... so either he agrees to the $75 ... or he doesn't. Either way, I win!
Admin
You just aren't recognizing the elite skills at play here. The developers obviously knew that reflection is just to slow to be suitable for an ENTERPRISE application. Using a centralized object/method name cache is the proper ENTERPISE way to do things. As an added benefit, when they rename a method they only have to change it in, er, two places instead of just one.
One can only hope this elite team is still available. I hear that there is a sales tax system in Oklahoma that could use some developers
Admin
How many o these y'all do a day Tim?;)
"a few servers and some programs." - I love it! Kind of like the universe is a few lights and a bunch of nothing:)
Admin
What better way to show off IntelliSense?
Admin
I've done that plenty of times. It's the inverse supply-curve of "asshat-ism." If whomever is asking me to do the work resembles an asshat or I sense (s)he'll be an asshat into the project, PLUS the more inconvienences I have to go through to complete the work, the higher I charge, which is a) in writing and b) has the requirements SIGNED (if there is a change I prepare a change order and do a seperate estimate).
You can always outsource to India if you want, I don't care. There's plenty of work out there and I'm too frustrated to put up with asshats that won't fork over their wallets. If you're a good project manager and you are managing your project right, set expectations up front, agree to the contract, then you're good. You're an asshat? Then pony up.
Admin
So... Abstract hierarchy of constants is bad... Why? I've done it several times and it actually makes sense when used (not abused). Granted, it's a trick mostly for the IntelliSense, but what's wrong with that?
Admin
I once had a jerk like that that said more or less that same thing about my price. After he came back and said AGAIN that my price was too high (after 5 months and a total disaster had installed itself in his company), I lost my temper and told very clearly to him: "Look here, YOU are the one calling me and you're calling me for a reason, you know that I can do the job because of my references. I gave you the price and the time needed to do it. If you don't like the price go call anyone else to do the job, but DON'T bother me again.". He mumbled and tried to convice me that my price was absurd and then hanged up on my face. After 6 months his company went bankrupt and closed.I may be evil with my opinion, but he deserved it.
Admin
Amen. Why even let them burn up any more of his time on quotes? After the second round, I'd have told them "Don't call me, anymore."
Admin
Or charge for your time in making the quote. Many organizations call this "discovery" and do charge for it.
Admin
Just to make sure I understand it correctly and don't misinterpret it because of lack of vocabulary... ""six figures for a few servers and some programs." does this mean he asked for >= 100000$? Must be either expensive servers or big programs?
Admin
My experience in these situations is you don't get more than zero, typically.
Isn't it time for a forum dedicated to outsourcing? I would be up for reading that every day. [6]
Admin
or Oracle
Admin
Actually, that's the only part that makes sense to me... They use this trick so they don't have to memorize all their constants, intellisense will help them find them...
The whole reason for the constants is crap of course, I think these offshore chaps would be better off spending more time learning their tools, and less figuring out neat'o tricks in intellisense.
I've been in Timothy's exact situation, it's as common as cheese... What his client should realize, and I hope Timothy included in his revised estimates, is just learning and dealing with the crap this offshore "developers" produced takes more time, and thus is more costly than just scrapping it all and starting from scratch. If he estimates he can use only 10% of it, it's probably not worth the time he spent estimating.... [:P]
-me
Admin
Yeah - where I come from we call this the asshole rate. We apply it whenever we know we shouldn't be taking a job.
Admin
Just to make sure I understand it correctly and don't misinterpret it because of lack of vocabulary... ""six figures for a few servers and some programs." does this mean he asked for >= 100000$? Must be either expensive servers or big programs?
Depends on what you mean by "a few servers." Say, 6 or 7 high-spec servers, Windows 2003 Server Licenses, security and maintenance software, and licenses and support contracts for all that, that's gotta cost quite a bit. Add in any other 3rd party software that you need, and then add the cost of developing the custom system (which may take 6-12 months, depending on complexity) and supporting it.... And then consider that the custom system is often priced high in order to encourage customers to consider 3rd party off-the-shelf systems first, not to mention the fact that the product only has one customer so they must cover ALL the development costs (off-the-shelf software is often cheaper because the cost of development can be paid for by selling to many customers, rather than just one)....
And then the contractors might be very well paid - some earning £150,000 GBP pa (about $250,000 USD).
I could well believe >$100000 (assuming we are talking dollars, rather than, say, yen? If it was yen, 100000 is a bargain).
Admin
Let's say the hardware and software is a combo deal.... and 25% is hardware, so, probably one or two servers, Win2003, maybe MSSQL...
That leaves 75K, at one developer at an average rate of $165/hr, that's $6600/week, that's 11 weeks of work... pretty small for an "enterprise" application.... Even if no hardware is part of the deal, that's only 15 weeks of work.... If the app is truely something "enterprise" scale, only one developer isn't going to cut it, you're probably talking a lead at $165, staff dev at maybe $130 or so.... And most "enterprise" applications would probably take a year to develop with only two people, now you're talking 600K+, just for the software.... Yeah, you do get what you pay for however....
-me
Admin
Sincerely,
Gene Wirchenko
Admin
Ermm just a quick note on the use of the word 'overseas programmers'. As an 'overseas programmer' myself, you are making a gross oversiimplificiation if you think you can right off (or fight o the entire 'overseas' software development world with some derisive comments.
In fact if programmers in the states don't think this through clearly, and come up with a plan that leverages your own comptetitive advantage then its going to be your own detriment. There are plenty of ways in which 'local talent' has an advantage, but thinking in one dimensional terms and slandes ain't gonna help you find them
I do appreciate the points about the dangers and costs of outsourcing, but just as with US developers 'overseas' developers are not all crap.
For what its worth I actually spent 5 years in New York as a programmer and the last few of those as CTO of a middle sized financial services company. Being a financial services company (not a software development company) we felt that the right approach was to have a small internal team for small projects and critical systems, and outsource the rest. Some of it we 'outsourced' down the road in Manhattan, some of it toConnecticut, some of it to the west coast and some of it all the way 'overseas' to thse here 'overseas programmers' you lot are trying to complain about.
In point of fact, countries with a low 'dollar' relative to the US do have a competitive advantage in wage rates, but, you should bear in mind that as time goes on lifestyles and expectations for prorgrammers Indian are going up *fast* so they are becoming less of a problem. But, of course, then comes Bulgaria, or I dunno... Tibet?
Also, I dunno about you, but I personally prefer to be writing code from my desk with a view the sea in New Zealand than from a high rise on Park Avenue. How about you? Have you ever considered moving to say a small tropical island and living a life,where your 'average' programmer salary will go a lot further than it would in the American city? As places get wired up this becomes more and more possible, so why not?
Admin
You're absolutely right... The problem is not a developers location, but rather the quality of the developer.... The "overseas" bit was just a gross generalization.... The real problem here is not that the developers were from outside the US, but rather they crappy developers. We see that with both US and non-US developers a-plenty.
Among pointy-haired management types however, there is this fantasy that by hiring $10/day developers from faraway lands, we can elimiate all US based development/QA/etc...
-me
Admin
Actually Eastern Europe is eroding India's market share at a pretty dramatic clip. That's beside the point. The problem is not in the final choice of programmer; the problem is in the problem definition by upper management and the refusal to look beyond dollars and cents. Do you believe that end users calling for support want to fight through a language barrier? Dell finally got a clue about a year back and shifted their business technical support back to the United States; there wasn't enough revenue in the home market to "justify the same change." Recently at work we had to make a series of decisions as to which manufacturer we wanted to go with for our standard desktop (re-evaluation). Dell didn't receive high marks from anyone - we ended up going with Compaq, but that's another story... or nightmare, depending on who you ask.
If a programmer doesn't have the business intelligence to understand the domain he's producing for then he's going to produce bloated, generalized code that yes, fulfills the purpose but fails to be as good as it could be. If a programmer attempts to understand the business but fails because of a language barrier, things could get much worse. As someone who has been brought in multiple times to fix projects that have been outsourced I'm here to tell you that they don't save as much money as people think - the original creation of software costs nothing when compared to the long term maintenance and support of it. This is the crux of the industry - and why I bitch about code readability being as important as the code being written the first time. Outsourcing isn't an issue for either of those points - they remain a constant whether a domestic or foreign programmer is used. Code and data security, the ability to talk face to face and respond in a timely fashion, being in the same legal jurisdiction where I can be served and punished for failure to fulfill ... I can think of lots of reasons why a domestic programmer is better than a foreign one.
We're a global market, you've got that much right. However, I prefer to deal with players who can speak to me without issues. I don't go to China and act like I can speak Chinese. Don't go to a crash course in English or worse, don't accept employment because they offer English courses. You are from New Zealand, I'll "guess" (one of the most beautiful places in the world, from what I understand), where English isn't such an unknown. Great. I don't mind working with someone if I can work with them transparently. If a language barrier rears its head, however, I don't care what someone costs - communication is the key to success, and problems communicating will not contribute to success. I'm not speaking of an accent - I'm not stupid enough to make the claim that accents shouldn't occur - but true ignorance of a language, the slang, etc.
As for where I live and work - I live and work where I grew up, where I have ties, local knowledge. I like it here and don't see why I should want or need to move, regardless of any employment opportunities.
Admin
Actually, the high rise on Park Avenue sounds pretty darn good to me. I could pop over to the Carnegie Deli for lunch! Try doing THAT in New Zealand! Point being (if there is one), to each his her own.
Admin
ok, but can I write you off?
I've had considerable experience with overseas development teams, and I can confidently say that, 90% of the time, the quality just plain sucks. It really appears that these folks are interested in getting the job done quickly, sacrificing architecture, design and plain 'ol good coding.
Are there good overseas developers? Well, there is this one guy in New Zealand...