- 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
You know the :wtf: is strong if the
embellisherFP author gave up coming up with stacktraces somewhere halfway.Still, a respectable list of 19 well done class names!
Admin
New author photo looks more corporate, but somehow also more ominous and threatening. Awesome.
Admin
Wow, fired after four days? I'm not even... What? That's barely enough to sign the paperwork that says you should be taxed!
Admin
Sure hope it looks corporate, it's on my entry card to the building.
Filed under: also I finally don't look like Lloyd Christmas after returning from prison
Admin
Looks like George is going to be a heavy user of this
Admin
The wasted time is very annoying. What do you have to show for that on your CV?
"For four days I worked at fucking-morons-inc, who failed to provide me with the promised work and instead gave me some bullshit to do. I hope they fucking crash and burn."
I was once hired as a software developer and got given a server migration. Over a hundred domains of various shapes and sizes needed to be transferred, based on lists excel spreadsheets which weren't up to date, with domains which seemed to be transferred successfully or not depending on which day you checked it, and all set up by a company that now consisted of one guy (who I will call 'Cunt' because 'spacetime-wasting wilfully-ignorant blamegamer' is a bit long) who had 'merged' with our company but didn't know much about it.
Every single step seemed to require a phone call to a domain's client. When there was no number and I tried to email I had to use some bizarre piece of machinery that couldn't send to multiple email addresses (seriously, I asked about this) and somehow when Cunt had failed to keep his CRM with the contact details up to date, this was my fault.
Anyway, I'll leave it there because I've run out of mood stabilisers.
Admin
For some reason, I am always reminded of Rasputin.
Admin
That's because I am also, in fact, Russia's greatest love machine.
Admin
TRWTF: "Don't worry, we'll have something real cutting-edge for you soon!""
Admin
Admin
Back to the article itself. Of course they kicked his lazy arse out the door. He gave a one-hour estimate and wasn't finished four days later. (Arguably, he could be like Calvin and say "I've almost started" after those four days.)
Admin
Do Exceptions like to be Fondled? Did you ask the Exception's permission to be fondled? Is an incipient "Exception Sexual Harassment" mandatory?
Admin
By virtue of scaring the security staff so much that they let you in?
Admin
For a 5 million LOC codebase, he didn't even see before? I'm sorry but TRWTF is definitly George himself.
Admin
I've been in this exact same situation. Almost the same story.
This was a particularly weird codebase where the sole maintainer was extremely "productive" in terms of producing LOC or content in general. I could almost describe it as though the developer had some kind of a fetish for voluminous text. This was hoarder behaviour. The extreme opposite of one liner fanatics.
The error handling was strange, merging two patterns where only one was needed. It would switch from exception throwing to error class properties like a zebra, catching errors, setting object properties to the error state and sometimes throwing exceptions when error states on locally called objects were detected only to be caught again and turned into new or duplicate error properties on the calling object. One method name in 5 or 6 classes and doing completely different unrelated things each time. Similar functions (siblings) often had their names swapped (I.E. Something like deleteItemById and deleteItemsById would be swapped, in the worst case an update might delete and a delete might update).
Another thing I remember is that some classes and functions didn't match what they were supposed to do at all as if someone had copied and pasted them changing the contents later to meet a new purpose without changing the names to reflect this.
Each view defined a strange model class at the top that had been copied and pasted to the top of every view as far as I could see which the rest of the view used. This is one example but the entire structure of the program was convoluted like this featuring all kinds of invented patterns that appeared to serve no purpose other than to increase the LOC.
I couldn't get anywhere causally browsing the code. There were no shortcuts, only the scenic route. I asked for some kind of a spec or design and was given a document that turned out to be table after table of tests. Under all the time pressure to get anything done, without thinking I printed it and was mortified when over 1000 pages came out. I returned to my desk with a wad that rivalled the yellow pages. This was not a big ball of mud, it was a mud planet. A mushy brown soggy planet entirely covered in mud. A miles deep ocean of mud.
The bloat was everywhere and it was back breaking. I had a very hard time getting into the source because of a mangled and massively bloated permissions system on a default local install that would grind the system to a halt with a handful of users. Loading a page would take ten seconds to a minute. There wasn't much data in play so I can only imagine that somewhere someone had done something that was n*n or even n^n. It was loading millions of things, making millions of calls. It's enormous size and excessive code execution made it near impossible to debug, trace, profile, etc. Whatever I did would rapidly descend into an indecipherable journey chaotically through hundreds upon hundreds of classes and thousands of functions. A single method or a handful being called I can handle. This was something else.
The LOC count was not because of library bloat, someone had actually created a few million lines worth monstrosity which I'm certain could have been created in 50K lines or less. No doubt the copy pasta was strong with this one. What really pushed me to my limits was the God Class. A super-massive file consisting of tens of thousands of lines and performing a wide range of core functions. Just including this file would noticeably lag the web application.
A lot of things I can deal with but this level of bloat sapped my productivity to 0.001% of what it would normally be. I have my own problems, many of which I contribute to because I have to often deal with codebases that are based on a legacy codebase, which had no proper spec or architecture, often use entirely the wrong technologies, etc. I can't always easily afford excessive comments, documentation, test cases, etc in this case because I know sooner or later everything will have to change again. However any good developer knows that if you can't do anything else, at least keep a small clean footprint to keep things maintainable. Personally, I also give developers at least a month to really get to grips with a complex codebase.
So in the end I lasted only 4 days as well and for those complaining, I can assure you, that's a good thing. Saved me from a life of hell. I wonder if it was the same company.
Admin
Agreed. That's almost unbelievable. And he seemed to think that gave him plenty of leeway. A new recruit is still waiting on Dave to give him access to the such and such so he has what he needs to ask Mary to authorize him to see the code 3 hours later.
Asking him for a time estimate is bonkers, him saying an hour is madness. The only times we estimate an hour for something WE did is when we really mean "probably 3 minutes, but just in case that breaks something I want time"
Admin
There are 2 ways of handling situations like this:
Anybody who believes a new developer will do anything particularly productive during his/her first week is either lying or kidding themselves.
Admin
So many of TDWTF articles begin with the protagonist entering a new job and end with him leaving the company or at least preparing to leave.
One could imagine that this is always the same hero, going through an endless series of terrible companies and jobs. That could be a plot for a very depressing TV series.
Admin
“Quantum WTF”?
Admin
https://www.youtube.com/watch?v=8xRqXYsksFg
Admin
Weirdly, having watched that video, YT thinks this one is a good idea to do next:
https://youtu.be/C6-TWRn0k4I
I don't see the connection, but it's great anyway. :)
Admin
Pfft. I spent 4 months at a company and accomplished nothing, and it was a better article too.
Admin
Expectations vary by employee.
Admin
You've spent several years at this website, and achieved considerably less than that.
Admin
More Real WTFs:
Giving an hour estimate for fixing a bug on a codebase you've never touched before.
Believing a time estimate for how long to do something from somebody who's never seen the code.
Firing a new coder after a few days because they didn't fix your WTF code fast enough.
Automatically bailing because the code is awful. Yeah, almost all code that actually does anything useful is objectively awful. Suck it up and improve it instead of quitting at the first glance. That's our job. You aren't going to get far if you refuse to work on anything but new projects in the trendiest language, where you will probably build your own WTF architecture.
Admin
You think that's bad? I was giving some specifications for updating a system where the specs had be cut and pasted from another document and referred to things that haven't been pasted over and only existed in the original document. It would say thing like, "If xyz, then go back two paragraphs and do what it says there." But two paragraphs back didn't exist in this document!
Admin
ErrorJuggler
I hope that throws and catches the same three exceptions over and over and over...
Admin
I think the mistake was on George's part, too, for thinking that he could easily find a configuration error in a 5-million-line legacy monstrosity and giving an estimate of an hour to find it.
Then again, I was at a place for 3 weeks before they decided that I couldn't "do the work" that they didn't even bother giving me. Luckily I was a mere contractor.
Note to self: Read TFT before commenting.
Admin
Drama is good, with a little polish and some code snippets this could be a nice TDWTF article of its own
Admin
Liar. He proved without any doubt that he knows nothing about Linux :smiley:
Admin
It's not everyday you find a Boney M reference on the internet. My heads off to you sir!
Admin
God, it would be utterly horrifying if we decapitated ourselves to show appreciation for another.
Admin
The hero with a thousand interfaces.
Admin
Had a similar experience at my second engineering job: hired to do electronics design for locks (after a six month interview process), then the company gets bought out and I was relegated to drafting and mechanical engineering work.
My 3-month evaluation happened 9 months into the job, and I was criticized for not being "independent enough" or "knowledgeable enough" about mechanical engineering and drafting. The best part? I was rated at something like 70% efficiency when the standard was 90%+. I countered with the observation that that was very good considering I have no mechanical engineering or drafting training whatsoever, and that if they don't have any electronics or computer work for me that maybe they should show me the door and quit wasting both our times.
My supervisor acknowledged my points and said he would get back to me.
A week later, I was reassigned to network administration of the Novell network, given a 3% raise, and assigned 7 new NT workstations to build from scratch for the engineering team to run the new Pro/Engineering program.
Note: It helped that I had earlier found out why their 100Base-T network was barely communicating at 10Base-T & corrected it: Instead of the standard Ethernet 12364578 pairing, the crimping was all 12345678. :facepalm:
Admin
At least you know that the paragraph is missing. Running findPerson and finding that your person has not only been found but has also been turned into a Penguin it's much worse.
Admin
It's relative. I'm sure people can deal with a lot of things but no one can or should put up with everything. Personally, sometimes it's the small things that get me because they are so easy to do right. In this case it's more about the big things.
If you started a job and were told to find a lamp in 10 medium sized cardboard boxes and you had 30 minutes to do it or you are fired then complaining would be a sign of an attitude problem.
If you change one variable, the number of boxes, to 1000 then any reasonable person would bail. One day someone will get lucky and it will be in one of the first boxes.
It wouldn't surprise me if a lot of people suffer this fate. Boxes are easy to quantify, code is a different beast altogether.
So these companies don't want skilful developers, they want lucky ones. Given such Akira codebases luck is the only thing that is going to help such a developer.
Admin
Admin
Paging @onyx
Admin
It reminds me of the band Type O Negative.
[image]Admin
In the past, I've been on a project funded for around 20 million whose entire project plan was a cut-n-paste job. :smile:
Admin
That would be nice, but what if the micro-manager was very explicit in wanting "minimum size fixes"?
Many a time I've wanted to throw away thousands of lines of bloated code, but the boss wants a one-line patch.
Admin
This strategy creates a fiefdom very, very effectively, and there aren't a lot of counters to it. But, if you can get away with a couple lines extra, maybe you could nop thousands of lines of bloated code instead :speak_no_evil:
Or, beat them to it, with half-line fixes.
Admin
Been there, in reverse.
At my previous job, I was hired as a contractor "developer" to code some piece of a larger system. On day-1, they introduced me as a dev-manager. In the first two months, they laid off 2 of the four people on our team. By 3 months, they had given us no requirements (after 6 months of the BA's trying to figure out the requirements). Finally, they laid off all the senior folks across all the dev teams in order to save money.
This left only 1-2 junior developers on each project team, in case the requirements ever materialized.
I've been out of there about a month and I'm still hearing reports of no requirements/work to do.
After 30+ years of doing this, I don't know which is worse; developers who can't write decent code in well-established ways, or managers who simply can't manage software development efforts.
Admin
Emmm... Why do you want to show a 4 days work on your CV?
I'd simply discard that and pretend never worked there before.
Admin
Good luck on trying to refactor intentionally made-hostile maze of factory classes and methods. That thing can be more challenging than trying to work of multi-decade-aged codebase of spaghetti code.
With spaghetti code, at least the codes are put together and you can "divide and conquer" it. With code in abused factory pattern, it can be difficult to isolate the side effects. If you want to write complete test suite for one trival change, you can find yourself have to write hundreds if not thousands of test classes before you can start modifying it on a 5M-lines codebase.
Admin
I was looking for that exact clip this morning to mail to a client. Instead I found the "do you always multiply your repair estimates by a factor of four?" version from whichever movie that was--5, I think.
Admin
I think that was Wrath of Khan? When they were all "We knew the communications were being monitored so decided to fudge everything."
Admin
Actually I think it was at the very beginning of STIII, on the way back to Earth, before they found out the ship was to be decommissioned[1].
[1] no spoilers for you! If you haven't seen it by now, you probably never will. Also, Rosebud was his sled!
Admin
Admin
Filed under: Something seems wrong with the selected-text quoting...