- 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
It sounds stupid in retrospect, however, that what you get if you outsource only the grunt work. Companies should outsource everything, if the gonna outsource anything at all, not just the boring stuff - otherwise they get the developers that don't give a shit. Good developers don't want to do boring grunt work.
Admin
Is it wrong to want to work there? Specifications, guidelines, test environments. If the worse the off-shore team did was point their tests at the production environment, and then only managed to slow the thing to a crawl (rather than say dropping a few tables) I say they got off lightly.
Admin
The real WTF are the people who run their dev-, QA- and production-servers on the same network and allows them to talk to each other...
Any sane person in a big organization have these segregated just to avoid the above situation, not doing it leaves you open to all kinds of problems like devs testing their code which corrupts the production database.
Every day I get one more proof that human stupidity is infinite.
Admin
Rocky has it Right!!!! There should be 100% isolation between the environments (in both directions) for any type of direct connection. All interconnects should be via a controlled "pivot" system....
While the Developers were not blameless, the WTF clearly belongs to the team that set up the environment.
Admin
Admin
Interesting. Hope they were not breaking HIPAA regulations.
In more serious companies these developers would not even be able to reach production.
I mean, whose fault is it? Who made it possible for 10 developers to reach internal services of a production server?
Admin
Admin
This happened in India.
Admin
Then you are doing it wrong. If the tests will not fail every time when the problem exist, then they are broken and must be rewritten.
Admin
Admin
Typical enterprise-flavoured bureaucracy... complete with Java.
I'm willing to bet the real reason the developers changed the config was because the QA server was too slow.
Admin
Actually I'd say TRWTF is that it took the network team to tell them where the traffic was coming from. Packet sniffing?? Even if it were load balanced it should be sending X-Forwarded-For...
Admin
My brain kept reading "MyWidget" as "Midget". MidgetUrl, MidgetTest, and so on.
Admin
At our health system, in the middle of a major clinical system install, a consultant asked if we had a test environment. "Sure," was the answer, "We call it Users."
Admin
Admin
And of course, rather than check to see whether their code was pulling down a stupid amount of data, they instead decided to potentially crash the prod system. Brillant!
Admin
As did I.
Here's TRWTF. When you return mock data to your unit tests, you invalidate your tests. When your tests request enough data to slow down the server, it should actually slow down the server. The correct response should have been to change the unit tests to query for a smaller set of data.
application id's what?
But yeah, being able to access the production web services from ANY environment from production is a big WTF.
Admin
You can't argue with a tautology
Admin
I'm not getting something.
The developers were doing local tests against production, so why was the build server being blamed ? And why was the build time increasing ?
Its almost like the details of this story are made up...
Admin
What? I thought mocks were the whole point of unit tests, so you can test one thing, not one thing and everything it talks to. Also helps discourage you from coupling things tightly.
Admin
When you mock the data, you're testing the mock data, not the actual system.
Of course, there are situations where you do want to manipulate the data for the purpose of your test, but this is not one of those cases.
Admin
Actually, good mock data can be better than real data. It just often isn't, because programmers are lazy about choosing test cases. (In other words: for your unit tests, use mock data that stresses the corner-cases of your logic/algorithms in addition to hitting all the normal-case paths. Bonus points if you can hit error handlers as well.)
Admin
My thoughts exactly. Sounds like everything was being done right for this project, which in my experience with Large Companies using Offshored Developers is the exception, not the rule.
However, TRWTF is that all these meetings were done, fingers pointed, code audited, etc when the simplest answer was staring at them in the face the entire time: A mere configuration issue. Me personally, I've fallen victim to the same logical leaps - its not something simple...it MUST be in the code right?
Admin
Build and test time was increasing
Admin
Admin
You're still introducing needless complexities and added variables.
Admin
Sounds like a work environment that is about 8 metric shit tons better than 90% of work environments.
Only real issue is no isolation of dev and prod web service endpoints. A biggie, but I'll take any env with just that problem anyday compared to most places I've been.
Sign me the fuck up!
Admin
LOLOLOLOLOLOLOLOL. How cute.
F*** no.
We don't care if the developers don't give a shit. Following coding standards and guidelines would be explicitly stated in the contract.
We hold the design, code repository, procedure and process and everything because when shit like this flies, we tear up the contract and switch to one of the other gazillion code monkeys club out there. Try doing that when they have your design and specification documents and project plans.
Trust me, you do not want to out source anything other than the part that's fit for idiots. Because as you said, they don't give a shit.
Admin
If the number of unexpected * is not zero, either you've broken something or some rules would have to be reviewed.
Admin
These offshore developers don't quite grasp unit testing. Any test that's calling a real web service isn't a unit test, it's an integration test. The whole point of Integration tests is that they test integration, they are expensive to run and so shouldn't be run by automated build servers every commit or 30 minutes. A proper unit test should have mocked the web service calls.
It should also be said that no connection config for production should ever have been checked in if the work was being done offshore!
Admin
... Which is exactly the point of a unit test. After all, it's the code you want to test, not the data. You want to verify that for a given input your code produces the expected output. And for this, you sure as hell want to mock your data; how else would you know what you are actually testing? Which code paths did your unit tests exercise? Does it cover all error conditions? Does it even cover the "all is well" code path? Hell if you know, if you are testing with live data.
If you want to test that your code works well with whatever data happens to currently be in the real database, that's the responsibility of integration tests, as other people have already pointed out.
Admin
I'm not sure the burden of proof lies with the case in favour of stupidity infinity. ;)
Admin
I've seen sucky leap year logic, but this takes the Load.
Leap years end in 0, 2, 4, 6, 8, not just 0, 4, 8. But a year ending in any of the 5 evens is only a leap year on alternating occurrences.
There's a day 60 in every year...but sometimes it's 2/29 and sometimes 3/1.
And, if it is day 60, the author intended to just loop for the whole day?! After that, I need a double: WTF! WTF!
And, of course, that's not the worst. Because currentDate is constant to the loop...it loops forever. Thud!!! <-- head hitting desk
And to finish it off, we'd better hope the maintenance routine never encounters a permanent condition...or it's going to cause a "few" extra events...
Admin
That's a completely different point than what the specific test was for.
The test was to see if it would return any data, and if you use mock data, you introduce the possibility of producing false positives. If you connect to the correct database, you remove this possible point of failure.
Admin
P.S. currentDate isn't constant to the loop. If you have enough memory, tomorrow's new date will be a new date.
Admin
Fucking offshore developers are useless as tits on a bull. Translate that to Hindi.
Admin
Also, connection config is fine to have checked in... or at least some semblance of it. If you're using Integrated Security, no password issues to worry about, otherwise have some parameter substitution during your deploy process (i.e. "Server=myServerAddress;Database=myDataBase;User Id=[REPLACEME_UN]; Password=[REPLACEME_PW];")
We're using a combination of tactics:
Admin
Also, connection config is fine to have checked in... or at least some semblance of it. If you're using Integrated Security, no password issues to worry about, otherwise have some parameter substitution during your deploy process (i.e. "Server=myServerAddress;Database=myDataBase;User Id=[REPLACEME_UN]; Password=[REPLACEME_PW];")
We're using a combination of tactics:
Admin
Kamabakhta apataṭīya ḍēvalaparsa ēka baila para stana kē rūpa mēṁ bēkāra haiṁ.
Admin
कमबख्त अपतटीय डेवलपर्स एक बैल पर स्तन के रूप में बेकार हैं .
Admin
Unfortunate that this meaning is lost in translation. This is better and more relevant translation. IN real India nobody is using word अपतटीय for offshore.
सब्से बेकार है ओफ्फ्शोरे देवेलोपेर इतना बेकार तो बैल का स्तन भि नही।
Admin
TRWTF is having an offshore team doing your development and never doing a single code review.