• Vlad Patryshev (unregistered) in reply to java.lang.Chris;

    Maybe just asking what book have they read recently would suffice? I bet the last time they read a book was in XX century.

  • facilisis (unregistered) in reply to Dr Solar
    Dr Solar:
    AnOldRelic:
    ...individuals who were considered by HR to be "under-qualified" because they only had 3-5 years' experience. Quality > Quantity. I'd sooner hire the 2-year rookie with a degree, a grasp of theory, the desire to learn and the ability to adapt...
    THIS! I'm finding it impossible to get into anything resembling a 'real' role because they see 3 years not in the filed I'm actually good at and trhow me straight into the bin.

    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.

  • (cs)
    From the OP:
    He could grab the Windows team's DAL and business layer, slap a web front end, get the project done in a fraction of the time allotted for it, and make sure future maintenance helped both applications.

    Somebody was after a bonus ...

    From the OP:
    Over the course of the next week, the battle continued, in meetings, emails and conference calls.

    Invested a lot of time of his project's budget and wasted in the end wasted lots of people's time.

    From the OP:
    Carl, a twenty year veteran with the company, had more knowledge of the political terrain and out maneuvered Jeff.

    Which was most likely as easy as out-pacing an one-year old toddler ...

    From the OP:
    "I was apparently mistaken."

    ... 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. :)

  • duis (unregistered) in reply to Vlad Patryshev
    Vlad Patryshev:
    Maybe just asking what book have they read recently would suffice? I bet the last time they read a book was in XX century.
    I thought Dos Equis only made beer.
  • Franz Kafka (unregistered) in reply to Jay
    Jay:
    "For the umpteenth time in his tenure, he re-invented the wheel ..."

    Re-inventing the wheel is a stupid waste of time. That's why in the real world of wheeled vehicles, there is only one company in the world that makes wheels, they make exactly one kind, and it is used on all vehicles from passenger cars to children's tricycles to heavy construction equipment. Having different wheels for different kinds of vehicles would be insane. And of course the thought that someone might come up with improvements on the wheel has caused many people to waste countless hours fiddling with an invention that was already complete and perfect. The wheels used on chariots in 100 BC were good enough for Julius Caesar and they're good enough for me.

    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.

  • (cs)

    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.

  • Anon (unregistered) in reply to facilisis
    facilisis:
    Dr Solar:
    AnOldRelic:
    ...individuals who were considered by HR to be "under-qualified" because they only had 3-5 years' experience. Quality > Quantity. I'd sooner hire the 2-year rookie with a degree, a grasp of theory, the desire to learn and the ability to adapt...
    THIS! I'm finding it impossible to get into anything resembling a 'real' role because they see 3 years not in the filed I'm actually good at and trhow me straight into the bin.

    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.

    +1 insightful

  • Peter (unregistered) in reply to facilisis
    facilisis:
    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.
    Should be "It is no wonder that..."

    Still, only one typo. You're still in with a chance ;-)

  • awefawef (unregistered) in reply to java.lang.Chris;
    java.lang.Chris;:
    There's only one thing worse than a two year veteran without a clue, and that's a twenty year veteran without a clue.

    Ways to avoid this kind of cluster fuck is to ask any potential employee whether they've read Fowler's "Patterns of Enterprise Application Architecture" and the GoF "Design Patterns" book. If they haven't, then terminate the interview there and then. If they have, find out the depth of their understanding, such as whether they understand the Observer pattern and separation of concerns.

    Obviously the veteran read the GoF book. He used Inversion of Control.

  • (cs) in reply to Code Refuser
    Code Refuser:
    He should have expected that unless the application he was piggybacking on was designed with abstraction and re-use in mind, that whatever he was provided was going to be almost useless to him.

    QFT.

  • (cs)

    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!

  • (cs) in reply to SCSimmons
    SCSimmons:
    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!

    That's not ASP.Net using Windows Forms, that's ASP.Net emitting markup that causes Internet Explorer to host a Windows Forms control. It has every possible downside of a thick client app without most of the upsides.

    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.

  • Max Kode (unregistered)

    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.

  • duis (unregistered) in reply to Peter
    Peter:
    facilisis:
    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.
    Should be "It is no wonder that..."

    Still, only one typo. You're still in with a chance ;-)

    It's No Wonder Why

    Typo infers a spelling error, but you are applying it to a grammatical choice.

  • NorgTheFat (unregistered) in reply to iToad
    iToad:
    ObiWayneKenobi:
    Carl, a twenty year veteran with the company

    MAJOR red flag right there. What is with these people who have worked for a company for years? Every single one I have met during my career was basically an ignorant sloth who knew nothing about proper software engineering practices and, when confronted or asked about doing things the right way, used seniority to shoot it down.

    I mean, I can understand using shitty practices when you're first learning the stuff; that's expected. But you should REALIZE it's a bad way of doing things, and constantly improve yourself so the next project, you do a little better. And the next, and so on until you're doing things properly. You don't keep churning out the same shit because you're too stupid to understand it's wrong and don't want to be bothered learning better ways.

    Sometimes, the twenty year veteran really has twenty years of experience. Sometimes, they only have one year of experience, twenty times.

    So true, so true...thankfully the place where I work, this sort of problem is kept in check (mostly)

  • anon (unregistered) in reply to duis
    duis:
    Peter:
    facilisis:
    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.
    Should be "It is no wonder that..."

    Still, only one typo. You're still in with a chance ;-)

    It's No Wonder Why

    Typo infers a spelling error, but you are applying it to a grammatical choice.

    s/infers/implies/

  • (cs) in reply to NorgTheFat

    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.

  • mainframe_web_developer (unregistered) in reply to ObiWayneKenobi

    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...

  • Anonymously Yours (unregistered) in reply to Remy Porter
    Remy Porter:
    Anonymously Yours:
    Same here, actually. I think things come together better when you have a clear idea what to support and make your code flexible, rather than when you try to make your code flexible enough to support some great unknown.
    Never write flexible code for the sake of flexible code. At the same time, if you're doing application integration in your database, there's something horribly wrong.

    Flexible code arises from a clear understanding of your problem, not from inventing a generalized version of a problem and solving that, which is where mistakes happen. "Oh, I need to write a web presentation layer for customer accounts. My first step will be to write a generic web presentation layer and then customize it for customer accounts."

    If you really understand what your customer account system is supposed to do, and you implement to that with even a modicum of OOD, you're going to have code that's reasonably flexible, or can be refactored into something flexible.

    And when you need a more general presentation layer, you can pull up methods from your classes into newly created abstract classes that can be shared.

    ... are you expanding on my point or are you unaware you're agreeing with me? I honestly can't tell from the way you wrote that.

  • monkeyPushButton (unregistered) in reply to mainframe_web_developer
    mainframe_web_developer:
    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...
    Lord no. I've seen management's job and I don't want it. Then again, being a gov't employee, my work is slightly different than a standard corporate environment.
  • LANMind (unregistered) in reply to Remy Porter

    TRWTF is all the supposed architects offering highly situation-dependent practices.

  • AnOldRelic (unregistered) in reply to mainframe_web_developer
    mainframe_web_developer:
    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.
    The problem is, juniors can't "just ignore them." Often, we are team-leads, management, or generally higher up than them. We hold their jobs (and effectively livelihoods) in the balance. I don't use my seniority to bully, but that's just out of an ethical choice. I can guarantee that there are many old-timers who would willingly crush progress and innovation in favor of comfort and the familiar.

    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.

  • (cs) in reply to AnOldRelic
    AnOldRelic:
    The problem is, juniors can't "just ignore them." Often, we are team-leads, management, or generally higher up than them. We hold their jobs (and effectively livelihoods) in the balance. I don't use my seniority to bully, but that's just out of an ethical choice. I can guarantee that there are many old-timers who would willingly crush progress and innovation in favor of comfort and the familiar.

    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.

  • (cs) in reply to Me
    Me:
    I second this. The computer industry is packed with "new" ideas that have just been re-invented and re-named by somebody who didn't know they were already old news. Meanwhile, the old guys like me are looking at these "new" ideas and wondering what all the fuss is about.

    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.

  • marv (unregistered) in reply to ObiWayneKenobi
    ObiWayneKenobi:
    MAJOR red flag right there. What is with these people who have worked for a company for years? Every single one I have met during my career was basically an ignorant sloth who knew nothing about proper software engineering practices and, when confronted or asked about doing things the right way, used seniority to shoot it down.
    What it is? I'll tell you what it is. They were never able to get a job anywhere else, or too insecure to even dare trying.
  • Quirkafleeg (unregistered) in reply to AnOldRelic
    AnOldRelic:
    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++?"
    (Those should be either “choose X over Y” or “use X instead of Y”.)

    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++).

    Next, I'm waiting for the "Silverlight? Why not use classic ASP?!"
    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! ☺

  • Peter (unregistered) in reply to duis
    duis:
    Peter:
    facilisis:
    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.
    Should be "It is no wonder that..."

    Still, only one typo. You're still in with a chance ;-)

    Typo infers a spelling error, but you are applying it to a grammatical choice.
    Nah, I was giving the benefit of the doubt - assuming that he knew the correct phrase, but had just mistyped it.

  • Pants (unregistered) in reply to highphilosopher

    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.

  • Veldan (unregistered) in reply to Remy Porter
    Remy Porter:
    Honestly, when I read the submission, I had to make sure Jeff wasn't a co-worker. Because my company has a crapload of applications like that.

    Hands up anyone else who is stalking the office trying to find "Jeff"?

    Hand up

  • icebrain (unregistered) in reply to Quirkafleeg
    Quirkafleeg:
    I'd use C++ rather than C# because of a certain large monopolist (and I know more about C++)
    There's always Mono. Also, let's not use neither Flash nor Silverlight, they're both s***. Unless you're making web games, HTML+CSS+Javascript is all you need.

    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.

  • Dave (unregistered)

    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.

  • Quirkafleeg (unregistered) in reply to icebrain
    icebrain:
    Quirkafleeg:
    I'd use C++ rather than C# because of a certain large monopolist (and I know more about C++)
    There's always Mono.
    Yes… but that's… sort of… well… indirectly tainted. IMO.
    Also, let's not use neither Flash nor Silverlight, they're both s***.
    As far as is practical.
    Unless you're making web games, HTML+CSS+Javascript is all you need.
    BBC iPlayer. Want to reimplement that?

    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.

  • AnOldRelic (unregistered) in reply to Quirkafleeg
    Quirkafleeg:
    Let's turn that around.
    I see your point, and am not arguing it. However, where I am arguing is the inability for people to see benefits in the new instead of hacking away at the old. Far too many applications and existing libraries in the world are kludge on top of kludge with some crap in between as mortar. Refusing to give them up in favor of something new because it's new and contrary to principle or past practices (past, not best) leads to stagnation, lack of innovation, and frankly, the kind of entrenched, thick-headed individuals I personally have broken away from. I still use assembly, C, C++, and even dabble back in COBOL where I need to, but I don't cling to them as if they were my only floatation device keeping me afloat and from sinking into the liquid abyss of joblessness. (Every language/IDE has a use. Except VB. That can go die a firey, painful death.)
    icebrain:
    Also, let's not use neither Flash nor Silverlight, they're both s***. Unless you're making web games, HTML+CSS+Javascript is all you need.
    I can't tell if you're being serious or sarcastic. Though - I partially agree here. Unless you're presenting a media-rich application, there's no need for Flash or Silverlight. But - still a far cry from my point. I was providing simple, contemporary examples. What I was poking at were the people who still insist on using classic ASP when the rest of the world has taken two giant leaps "ahead" and have found greener pastures.
  • (cs) in reply to Jaime
    Jaime:
    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.
    Goose:
    Is this your idea of fun, Mav?
  • mcalex (unregistered) in reply to Peter

    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

  • Nyan (unregistered)

    "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.

  • callcopse (unregistered)

    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.

  • TInkerdom (unregistered) in reply to Dave
    Dave:
    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.

    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.

  • (cs) in reply to facilisis
    facilisis:
    Bosshog:
    When I re-invent the wheel, I sometimes add new features. Like corners.

    So do I. You put a store-bought wheel on the ground, it rolls away. Not mine.

    Yeah, but watch out for those inverted catenaries! http://en.wikipedia.org/wiki/Square_wheel

  • Helix (unregistered) in reply to Quirkafleeg
    Quirkafleeg:
    icebrain:
    Quirkafleeg:
    I'd use C++ rather than C# because of a certain large monopolist (and I know more about C++)
    There's always Mono.
    Yes… but that's… sort of… well… indirectly tainted. IMO.
    Also, let's not use neither Flash nor Silverlight, they're both s***.
    As far as is practical.
    Unless you're making web games, HTML+CSS+Javascript is all you need.
    BBC iPlayer. Want to reimplement that?

    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.

    TRWTF was BBC trying to protect the content in the first place.

  • TimG (unregistered) in reply to AnOldRelic
    AnOldRelic:
    I've learned a lot from other people, as I'm sure they've learned a lot from me. But I can guarantee I'm a minority among human beings, and that's genuinely discouraging.
    FTFY.
  • PB (unregistered)

    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.

  • AnOldRelic (unregistered) in reply to PB
    PB:
    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.

    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.

  • wutwut (unregistered) in reply to Peter

    Actually, it probably should be: "It is no wonder you can't..."

  • (cs)

    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.

  • Luis Espinal (unregistered) in reply to Zylon
    Zylon:
    wtf:
    "Morale boost" from promoting stupid inter-office squabbling over getting the job done? Gosh, I'm glad I don't work with you.
    Awww, that's just darling. Be sure to let us know if you ever land in a real-world job with incompetent toxic coworkers and a useless boss who doesn't do anything to keep them in check.

    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,

    1. I try to reason with them (and I save every piece of email wrt to this effort).

    2. 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).

    3. If I can't work around, then I escalate in a professional manner (here, every piece of e-mail and docs saved come handy).

    4. 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.")

    5. 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.

  • (cs) in reply to Luis Espinal

    Well said. +1000

  • Patrick (unregistered)
    Carl, a twenty year veteran with the company

    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.

  • EngleBart (unregistered)

    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.

  • (cs) in reply to java.lang.Chris;
    java.lang.Chris;:
    Ways to avoid this kind of cluster fuck is to ask any potential employee whether they've read Fowler's "Patterns of Enterprise Application Architecture" and the GoF "Design Patterns" book. If they haven't, then terminate the interview there and then. If they have, find out the depth of their understanding, such as whether they understand the Observer pattern and separation of concerns.

    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?

Leave a comment on “Code Refuse”

Log In or post as a guest

Replying to comment #:

« Return to Article