- 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
He should've tried telling them to rethink their suff a bit more frist.
Admin
Why is it whenever i'm up at 3am and the first person to read 1 of these stories, I can never come up with anything good to comment about.
TRWTF is that he "Gets this a lot" and doesn't see Monty to be the problem. His open door policy sucks. I'm bored. I'm going to bed.
Admin
No surprise. The typical "Bob knows what he's talking about because he's been with the company forever" syndrome, even when Bob is a complete moron that only knows one way of doing things.
I find it very disturbing how common this attitude is in companies. Just because someone has been there for years doesn't mean they're good at what they do. They might know a bit about the system internals but that doesn't indicate that their choices are always the best.
Incidentally the company I work for uses a similar "database-driven IPC framework" for most everything. We have entire application workflows written in huge stored procs that pass data along via the use of "parm array" tables and data logs. This is the issue when you have people that only know one bit of technology; they shoehorn everything into using that technology because they don't know any other solution.
At least in this story the protagonist had the common sense to leave. A place like this is only for the desperate and inexperienced as a stopping point because good people don't have to deal with it. I've constantly seen this behavior and it never turns out good in the end; it's best to just cut your losses and find a company that isn't so clueless.
Admin
Walking out, Stan did the right thing. He seems to be bright and eager, but he would not be able to advance this skills in an environment such as the one shown.
Will it change something? No. Unless someone David sees as a guru tells David that he should give Monty the boot, David will keep Monty in high regard and will do his best to provide the worker bees to keep the shop going.
Admin
This must be an old story.
In times like this, the WTF is walking away from a job that screams JOB SECURITY for the next decade.
Admin
Job Security isn't worth not having any advancement opportunities or skill evolution. I have a fairly easy (read: boring) job that probably has security for as long as I want (apart from me and one other person, everyone else has been there at least 4+ years, with some over 8 years), and I loathe it every day because it's stagnating my skills and I won't ever be able to move up in the ranks.
Admin
You know that this story can come from any place, not only your neighborhood where everyone should lick the boots of anyone who offer a job, right?
Admin
Having been one myself at one point, I'd like to point that the "old guy that's been there from the start" some times has some experience that may result in non conventional decisions that ARE the right decisions if you look at the whole picture.
Of course there is no real way to justify what is described here, but it may be safe to assume the story is exaggerated.
However, the old-timer typically has the unfortunate habit of not explaning the reasons behind decisions, because they already know what's best. (I know)
Admin
There's always "dead man's boots", whether by natural causes or assisted...
Admin
You can (and should) also advance your skills with private projects, but if you also want to have a family life how many hours a week can you spare for personal skills advancement? 4 hours? 6? Better to spent the 40+ hours you are working anyway in an environment that facilitates and encourages skills advancement.
Admin
FTFY
Admin
I feel like the clue is in the question. ;)
Admin
Not sure that's what MiniMax was getting at. I see this in quite a few TDWTF stories too and I'm not sure that I believe that developers, even in the Land-of-Plenty, are quite so comfortable at simply quitting, as the story suggests.
I concur wit ObiWayne, but I think the point I would make (and MiniMax?) is that there is a difference between simply walking out into the night sky, and resolving to find a better job; plod away at the current horrible job while actively applying and interviewing for that better job.
Admin
TDPHB.
Catpcha plaga: "The company went bankrupt because of a plaga of PHBs."
Admin
Admin
Well, this makes me happy to have a boss who lets me do things the way I want to do them, not the way he wants me to do them. I really do not understand why Monty didn't let Scott demonstrate the WCF solution before knocking his brains out with a horrendous and over-complicated spec. I have been programming in C++ since it started as a commercial language and my skill set is constantly expanding. I know DHTML, JavaScript, and Perl. My favourite language remains C++ despite the many pitfalls and traps it can introduce to the unwary or novice programmer. And guess who suggested the IDE for me to use for our main development environment? Me! And guess who likes it so much that he now uses it himself? My boss! And guess how our business is doing? Really well, with some "more than satisfied" clients.
Admin
Stan, not Scott!
Admin
Yeah and unemployee in all decades following. You have to keep working on things that "normal" people actually want/will pay for. Just because you have found a company that does things really poorly doesn't mean you need to spend your career doing nothing but junk. Part of being a professional is saying this ain't no good and I won't work this way. Would you like a doctor that keeps on using methods below the standard of care just because the hospital has a kick ass legal team and wants to keep treating patients like they did in 1850?
Admin
So obviously this is PHP's fault.
Or wait... there's supposed to be some message about the remaining time to be reported inappropriately.
Amirite?
Admin
Admin
The fact that Monty has been there forever actually screams out that Monty is way overdue for a shake-up. Spending too long at an IT position means you're not moving with the times, and is a sure-fire indicator of someone who is at least approaching the terminally incompetently unemployable.
Admin
Although I concur with you that "simply walking out" is probably hyperbole; even in the land of plenty I think they expect you to hand in your two week's notice.
Admin
Stan shouldn't have waited for his boss to finish banging out a 45 page spec, if he knew what the customer required and went into his office early on to explain the technology before the spec was written Stan would have had a better chance of getting his ideas in.
Once someone puts a lot of thought into a spec and finishes it they have a lot of vested interest in seeing it done, for their own satisfaction.
Admin
Admin
Like David would probably do when Monty suggested the same.
Admin
Sounds like a case of the Astronaut Architect (http://www.joelonsoftware.com/articles/fog0000000018.html).
Admin
TRWTF is that he should have implemented his (correct) solution. He had nothing to lose. It sounds like the WCF approach would have been easy. He could have implemented the WCF before he did anything else and demo his solution. The boss would have had trouble arguing with something that was "done". He might have been canned for disobedience and being a loose cannon or he could have learned what he had overlooked. Either way, he would have left with a win (even if he was the only one who recognized it).
Admin
Don't get me wrong; having job security is a good thing, but not when you sacrifice all your long-term employability and skill development for it. Otherwise you spend 5+ years in a shop that uses old technology, or new technology poorly, and if you ever have to leave for reasons out of your control you won't have desired skills. In some cases the raw experience can substitute if you have a willingness to learn, but in many cases you won't even get the opportunity since a glance at your resume will show multiple years at one company, doing the same thing day in, day out like the factory worker of old.
That's a terrifying position to be in. There ARE companies out there that constantly advance and improve and these are the kind of places you want job security in, but they are few and far between compared to the shops like the one described here, where a well-meaning but clueless manager insists things be done in a poor manner because it's all they know and all they care to learn.
You could put up with it or try to change it, but why bother when another company doesn't have that problem in the first place? Why deal with "Monty" and his desire to shoehorn everything into the database when you can work at a company that encourages using the correct tool for the job?
Admin
The real WTF is the complete lack of XML in the story. Obviously they should have used the databases to store XML for real extensibility.
CAPTCH: esse I had to write an esse about XML once. It explained in great detail about how it should be used in databases.
Admin
Actually I think Monty's solution is not the WTF. Who did never reinvent the wheel because he didn't know that there was already a good solution?
And that there were change requests by the customer also don't have to be Monty's fault. I think a certain amount of change requests is normal in every project.
That David trusted Monty is also no WTF. If he always gets working solutions from him and the customer is happy, I would also trust him. If he hears Stan's complaints he probably can't judge which solution is better because he's not technical enough.
The only WTF I can see is that Monty wasn't listening to Stan's suggestion, but this could have two reasons:
If I see how bad Stan had already judged about Monty before the project, I think the second possibility is not too unlikely.
Admin
Exactly my thoughts.
Admin
If you can't explain why something horrible/weird is better, it's not better. And if you just can't be bothered to explain it, then you're not functioning correctly in a team.
Admin
(Haven't we had a lot of stories with this plot before?)
Continuation of story is always left out:
Admin
Exactly. If you're willing to just walk out, might as well just coded it the right way and risk being fired.
And the job search process should have started the second he got a 45 page document of gibberish.
Admin
Executive summary: Peon-level developer fails at communication, has problems as a result.
Long version:
Stan must bear some of the blame for the flow of events here. He says, "There’s something in the .NET framework called WCF that would let us do this," which sounds to me like he doesn't really know what he's talking about. After all, he said, "something in the .NET framework called WCF," which screams, "All I know about it is its name." ".NET's WCF component is designed to do what's needed for this project," is better, but still a bit waffly. ".NET's WCF is perfect for this task," is better still.
And the response to Monty on the debuggability concern is, "WCF has tools for all that." If you have time (unlikely in this case, but confident responses without waffly weasel words may mitigate this problem), you can then explain what those tools are.
In essence, we see again the poor schmuck who is named as victim of the WTF being a significant contributor to his misfortune, mainly because of his inability or unwillingness to communicate his ideas effectively.
I'd guess, though, that Monty's WTF-fu is strong enough that it wouldn't make any difference, but Stan might have been able to get some leverage with David. Of course, Stan had some major suckage there, too. After "the course of weeks" (a vague phrase that nevertheless manages to convey a quantity rather more than two or three) is far too late. He should have taken his concerns to David fairly quickly, within a day or two, maybe three or four at the most. The way to proceed is to carefully explain the benefits of the WCF approach (lightweight, designed for the task that's required, usable for similar future projects elsewhere in the product, etc.), how it counters Monty's objections (to an alternative solution), and then to (possibly) explain how Monty refused to even listen to any suggestions, much less explain why his (Monty's) way was better.
Language to avoid includes anything that might be construed as a personal attack on Monty, so Stan has to resort to things like, "It worries me for the company's sake that Monty wouldn't listen to my suggestions, and implied by his tone and behaviour that there was an 'or else' attached to 'do it the way I said'." (Yes, this a bit close to a personal attack, but the implied threat comes a bit close to a personal attack on Stan, and sometimes (but only sometimes, and even then carefully) you have to not so much fight fire with fire as at least show it that you have some fire yourself and are not afraid to fight.
The final thing is that he should carefully ask David for authorisation to build a prototype of a WCF-based solution. By coming to see David immediately with this proposal, he sends the message that he is trying to head of the large delays
Addendum (2013-06-19 11:25): ... head off the large delays that not using the short-and-sweet WCF solution would allow him to avoid. He is being proactive rather than reactive, to borrow the manager-speak that effective developers who don't get WTFed to death can manage to speak.
Addendum (2013-06-19 11:26): I suck at typing today. "... head off the large delays that using ..." Note the NOT that I removed here.
Admin
This, pretty much. Demanding that the horrible/weird way is better simply because you've always done it that way, or never bothered to look at alternatives, is a bunch of rubbish.
In many cases the longterm person might have valuable insights, but they need to be in a role where they don't have absolute authority on what gets used; in this way they might do some investigation and say "Hey we could use the database to handle these transactions" as throw it up as a potential idea for solving the problem (that could later be dismissed when the developer brings up WCF as an easier/faster solution), but not "We WILL use the database to handle these transactions because I'm the boss and I said so".
I think in most of these stories the problem isn't necessarily with the person with the crazy idea (an idea might be crazy, but when you're brainstorming potential solutions it's worth suggesting anything, no matter how insane it might prove to be), but the fact that the person with the crazy idea is in charge and insists the crazy idea get used in lieu of better ideas.
Admin
I currently work with one of these "been here for 16 years coding Delphi and trying to pick up .Net" guys. I wrote some simple C# Lambda statements only to come in the following day to see a note explaining, "I rewrote your code into LINQ to make it easier for me to understand."
My first thought was, "If you don't understand the lambda notation, then how do you know if you rewrote it correctly?" (answer: they weren't complex) Let's just say it was the first of many red flags.
Admin
Admin
Admin
That's a WTF, I love this website, but no where close to being that dedicated. Heck, work is barely enough a motivation to get me out of bed in the morning.
Admin
Admin
CAPTCHA: mara -- has become Monty now
Admin
When your only tool is a database, every problem looks like a table.
Now all I need to do is come up with a schema to represent hammering nails into wood to make a building.
Admin
Sure. Even if the stories on here weren't anonymized, I'd be very reluctant to draw conclusions about people or companies mentioned. Surely we've all had experiences where person A tells us of a conflict with person B and we walk away thinking that person B must be a real idiot or creep or whatever ... and then later we hear person B's version of the story and get an entirely different picture.
There are lots of stories on this site whose basic theme is, "Bright young programmer starts a job at a new company; stupid moribund old-timer insists he implement a lame solution to a problem; management backs the old-timer just because he's been around forever even though his methods are idiotic." I don't doubt that in some cases that's an accurate description of what happened. I've been there. But I've also had plenty of times when I was the crusty old-timer and some new guy comes along who has no experience, no idea of how the company's systems work, and no idea of what our customers want or need, and he comes up with some blue-sky plan that would require re-writing 80% of our code for a trivial performance improvement, or which ignores all sorts of real-world complexities, or which sounds great but which we tried five years ago and found didn't work and he won't listen to the explanations why not but insists we must have just done it wrong, etc, etc.
Admin
Bad clients -> bad code.
Now for the proof:
Bad Clients -> Lack of competitors willing to deal with bad clients -> Stagnate market -> Suppliers who are unwilling to accept cost of change -> Suppliers who fall into poor or outdated solutions -> Suppliers who build crap on top of poor solution to keep monolith moving -> Fragile monolithic software that grows too complex to maintain -> Software that breaks when changes are needed -> Unsolvable problems -> Company unable/unwilling to hire new talent to renovate -> Company that hires unskilled workers to program to throw more weight at problem for a cheaper price -> bad code.
Admin
I'm always suspicious when someone tells me that he can't explain why something he says is true, that it is too complicated for me to understand or he doesn't have time, but that I should just take his word for it because he is an "expert".
I notice this a lot in discussions of controversial subjects, especially when they're on TV. Whether it's a question of science or economics or politics or whatever, they trot out someone who they tell us is an "expert" and who declares that all experts agree that the truth is X. Of course if the subject is controversial then by definition there must be lots of people who disagree or it wouldn't be "controversial", it would be "common knowledge". Maybe everybody on the other side is an idiot, but often they have equally good credentials.
If you have solid evidence to back up your position -- scientific experiments or historical documents or logical arguments or whatever is relevant to the question -- then show me the evidence. If it's convincing, then I'll be convinced by the evidence, not by the fact that some expert said so. If you don't have convincing evidence, then no matter how much of an "expert" you are, your opinion is just an unsubstantiated opinion. Either way, I don't care what the expert said, I just care about the evidence.
I particularly get a laugh when someone declares that we MUST accept what he says because he is a SCIENTIST and science has proven so powerful, giving us computers and moon rockets and brain surgery and so on. But the person making this claim is almost never someone who has, in fact, invented the computer or the moon rocket or brain surgery, he just lumps himself in with the people who have done these great things and then claims credit for their accomplishments.
Admin
I see a red flag in this. Fluent syntax LINQ uses lambda expressions to express filtering conditions.
Before I declare WTF one way or the other, could you give an example of the lambda expression and how it was rewritten? As a C# developer, and LINQ/lambda enthusiast, I'm idly curious.
Admin
???
Object.SelectMany(lambda)... Object.Select(lambda)...
Maybe????
delegate ... Condition; Object.Select(Condition);
?????????
Admin
I always wonder about these stories that end with "and then he told off the boss and walked out and never came back".
Few people I know are in a position to do that. Because there's this annoying little fact that intrudes on most of my plans for such a dramatic exit: When you quit your job, they tend to stop paying you.
I've had plenty of times that I've quit a job because I didn't like the way the company was run. But it was always after first finding a new job.
Maybe if you come from a wealthy family, or if you're some young single person living with your parents' so you don't really have to support yourself, you can just quit on a moment's notice like this.
But me, I've got a family to support, including a mortgage to pay, electric bills, gas bills, water bills, etc.
I once found a new job in a day. Maybe I could do it again if I had to. Usually I spend a couple of months finding a job that looks promising. How do I know what the job market is like at this particular time for someone with my particular skills and experience without actually looking and finding a job first? That sweet taste of triumph when you tell off the best probably gets pretty sour when you lose your house and are living in a cardboard box under a bridge.
Admin
Sure, WCF would have been a quick win, but doesn't solve the general problem.
TRWTF is that Stan didn't recognize that Monty had designed the back-end to the next greatest ETL tool. All Monty needed was for Stan to build a nice GUI on top, and they both could have convinced David to turn it into a product.