- 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
Maybe just asking what book have they read recently would suffice? I bet the last time they read a book was in XX century.
Admin
It is no wonder why you can't get into a 'real' role. Any resume with 2 or more typos gets thrown into the garbage can.
Admin
Somebody was after a bonus ...
Invested a lot of time of his project's budget and wasted in the end wasted lots of people's time.
Which was most likely as easy as out-pacing an one-year old toddler ...
... and sees the error of his ways. Specifically that one should not pick a fight without good prior reconnaissance of the battle ground (the code base) and accurate intelligence about one's adversaries.
Jeff would have been better off writing his own DAL and using the time reading good ole Dale Carnegies "How to make friends and Influence People" or "48 Laws of Power" by Robert Greene and Joost Elffers. :)
Admin
Admin
You're absolutely right. Either there's only one way to make a wheel or every wheel must be built from first principles. There's no way it could be something in between.
Admin
To all the dimwits saying that an understanding of systems design isn't a required skill for an "ordinary developer" - thanks, you've just confirmed how incompetent most developers are.
Admin
+1 insightful
Admin
Still, only one typo. You're still in with a chance ;-)
Admin
Obviously the veteran read the GoF book. He used Inversion of Control.
Admin
QFT.
Admin
This caught my attention on my second read-through: "No sanely developed ASP.NET app would have access to Windows Forms objects." Hey--that's not true! Here is a little rundown on reasons to do this, at the start of an article on how to do it. Although now that I look at it, reasons 3 and 4 are pretty stupid with regard to a production project ... and #1 is just laziness ... and you can't really determine #2 for sure until you test your app built both ways, which nobody would ever do ...
Never mind--carry on!
Admin
I have used Windows Forms in an ASP.Net app just for fun before. One of my students asked if it would be possible to take a complex graphing control and "webify" it. We simply instantiated the control and caused it to render to an in-memory image, then spit the image bytes out to the Response object.
Admin
We had a 20 year veteran who told us all about the wonderful redesign he had in mind, which would involve about 17 abstraction layers between the various front ends and the part that did the real work. The problem is, he was a little weak on the "real work" part.
After a few years of promises and nothing else, he retired, and his grand project died a silent death about 20 minutes later.
Abstraction is a tool, not an end goal.
Admin
Typo infers a spelling error, but you are applying it to a grammatical choice.
Admin
So true, so true...thankfully the place where I work, this sort of problem is kept in check (mostly)
Admin
s/infers/implies/
Admin
I'm sure there are exceptions to the rule, just in my experience every time there's a senior developer, lead or manager who's big thing is they've been with the company since the start (was the first programmer, developed the first version, etc) the person in question always has no idea of new trends in doing anything, and typically the code is a sludge pit.
It wouldn't be so bad if they at least understood that they've been "out of touch" for years and would LISTEN to the advice of people who know more, even if they're juniors (i.e. "Why would MVC be a better choice? Okay.. I see. Alright, that does sound like it would help us out." instead of "What's this newfangled MVC stuff? Back in my day we wrote all our logic and presentation together, and gosh darn it that's what we're doing now! That's why I'm the manager and you're the programmer."). But invariably the person also has a huge chip on their shoulder and won't listen to anyone who isn't above them on the hierarchy.
Admin
At first, these comments made me sad. I am 13 year veteran. But then I realize, there must be a lot of kids (<30) on the board.
One guy thinks the gray beards don't know MVC and won't discuss simply because they are old and stubborn. Well, that's probably because this was the best practice for CICS which was invented the same year as Unix.. back in 1968.
Sometimes folks stick around in a company because they actually like the company. They like the people. Sure, some are waiting for retirement.
Do you find the veterans in your way? Do they make your job hard? Simple solution: ignore them. Do what needs to be done. No matter how loud PM, architects, DBAs, SVPs and all those others howl that you wrote the program the wrong way, the business-oriented guys will use it if it works. Stop talking and start doing.
Maybe I am the only one who notices that the developers today only want to program for about six years. No project should last more than 15 months. After that, they expect to be in management...
Admin
Admin
Admin
TRWTF is all the supposed architects offering highly situation-dependent practices.
Admin
I'm a 17-year veteran myself. I think the problem is not so much veterans themselves, as it is an inability (or unwillingness?) to change the way of doing things out of fear of obsolescence. When I started, processors had a single pipeline, a single core, and tracing assembly from start to finish could be done in a matter of a couple of hours, and optimizing said assembly was a job I could do in my sleep. Hardware complexity has grown by leaps and bounds, often leaping by several orders of magnitude in a fraction of my lifetime. Keeping up is certainly not easy, and I could see why many of my contemporaries/colleagues simply gave up on keeping up with current trends.
Sure, I remember FORTRAN, and have many fond (or hate-filled, not sure which yet...) memories of COBOL. But I sure am not going back there without having a genuine need/requirement. I've grown through multiple iterations of C/C++, and have slowly slipped into developing in C# on many .Net applications. But - that's all entirely not the point. The point is, the arguments I have with some of those I've worked with in years' past have all stemmed around a definite "get off my lawn" mentality these individuals maintain. The bulk of their argument boils down to little more than a simple "Back in my day, I had to walk fifteen miles to/from school, in the snow, up-hill, both ways."
When these arguments began, it was "Why would you ever use C++ over C?" Now it's "Why would you ever use C# over C++?" Next, I'm waiting for the "Silverlight? Why not use classic ASP?!" And this is why I'm tired of working with them and tend to hire the younger, less entrenched crowd. At least they're willing to learn and make improvements without a major verbal brawl. I've learned a lot from my junior devs, as I'm sure they've learned a lot from me. But I can guarantee I'm a minority among my generation of programmers, and that's genuinely discouraging.
Admin
This. I've worked with a few "experienced veterans" that knew their shit and who I could learn a lot from. I've worked with far more people who used tenure to achieve seniority, and routinely knew nothing about modern development and squashed any and all attempts at using best practices. Hell, I've actually been FIRED from jobs for trying to get the team to care a little about craftsmanship instead of doing things the old crufty way they had been using for years. The veteran was much like the one in this story and wouldn't have any of that newfangled nonsense because he couldn't understand it, and the idea that a junior developer might know something he didn't was downright heresy.
This is the more common scenario. Well-meaning junior developers, who spend their time learning and broadening their skills, come head to head with "senior" (in tenure, not always in experience) developers or team leads or IT Managers who are incapable of understanding this, and out of fear of them showing their own incompetency kill any notion of doing things "right", and punish anyone who dares to try and point out a better way of doing things.
I think it has a lot to do with the fact a lot of BS artists got into IT during the dot com boom, and hoodwinked management into trusting them. As the years rolled on these people have stayed in their cushy jobs so they get promoted. Eventually, you have managers and seniors who really don't know anything because they just BSed their way in when nobody knew anything about computers or programming or the internet. Out of fear of losing their cushy position they have to squelch others who might upstage them, because the truth (i.e. that they're incompetent BS artists) might come to light.
Not saying EVERYONE is like that, but there are still a lot of them out there running (or should that be "ruining") IT departments.
Admin
To be fair, at least the GoF people acknowledged that. They specifically say that nothing in that book is stuff they came up with, and that what they did was to describe practices that were already in use and give them a name so that programmers and architects would have a vocabulary to talk about what they were doing.
Admin
Admin
Let's turn that around.
I use C rather than C++ because there's less complexity (and anyway, I'd probably end up with C-like code anyway); and I'd use C++ rather than C# because of a certain large monopolist (and I know more about C++).
With ASP, you're only maintaining one copy of the site…?Then there's “Silverlight? Why not use Flash?” – but let's turn that around again: why use Flash, not Silverlight?
User base (for public-facing sites), and that large monopolist in the background.
OTOH: web sites implemented using Flash, Flash buttons chewing up CPU time (and, possibly, battery), and Flash adverts chewing up CPU time. Although those are arguments for using plain HTML (and not visiting sites which do these things, or at least preventing the Flash files from being run), not for using Silverlight (or Moonlight) instead.
… not seen any of these for years, though! ☺
Admin
Admin
You seem rather optimistic. My organization skips the Architect, Project Manager, and every other type of management role. In many cases, an individual developer plays all roles, including server admin, etc, etc. It's kind of a nightmare, but no one likes to make waves.
Admin
Hands up anyone else who is stalking the office trying to find "Jeff"?
Hand up
Admin
About PoEEA, I disagree that only software architects should know the patterns (they don't have to have read the book, but knowing the names is mandatory for good communication); any software developer should know how to identify and implement the patterns, even if they're not required to know when to use them.
I have the book and it's very interesting, especially for someone with virtually no experience like me.
Admin
I've seen code where I work that was obviously written by somebody who's idea of "code reuse" was copy/paste.
Although I like the first rule of code reuse. I'm going to reuse that.
Admin
Well, yes, they could get away with streamed video, up to a point; but rights holders may well want their video or audio to be ‘protected’, and the BBC have little choice but to comply if they want to make that content available.
Admin
Admin
Admin
he hasn't used a common phrase, but 'it is no wonder why ...' isn't incorrect. Personally, I'd not have 'why' or 'that' or anything else there. 'It is no wonder you can't get into a 'real' role' works fine.
2c
Admin
"Carl glared at him like Jeff had been bitten by a zombie and might turn at any moment."
Who would glare at a zombie-bitten person while waiting for them to turn? =[
A scene from Code Refuse, zombie edition:
Everyone stared at Jeff, wide-eyed in horror, their faces twisted into expressions of sheer dread... except for Carl, who could only find himself consumed with utter rage.
Carl glared at Jeff angrily. "Why did you have to go and get yourself bitten!?" he bellowed. "I told you a MILLION TIMES not to let them bite you!"
"I'm sorry!" moaned Jeff. "It just came out of nowhere, I couldn't get away fast enough... AUGHH--!" He coughed violently and grabbed at the bite wound.
Carl shoved Jeff up against the wall. "Just tell me this one thing. Did you reuse any of my team's DAL in your web app?" he hissed through clenched teeth.
"I... I d-..." Jeff's body began to convulse wildly as the virus began to take over and he struggled to form words.
"DID YOU, OR DID YOU NOT?!" Carl roared. "Tell me, NOW! The survival of all humanity may rely on this!"
"I... AUUGHHH-!!" Jeff screamed.
Carl shook Jeff's contorting body by his shirt collar. "I need to know this!! JEFF!"
It was too late.
Admin
To summarise then, experienced or inexperienced developers can be closed or open in their outlook. Those who never move jobs at all seem particularly prone to being one dimensional in their programming. The grimy code of those set in their ways can still be useful but we will still all point and laugh. Most seasoned software developers are also pedants.
Admin
My last coding job had 3 separate instances of code that independently calculated the taxes. Worse, all 3 were written differently. Worse still, they were out of sync in different ways.
Admin
Admin
TRWTF was BBC trying to protect the content in the first place.
Admin
Admin
Is nobody else wondering whey they seemed to have spend an inordinate amount of time arguing about whether this code should be used before Jeff had even looked at it to see if it was suitable? Little experience might have helped here...
Just because it's called a DAL doesn't necessarily mean that's actually just what it's doing.
Admin
I think they were arguing if Jeff should have been allowed to even SEE the code, let alone re-use it. Either way, a little experience and arguably a little cynicism (which comes from the experience) would have prevented the wasted time.
Admin
Actually, it probably should be: "It is no wonder you can't..."
Admin
TRWTFs are people who don't understand what the cliche "reinventing the wheel" means, or even the difference between "improving" and "inventing" for that matter.
Admin
Nope, gotta disagree with you here. The fact is that in any job and in any type of work, whether doing software or flipping burgers, you will deal with incompetent/toxic people to one degree or another.
I used to believe in the same stupidity of shooting incompetent people down, when I was young and inexperienced and thought I was Dijkstra's second coming. Working in the real world showed me pretty quickly I wasn't (not even by a long shot).
Furthermore, I quickly realized that professionalism and smoothing things out in the office are part of my job description, even if those are never spelled out during the hiring process. Most importantly, I learned that shooting people down, even the truly inept, that was just projection of insecurities or arrogance from my part. None of that has any place at work, at any work.
We. Do. Not. Get. Paid. To. Do. That. Shit. We get paid to get things done with the least drama and insult possible. Drama and stupidity are unavoidable, but that doesn't mean I have to contribute to them. I cannot control other people's stupidity. I can only control my own. Implicitly, it is part of our job to control our own stupidity, and just because co-worker cannot do that part of his job, that does not mean I should be equally inept at that.
The only time conflict is to be used if it to the business' benefit (and ultimately, developing software is a means to promote a business benefit.)
If I run into an incompetent person,
I try to reason with them (and I save every piece of email wrt to this effort).
If I can't, then I work around them (and save every piece of email wrt to this effort... and if it helps me, I'll let my manager know to that effect).
If I can't work around, then I escalate in a professional manner (here, every piece of e-mail and docs saved come handy).
If that doesn't work, then I shrug my shoulders. If something breaks because #3 didn't work, I've already have a trail indicating I did my job in preventing so. And if nothing breaks significantly, nothing was lost (my ego does not rely on things breaking for me to say "I told you so.")
And if #4 doesn't work, and if #3 and #4 occur continuously and generates a lot of drama, then I simply do the professional thing to do: I leave as soon as it is financially prudent.
Your professional creed and quality of work experience are not a boolean function of whether you have worked in a real-world environment with incompetent, toxic people (that is an almost constant given.) Instead, they are a function of whether you can work and behave ethically and professionally in a toxic environment.
I can understand young cowboys fresh out of college not understanding this. But for people who claim to have real world experience, how could you not know this? It is beyond me.
Admin
Well said. +1000
Admin
I've learned not to mess with those guys, just do your job, and let them self-destruct at some point. Also calling the twenty year veteran an "idot, " in a meeting is a surefire way to lose the argument. Even if you win the argument, it will only breed harsh resentment in the future by the guy who has more clout than you and eventually bite you in the ass.
Admin
Why not just create a terminal services or Citrix application for the windows form application?
Guarantees 100% reuse and the same logic. The progress bar and status bar would even work!
No need to reinvent the wheel, just hook up the pipes to get the wheel displayed where you need it.
Admin
And perhaps that's a good suggestion for any potential employee to ask of his/her potential employer. Who wants to work for someone who hasn't got a clue?