- 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
And then in 10 years, you get laid off, and can't find a job because your skills have atrophied so bad.
Admin
If Stan is that good and Monty is an idiot (that thinks he
s a genius) then Stan needs some idiot (that think he
s a genius) bullsh*t."Monty, this is a great design, I really see this being a deal-breaker, it
s awesome, I
m right behind you on this one and if anyone else cant see it then screw 'em. Now, I wanna get this one just right so I
m gonna take a few days to throw together a model of how it`s going to hang together - you know, iron out those wrinkles before we start."Aaaand, two weeks later....
"Monty, the model's all done and it
s really gonna help, there
s all the logging laid out and the debugging is real simple and, you know what, even the model runs super-quick. Are you sure you want me to put another 8 weeks doing this again or do you wan to go right ahead and say you`ve brought the project in 6 weeks early?".Admin
My Code:
His Code:
Admin
I especially love the people who spend all day trying to explain and understand, but then are so swept up in being right that they are missing the deadlines. Now, bow before your corporate rulers!
Admin
To be fair though that's a pretty pedantic example, and arguably his version is more readable than the one with lambdas.
I personally only use lambdas for very simple cases where it amounts to Where(x => x.Id == id), anything more and I use the sql-like syntax for readability. The example given would be simple enough that I'd use either or depending on my mood at the time.
Admin
Exactly, you get paid for creating commercially viable products!
Admin
Admin
Fair point. No, I wouldn't go and change code just because "I like it better this way", especially over something minor like that. What's next, changing every code file in the repository to use a different brace style?
Admin
I find the fluent version much more readable.
And unless there are unit tests that very tightly constrain the behavior of the code, why would you monkey around with someone else's well-crafted linq? You're just risking the possibility of introducing a bug for what? Supposed readbility?
The non-lambda version of the code just gets compiled into a lambda version anyway. Resharper has a refactoring that converts one form into the other for you anyway.
Admin
They let you use XML? How contemporary. We use SGML for pretty much everything.
Admin
I'm waiting for a Markdown-centric DBMS.
Admin
Why is it returning x.ToArray() ? why not just return x? Does the query need to be enumerated then? Why was a call to AsEnumerable() made wouldn't the .Where return an IEnumerable<T> without it?
Admin
Admin
I wrote the version that uses AsEnumerable(), and I believe it was necessary to get the .Select() method to work correctly, but I don't remember the specifics of why.
Admin
http://msdn.microsoft.com/en-us/library/bb335435.aspx
Admin
Until the "new way" involved safety procedures that he refused to implement and within a week every lineman in the company flat out refused to work under him, and complaints and legal threats were starting to flow uphill.
The guy got kicked sideways into a job surveying transformers for the two years until he hit retirement. Ten years later he STILL had a massive hate for the guy who'd drawn the short straw and been the one to reassign him.
Admin
Actually, Monty is the president's daughter.
Addendum (2013-06-19 17:56): Gah. That's what I get for coming late to the party. Someone else has already made this joke.
Admin
Haha what an idiot, a good thing that he left that company
Greetings, will quatos - [email protected]
Admin
I'd say they are both idiots in this story, but that stan is the bigger one.
Monty was building a service bus, with fault tollerance and transactional support. This is far better for inter application communication.
What happens if one app is down while the other needs to update data in it? What happens if need to upgrade an app? What happens if they need to share a transaction?
The only WTF was that monty didn't want to use an existing service bus, and that stan didn't know such a thing existed.
Admin
Admin
TRWTF is the proposed solution to chose web service/WCF for what sounds like to be a IPC problem asking for a message queue/service bus.
Admin
Although I took Stan "weeks", at least he did the right thing...personally a response of:
"No, You need to find a different developer who will blindly implement rather than using his best professional judgment"
at the very beginning could have saved a lot (for both him and the company).
If people stood up for what they believed in, then pretty soon the "David"'s of the world would begin to see the light, and the "Monty"'s of the world would be no more...
Admin
WCF comes with a binding to Microsoft Message Queue that can be used to provide persistent or non-persistent queuing of messages.
Queuing in WCF
That's got to be better than inventing it yourself using a custom database. MSMQ has transactional behaviour (if required). Behind the scenes, it uses the ESE engine also used for Active Directory and Exchange.
Admin
Before I leave I would first secure another job.
Besides that, you also need some balls. If you really think your idea is better, he should have said that more clearly to Monty's boss and made a nice graph on how much time (money) can be saved by his approach.
And if that did not work I would just go ahead an implement my superior solution anyway. Worst case scenario is you get fired (same outcome as walking out the door) but there is also potential for a big win if it works very well and the customers are very happy.
Admin
Hey, I think I work with you :)
Admin
Admin
Actually, no. It's easy to argue with something that is done.
Boss: For complex reasons we have chosen to be a Windows/.Net/SQLServer shop. We may have some pre-existing apps that are in other technologies. While we will continue to support them, we will not be pursuing any new development in other tech without approval from managment.
[some time later] Stan: Look Boss, I just spent 6 weeks coding this app in Java/Oracle, 'cuase it's easier for me and faster.
Boss: Stan, I told you 8 weeks ago that we had a technology direction to follow. You've broken it in at least two significant ways. We don't even have anyoen besides you who knows Java and Oracle. You're going to have to re-code it, and this time with much closer supervision because you can't follow direction.
Stan: You're a retard. I quit.
Boss: You just saved me a bunch of paperwork. Don't let the door hit you on the way out.
On top of that, Stan never should have gone above Monty's head to David, and David should never have entertained Stan's complaints.
Monty's actions were neither Illegal, Immoral nor Dangerous.
Admin
Admin
This is one of those WTFs where the real WTF is taking the story at face value.
Admin
TRWTF is David. He allowed Monty, a (lousy) manager, to act as an even worse architect. The two roles really don't share any skills, and it is very unlikely that an individual will be effective at both. Because he supports Monty's failure to delegate, David likely is a poor manager who hires other poor managers.
The problem is systemic, Stan was right to leave.
Admin
Wouldn't that make TRWTF the fact that David's manager would allow a person like manager to allow a horrible architect like Monty to stick around?
TRWTF-CEPTION!!
Admin
Admin
About the same here. Only difference is I am employed at a place with rather loose hours, a relatively relaxed atmosphere, good/nice people, average benefits package, AND the freedom to develop software on my own time. So I go ahead and do that last part. If I'm ever let go, I know all the latest stuff and therefore will still be relevant in the industry.
Admin
reminds me of that line about how debugging is harder than developing, so I'm not smart enough to debug my own code.
Admin
You're wrong. Just out of college are you?
There are some cases in which this would become a 2 hour explanation, and in the wrong forum (project meeting rather than one-to-one).
Communication is two-way, it also requires the receiver to listen and be of a baseline intellgence.
Admin
Right, but that's not what Stan had in mind (going by his description).
On ESENT: And other 3rd party code like RavenDB.
Admin
TRWTF is not having an in depth discussion to come up with the best approach. This discussion should have been interlaced with research. This is not a code WTF, this is a communications problem. They failed to use their collective skills and experience to come up with the best solution. Though, its hard to determine who is at fault by the text.
Admin
Now that I think about it, TRWTF is sitting on your hands while someone writes a spec. How do you not demand input?
Admin
Thank God I have a softer boss. Her background is VB, yet she mostly stays away from the code, at most writing (reasonable) SQL.
When she pokes too much on "how" to do the code, we dismiss her suggestions, offering reasonable solution and/or tools, which are accepted most of the time, as she says "you guys should know how's best to do it". And all the coders on the project are indeed quite skilled.
The legacy code is gruesome... but we can ditch it and do it properly! First large scale system integration is in progress. The tool? Webservices, of course. And I designed the XSD, node by node. These things make the not-so-great paycheck not much of an issue.
Captcha: nulla ... yes, we're little by little replacing '-1' with null fields on the database. Each crap code removed makes us better citizens.
Admin
So my intuition to build the app I want with an API to please my boss's amygdala would be, say, a passive aggressive wastebomb compared to quitting (and filing DUNS on the company's present management?)
Admin
Stan has zero knowledge of politics. You don't handle your boss by going over his head to the superboss. In 99 cases out 100, they will instinctively back your direct boss and mark you as a troublemaker.
What Stan should have done is to accumulate evidence that A) it was all Monty's idea B) Stan did it exactly as Monty wanted C) the system failed to perform because of Monty's design and then have them handy as "documentation" when the failure of the system becomes a problem.
Oh well, and if the system doesn't fail, then I don't really see the need to get so upset.
Admin
Yes, no. 2 is by all means probable reason for that outcome.
In my 30 years of IT experience, i see many examples of one way thinking in code making primadonnas (including myself). The main problem is lack of big picture to comunnicate with customer, and really predict his future needs. In short, art of "stay in business" on long term. This kind of thinking is very often out of the sight on typical programmer. Even if Stan is tehnically right (partially). After all, Stan can open his own company, and then he can dictate (and test in practice) his own rules...
Sorry about my poor english (I'm not a native speaker)
Admin
Only a looser with no spine would stay in a dead end position like that for Job security.
Admin
This story has a flaw. It should end with the protagonist reaching for his word processing software and typing up a resume.
Admin
This exactly describes my job situation. ...except for the last paragraph...
Admin
I've been in similar environments.
As I run the one I'm currently in I have a different policy. When a project comes up I'll broad stroke outline how I think the approach ought to be. However, I make it exceedingly clear that if the dev responsible for implementation thinks there is a better way then I want to hear it.
Sometimes it's implemented as I designed, sometimes it's tweaked and sometimes it is wholesale thrown out and replaced with a much better idea. More "architects" or "managers" should do things this way. Not only does it make for a friendlier environment, it encourages personal growth and nearly always results in tighter systems.
Admin
Unfortunately, the person who implemented a failed system is usually the one who gets axed. After all, if they had political skills needed to avoid blow back they wouldn't be the one responsible for making it work.
Admin
I work in a company where I get to play with any new tech I like, however I too feel like I'm stagnating. I have no other developers to bounce ideas off or review my code; how I'd love someone to call my code $hit and tell me how they'd do it better so I could learn.
However, given I have a mortgage and a wife to support, I couldn't just walk out like that if something didn't suit me - nor would I be allowed to; I live in the UK and in my job I have to give 4 weeks notice.
Also, some companies are wary of those who jump from job to job. I get the feeling the OP is young.
Admin
stories like this always make me wonder how long the company will last with ONLY ONE EMPLOYEE, Monty.