- 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
Soo.. the wtf is that they broke the fix or that they couldn't read?
Admin
So the real WTF ist that "Development" doesn't, or doesn't want to, understand plain english comments?
Admin
A WTF where the guy being replaced WASN'T the problem!?! Awesome. It's nice to get a change of pace around here.
Admin
That's funny. Arrogant, self-righteous developers who think that their code is 100% perfect and bug free, when in fact it's not. And to top it off, they forced someone who, from what we're shown, knew what he was doing to leave the company due to their ignorance. Lovely. I've met my fair share of these kinds of buffoons. And for some reason they're always the ones who stick around with the company.
Admin
I guess they didn't understand Josh's fixes, because it didn't contain XML.
Admin
I like the way we feel, getting closer and closer to Josh's brillant WTF.. just to discover HE seemed to be the only sane guy around.
Admin
This is why descriptive names sometimes don't pay - idiots get defensive when you call their stuff "broken". better to just quietly fix it in a piece of code with an obscure name. I'll bet that's what Brian did, too - put the same piece of code back in under a name like "dbcleanup" with all the comments removed and replaced with a single "# fixes for 4.02.1 errors per ticket #NNNNN"
Admin
Well, this is again one of these "Consultants/Independants are only highly paid and we the enterprise(y) staff who know our work..." stories.
Not all consultants are bad. But what cann you do against stupidity and ignorance from the tech staff side. In this case they had more power. Maybe the project's sponsor should have done something about it. In the end he still managed to get the budget for another consultant.
I am actually happy to see that not all of us Paula Brillants. And BTW "Someone you know" "Brilliant" is German. :)
Admin
Should that say: "Josh just kept mucking around...?"
Admin
WTF with a twist. I really enjoyed this one.
Admin
I can only imagine the look on Brian's face when he discovered that Josh wasn't a slaptard at all and that the incompetent development team drove him away! I can almost envision the look of despair on Brian's face as a result of the battle he just inherited; his entire world did a 180.
Admin
Look on the bright side; about the most work Brian probably had to do his first week on the job was a bunch of uncommenting!
CAPTCHA: onomatopoeia ... are we checking to see if I'm not a robot... or is it just the bad typists we're trying to exclude? Actually... what a great idea :P
Admin
Don't you all realize that Josh just modified live data in databases just to get his poorly programmed update running? He add's "receivedDate"s for stuff not yet received just to do his stupid update, and just because he is not able to code correct update scripts.
Admin
I'm a different 'Brian' than the one in the story... but I feel like my current project could have taken the place. I've been asked to help people do C++, but they insist on doing C+ - and doing it badly. Worse, they really only want me to tell them they're doing fine. And I'm not a consultant, I'm an employee hired as a programmer.
Admin
Admin
You might actually want to reread the story...
Josh was not a developer, he was merely there to support the installation and upgrade of the software by technicians.
Besides, his fixes are perfectly reasonable from the looks of it. "valid date" and "no date" are two completely different things. An invalid date could be 25/25/1000 which is obviously impossible.
Admin
No testers, no bugs. The smart path to 100% bug-free software.
If there is a problem then it must be a user error. Our software does not have any bugs, it's enterprise software after all!
Admin
The real WTF here belongs to whoever let the developers set up and manage the database...
Admin
There should be a shrine to the memory of Josh
Admin
Hmmmm.
Ask around and find out the cost ($) per minute of tech support to correct problems in installation.
Log all such requests by the minute.
Present report to manager showing definitely how much the dev team's incompetence is costing company.
If nothing's changed, change job.
Admin
Ooo, I love the twist ending! Josh wasn't such a dufus after all! Great wtf.
Admin
In general, or just in this case?
Any decent "enterprise" developer should know enough about databases to set up primary key constraints, indexes, foreign keys, check the data going into and out of the database, create efficient queries, functions, and so on.
Maybe their work should be reviewed by a proper DuByA (hah, got the captcha in there) before being approved, but I don't see why developers should be separated from the database development, given that they're the ones who know what needs to go into the database.
Admin
What's the & in front of FindAndFixBrokenDBStuff for? Does one have to precede function call with ampersand in Perl?
Admin
440-555-0221?
I used to live in Cleveland and recognize the 440 area code. Perhaps this is Alex's number?
Admin
You are right they should know. And sometimes they even think they do. When I think that over 50 % of databases in an international environment are made out of fields and tables in a complete language mix, poorly designed, vqrchqr(1) columns, char colmuns where really not needed, vqarchars instead of ints, without PKs or FKs, and a single table making up the entire database. And then try to tell these people that they are creating an unbelievable mess (after all it's their company that pays you and they for sure make sure that there is work even in 20 years). You may for a while remain diplomatic but then nothing happens since "it works, anyway". And the review by the DBA will just be ignored: takes too much time and costs too much money. Hardware is so cheap today, it's easier to add another server and there you are.
Should-bes are nice but reality looks different.
Admin
mmm...have much empathy - but try it without CVS & the organ-grinder messing with live code (and insulting you at the same time via First Class chat) while you're trying to get a CMS sorted!
Admin
In older versions of perl the & was used to denote a function call. If you use parenthesis today, the & is optional. Personally, I abhor the old usage.
Admin
I was interviewing for a job and the tech lead told me "Primary keys place unnecessary constraints on you that can better be handled with your code." I laughed at his joke. But he wasn't joking.
Admin
Can't be; it's not a real phone number. No real phone number in the U.S. has the 555 exchange; it's reserved for use in films and TV and the like so that viewers don't call the numbers they see or hear in movies and harass people.
Admin
It's a classic horror movie twist: the victim manages to lock themselves away from the maniac, only to discover they've locked themselves in a room full of maniacs that the perfectly sane guy outside was trying to warn them about.
cue long dolly zoom on victim's face, to quick fade out and lots of blood-curdling screaming
Admin
That's true. I have to setup database stuff all the time. Any decent developer should know how.
That said, it's nice to have a DBA whose job it is to do those kind of things and regular stored procs, access, etc.
I liked this WTF. The real WTF was NOT Josh which was a nice twist on the tired old story of taking over for an incompetent moron.
Admin
Oh, really? Dial 555-1212 and see what happens. And 1-800-555-1212 is great for finding 1-800 listings for companies.
Yes, the 555 prefix has long been reserved for "fictional" use, but they are staring to phase that down to even a smaller range now (555-0100 - 555-0199, I think). Sounds like they are planning on bringing more 555 numbers on line.
Admin
After years of dealing with crummy DBAs, I just regarded them as bottlenecks and did whatever I could to work around them. A competent DBA is invaluable though. I can tell someone "Here is the information I'm passing to you and this is what I need back". I go write the code around it and they give me a black box that does it.
You need to know what's going on behind the scenes but you don't have to do it.
Admin
I don't get it. How come Josh had to create workarounds for a production release? After all, if the upgrade is utterly broken and segfaults on install, why on earth would the production team accept that? They should probably do a complete rollback and make the developer's lives a living hell until the issue is resolved.
Kudos to Josh though, hope he found a better workplace!
Admin
Probably the dev team managed to push the blame onto him - "it breaks on install, therefore it must be an install problem."
Admin
Admin
You'd think so, but one of my coworkers has been sent to the work at the gulag^W^W one of our customers and stumbled upon an easy to fix bug, so he just fixed it and committed it. Not much later, he received an e-mail where the original developer heavily chastized him for making "spurious changes" to his sacred code claiming that this could break all kinds of stuff (well, for one, it was broken before).
Lesson learned: Don't fix bugs in other peoples' code.
By the way, this attitude is not unusual at this place, and the general quality of their software is just what you would expect to obtain from developers who don't appreciate it when bugs are simply fixed.
The code is also ripe with many an x-thousand line FunctionThatTriesToDoEverythingYouEverWant With20TimesTheCodeASaneDeveloperWouldNeed AndUnfortunatelyFailsBecauseItIsFullOfBugs AndTotallyUnmaintainableSpaghettiCode.
Admin
If a developer can't think beyond a 2D "spreadsheet like" table for more complex data then they're certainly not "decent" in my book.
On the other hand I have had to integrate with an externally developed database, and that was a mindfuck - no primary keys - apart from one table, foreign keys not really done (certainly no cascades), no documentation, varchar(1)s for yes/no, etc. So yes, I appreciate that people who are not qualified are let loose on databases and their work gets too far before review can correct it and their clients don't realise they've paid tonnes of money for shit. Of course the repeat business to keep the system running ...
Sadly that's an issue with the corporate culture that doesn't realise the simple truth that a single good programmer who does things right can be worth 10 people who will create systems that don't scale, won't last, and fail regularly (oh, I'm not bitter here!). If you don't schedule and plan for regular code reviews for employees doing something new, then you'll be burned (captcha). If you're in an environment where this happens, then there won't be a DBA to do things correctly anyway, and certainly not the communications required to get the developer and the DBA talking to each other.
Given how important a business' data is, setting someone onto the database who has no experience is absolutely foolish, and a result of people not understanding the vast number of different disciplines within software engineering. Then that same person does the website, and later that year all the data is grabbed via an SQL Injection and you are wondering why.
Admin
I imagine a "dolly zoom" (http://www.en.wikipedia.org/wiki/Dolly_zoom) when Brian sees all the Segmentation faults.
"to suggest that a character is undergoing a realization that causes him to reassess everything he had previously believed"
Admin
I wish I could say I have never been told that myself...
Admin
I'm getting a flashback to The Others.
Admin
I'm getting a flashback to The Others.
Admin
Smell that, its a turd of a PM or lead developer.
I've been Josh before. Found a bug that the lead insisted wasn't and was programmed that way with good reason. The PM took the lead developer's position.
One day right in the middle of a production run. . .boom. The entire process quits working.
The bug was to give a network communication .25 seconds to complete then assume data had finished transmitting.
I had predicted the crash 3 months out and was ignored.
You go Josh!
Admin
Developers who do not realise that in all cases a SEGV indicates a program bug? Brillant!
Admin
What kind of company doesn't have a development database against which its products are tested? That's the real problem in this story -- it sounds like only a production database existed. A bug that caused an upgrade to fail should have been caught by developers, not customers.
Admin
Here's a hint from someone who's been there. If the leads also tell you that documentation is a waste of time, and that configuration values should be hard-coded because of "security" concerns, avoid working for that company at all costs, even if you're desperate for work.
Admin
Great WTF! Josh hereby is added to my personal "List of cool people".
Admin
Ah, this is the great question we all (except rock stars) need to ask ourselves. When making waves in a development shop, are we Josh or are we part of the crowd who thinks Josh is an idiot when he isn't?
I always think I'm Josh, but I've been in the crowd.
Admin
It's still a joke. Just a question of what (or whom) you're laughing at.
/muhahaha
Admin
Usually not, but in some cases it can be used for disambiguation.
Otherwise you'd have to say MyPackage::print, though that would arguably be more readable.
You would also use the ampersand if you wanted to take a reference to a sub, or make a function call itself recursively.
Captcha: smile (How can I when I have to use IE to post this comment?)