• Brett (unregistered) in reply to Charlie

    Charlie,

    The harsh reality is that damned few people have the good fortune of gaining personal satisfaction from their jobs.

    For many years I was able to achieve some through my desire for knowledge about a field that fascinated me. Now I'm like that old prostitute. I've climbed those stairs too many times. My feet hurt.

    There's a lot of satisfaction to be had from having a good relationship with your spouse/significant other/etc, your kids, pets. Helping friends and family.

    People make the mistake of defining themselves by their work. That's why they go through mid-life crises and lose it when they are unemployed.

    You are not your job. Your job is not you.

  • Disagreement (unregistered) in reply to MrsPost
    MrsPost:
    RocketRick:
    I've seen this same sort of thing far too many times. People like Mike need to realize that automating a bad process doesn't improve anything, it just makes it faster to do the wrong thing.
    There's a rather well-known anecdote about a tire company executive showing off his new multi-million dollar machine that wrapped the freshly made tires in paper. It was a triumph! It did this so much faster than the line workers!

    The person being shown this piece of equipment asked a question. "Why do you wrap the tires in paper?"

    "Because this way the whitewalls aren't scuffed up during shipping."

    "How many whitewall tires do you make any more? Most modern cars don't use them."

    Uncomfortable silence.

    Why is more important than how when it comes to automating stuff.

    I blame it all on management.

    As an employee he couldn't change the processes and the management didn't seem interested.

    He did what he could for the best of everyone, and if it was a bad solution it's management's fault for not providing something better AND for allowing him the use of unsafe privileges.

    His initiative was not to blame. In fact, if more people were like him, hacks wouldn't be necessary as the adequate providences would've already be taken. After all, his whole team was supposed to "build and maintain applications and reports", or so it says.

  • Hmm (unregistered) in reply to Brett
    Brett:
    Charlie,

    The harsh reality is that damned few people have the good fortune of gaining personal satisfaction from their jobs.

    For many years I was able to achieve some through my desire for knowledge about a field that fascinated me. Now I'm like that old prostitute. I've climbed those stairs too many times. My feet hurt.

    There's a lot of satisfaction to be had from having a good relationship with your spouse/significant other/etc, your kids, pets. Helping friends and family.

    People make the mistake of defining themselves by their work. That's why they go through mid-life crises and lose it when they are unemployed.

    You are not your job. Your job is not you.

    I'm getting that way. I've been programming since 3rd grade and professionally for about 12 years now. I used to love it, but incompetent managers, corporate unwillingness to produce quality products, and unrealistic deadlines are totally killing my passion for the field.

    I think I need to find a nice small, agile and aggressive company, or strike it out on my own. Large companies breed ineptitude, namely on the Peter Principle, and it's really frustrating when I have a passion for releasing quality software on time, under budget, and to spec.

  • Charlie (unregistered) in reply to Hmm
    Hmm:
    I'm getting that way. I've been programming since 3rd grade and professionally for about 12 years now. I used to love it, but incompetent managers, corporate unwillingness to produce quality products, and unrealistic deadlines are totally killing my passion for the field.

    I think I need to find a nice small, agile and aggressive company, or strike it out on my own. Large companies breed ineptitude, namely on the Peter Principle, and it's really frustrating when I have a passion for releasing quality software on time, under budget, and to spec.

    That's exactly how I feel. There are good companies out there, but it seems that for every Fog Creek there are a hundred "Initrode Global"'s.

    I'm wondering if graduate school might be a good idea. Becoming a CS professor could provide the opportunity to research truly interesting things, plus I would be helping my students to better themselves.

  • OliverWhite (unregistered) in reply to DaveK
    DaveK:
    pink_fairy:
    DaveK:
    pink_fairy:
    "Between the idea And the reality Between the motion And the act
    Between the specification And the implementation
    pink_fairy:
    Falls the Shadow"
    I couldn't agree more.
    Which was sort of the point. (Ta, T.S.)

    Can I do a Godwin here? There's no obvious Nazi follow-up to Mr Eliot, but here's a great coda from the same poem ("The Hollow Men," pub. 1928):

    This is the way the world ends This is the way the world ends This is the way the world ends Not with a bang but a whimper.

    Funny, I always thought that fast food would conquer everything, and the world would end not with a bang, but a Wimpy.(*)

    (*) - Presumably followed immediately by some kind of cosmic coronary.

    The world won't end in darkness It will end in family fun With Coca Cola clouds behind a Big Mac sun

  • GrandmasterB (unregistered) in reply to Brett
    Brett:
    People make the mistake of defining themselves by their work. That's why they go through mid-life crises and lose it when they are unemployed.

    You are not your job. Your job is not you.

    Well said, sir, well said!

  • GrandmasterB (unregistered) in reply to Charlie
    Charlie:
    I'm wondering if graduate school might be a good idea. Becoming a CS professor could provide the opportunity to research truly interesting things, plus I would be helping my students to better themselves.

    If you think big business is bad, wait to you see what its like in academia!

  • tt (unregistered) in reply to whoever
    whoever:
    Mark:
    Writing code (the fun stuff) is the LAST stage of any project, not the first.

    Well, it's definately cheaper if you don't test...

    Though, I'm not sure it worth the hassle if you do not deploy it.. ;-)

  • UnkaEric73 (unregistered) in reply to morry
    Morry:
    I've done a few things "for fun", and let me tell you that if I had to do all that up front work, the coding would no longer be fun. It then has become part of my job and holds little additional fascination for me. Most management fails to realize that.

    Hate to tell you, but management realizes that more than you could ever know. So, you don't want to do the any up front work, presumably, because there is nothing new for you to discover about the business, its regulations or tech reqs (based on your dozens of weeks of employment).

    But.

    But. You think they should let you loose, without any real plan, with nothing to tell their boss except, "well, he explained it to me...once". Oh yeah, most managers have people like you figured out. You're the types, echoed in comments here, that up and quit the moment it becomes work and not fun. Good luck with that "implement my first idea, or I walk" temperament, IT-related field or not.

    J.H.C. I love this site.

  • Blue (unregistered) in reply to Blue Note

    Yes, the Naval Warfare Centers. Lots of cool stuff goes one there, lots of very smart people, and lots of opportunity to really help out if you're a good programmer. The red tape can be occasionally maddening, but on balance it's a very cool place to work.

  • my wtf (unregistered) in reply to Addison

    so what happens to the first patch on the back end that adds a new field which the homemade scripts don't account for? Not so smart after all, are you?

  • Reed (unregistered)

    Scripts that automate clicking through web pages?? Weird conglomerations of Perl and VNC sessions? I'm glad there are hard working folks like Mike out there creating the next batch of Daily WTFs for us to laugh at in the future!

  • Keith (unregistered) in reply to axus
    axus:
    His new method sounded kind of brittle... which is sad, because the original method was even worse.

    I agree, the new method sounds too complicated. If they let him implement that and then he leaves what happens when it breaks? Nobody would have a clue how to detangle that mess.

  • (cs) in reply to iToad
    iToad:
    The Amazing Gordo!:
    SlyEcho:
    it would need PerlMagick, a dozen or so Perl modules, Wine, xdotool, a VNC server, lots of config tweaking, the works.

    What would you do if someone wants to put this in your server? And who's going to maintain this Rube Goldberg-like mess?

    Needs .NET

    And XML.

    and, of course, more cowbell!

  • AB (unregistered)

    Honestly, a UI macro? Mike calls that improvement? Good thing the company management was stupid, otherwise he'd have been fired.

    The script sounds like a terrible mess too. Lots of obsolete technologies... doesn't sound like a big improvement. Lots of effort to install = lots of effort to maintain. Maybe he should have made a script for his script, to install it without "dickering"

    CAPTCHA: ingenium

  • anon (unregistered) in reply to Greg
    Greg:
    The real WTF is how many think this way about IT problems and do not seem to be trolls.

    If the "ugly hack" scripts stop working one day or start malfunctioning, go back to the old way. If there is a week of data cleanup from the malfunction after 6 months, it still saved 5 months and 3 weeks or so of work. If it ruins more then a weeks of data, then there should be better backups and that is a WTF in itself.

    If a new and better system is implemented a year later, the ugly hack scripts have served their purpose and can be discarded at that point. If they fail and no one fixes them [for whatever reason], the employees can go back to the inefficient way of doing things with a net gain from where things started out [of X months of free work being done for them].

    It really just sounds like some narcissists protecting their middle management positions, clamping down on innovation however they can (based on my experience of running into similar issues).

    Good luck going back to the old way after 6 months (or worse 3 years) of automation. Now it's not working, and no one really understands what it was doing. It's a hack job, so you have to delve into the code and pretty much go through it line by line.

    Something with that many moving parts is NOT a good solution. Do it right.

  • raboof (unregistered) in reply to Zapp Brannigan
    Zapp Brannigan:
    badness isn't additive it's multiplicative

    So if you throw in one partial solution that's not at all bad (0), all the other badness magically disappears? Cool!

  • (cs) in reply to whoever
    whoever:
    Mark:
    Writing code (the fun stuff) is the LAST stage of any project, not the first.

    Well, it's definately cheaper if you don't test...

    I used to work with a guy who thought that. It turned out, writing code on the production hardware and not testing it was actually a lot more expensive than writing it elsewhere, testing, and only after all the tests pass, deploying it to production... to the tune of over $1e8 more expensive.

  • Me (unregistered)

    Well, I'm the guy being described. About two days after submitting this, I was fired. So it doesn't matter.

    As for those calling it an ugly hack...

    Well, it was nothing of the sort. The server we were talking about had perl installed, but no one other than I used it. Installing a few perl modules wasn't going to kill this thing.

    Perlmagick? Dickhead the boss wanted all tickets to have an excel spreadsheet attachment with screenshots of various of web apps with data... I was just doing screencapture to create that attachment. Of course, it did so in about 30 seconds. Compared to the 20 minutes Dennis would diddle around to do one.

    And what about the tickets? Whoever the fuck the ARS Remedy developer was, they took a process where a person has to put in 5 pieces of information, and made it require over 80 clicks, if I remember, on nearly a dozen popup windows.

    My little perl script asked for the node name, looked up 3 pieces of the information, compiled the attachement xls, and asked for the other two. It could input tickets as quickly as one every 3 minutes. They were complaining that we weren't doing enough network health tickets, I give them a way to do hundreds per day (there were maybe only 200 needed in any given day, tops, but Dennis was doing 20 per day).

    Their answer to the problem? Tell me that I imagined that I was hired as a developer, when I have 50 emails from the recruiter and them that have that title in it, and then try to turn me into a ticket monkey. I'm sure I could have beat doddering old Dennis in entering the things eventually, but there's no way in hell to do one every 4 minutes, and my script wasn't going to get confused and attach the wrong fucking excel attachment like anyone who was in a hurry was sure to do once in awhile.

    As for any other brittle automation scripts, most of those I replaced as soon as we got access to the Oracle server. Some simply bash scripts to sqlplus to get the data back into inserts for the mysql side of things, and they went off without a hitch.

    Of course, maybe I'm wrong about all of this, perhaps they were bad ideas. I'm sure paying $100 an hour for 5 or 6 people to sit around doing just one of these tasks all day is superior to having a cron do it in 5 minutes at 3am before anyone even arrives.

    Those fuckers can go to hell. I'm moving to Nashville and getting a salaried job for $60,000 her in a week. They're welcome to continue using people as if they were computer components, and when your cable modem is out for a week straight and all they do is tell you to reboot it despite no signal... well, you'll just have to hope that Dennis gets around to entering a market health ticket for your neighborhood so someone will fix the real problem.

  • Me (unregistered) in reply to anon

    This is good advice. This is why GM keeps their 1896 production line going, so if all those fancy robots stop working, they still have what it takes to do it the old way.

    Or maybe Failcast could just have hired another person who actually knows a little programming, have them read the heavily commented scripts or the documentation that goes with them that explains what every few lines of code was attempting to do, why the attempt was being made, and what the result should be afterwards, and have them fix it.

    More likely though, with these jackasses in charge of things, people who were really no more than line technicians just 4 years ago and were promoted beyond their level of competence... more likely they'd have just stopped using the very reports that we're talking about, and if they stopped working, no one would care or notice.

  • Me (unregistered) in reply to my wtf
    my wtf:
    so what happens to the first patch on the back end that adds a new field which the homemade scripts don't account for? Not so smart after all, are you?

    You get some warnings in an error log, and those fields are left null in the local database, providing most of the data that they want, and what would cost you a fulltime employee 50% or more of his working hours to do manually as they had been doing until that script was implemented?

    Btw, I really love the disparaging use of "homemade", that really brings the insult home. Have fun moving data from one place to another, from one database engine to another, with something off the shelf, asshole.

  • Me (unregistered) in reply to Ogbert
    Ogbert:
    "....within a few hours had set up a crontab that took care of that whole process by sending mouse clicks, keystrokes, and so on..."

    wat? How the hell does a cron job (i.e. Unix) manage to send mouse clicks and keystrokes?

    It's the magic of unix. If there is something like this that you might like, there is almost certainly a command line utility that can do it. In this case, the util is called "xdotool".

  • Me (unregistered) in reply to Aaron
    Aaron:
    We're missing a crucial piece of information here, which is what exactly was Mike hired to do?

    I'm not making any insinuations about what actually happened, but I'm wondering if this particular process was outside his scope and the company already had more experienced people working on a more efficient and/or robust solution.

    I had that experience once before at a large company, way back when I was a mere summer intern. Came up with some quick report for QC that turned out to be nearly identical to what their "real" programmers had been working on for a year. Now, those programmers were useless, but I can just as easily imagine a situation where a company is 3 months into the implementation of a fairly large system and doesn't want to worry about future compatibility with some clumsy hack.

    Again, not insinuating - just thinking about what the other side of the story might be.

    I have a string of emails that call this position "Web Developer". I have paperwork that has "Programmer Analyst" written on it, with the boss's signature.

    I don't have a recording of the interview, of course, but in it he did tell me that I'd be a developer, and that it would be somewhat informal in the duties... if I saw something that I could do to make things better, they wanted that.

    This is in contrast to the last conversation I had with him (the warning talk), where he said, and I quote "I know you were hired on as a developer, but that's not really your job" and then proceeds to hint that my job was to help Dennis enter tickets every day.

    The ticket monkeys were earning $14 an hour. I was contract to perm at $27. Even if I had just shut up, numbed my mind and entered tickets all day, they weren't going to pay me that rate to do something they could have another do more cheaply.

  • Me (unregistered) in reply to Patrick
    Patrick:
    No disrespect to Mike, but his setup seemed like an equally perverse solution. I dunno what the problem was, but if he's writing a script which uses mouse clicks he's not really fixing anything. I dunno, maybe Mike was as much to blame for this as they were.

    Equally perverse, perhaps, but the task was done every day by the time we showed up for work. The other guy, he'd take til 1 or 2pm to get it done, or would be busy and it might go undone for the day.

    Until my script was running, it wasn't even being done for the weekends until Monday afternoon.

  • Me (unregistered) in reply to Moss
    Moss:
    "Mike asked for the root password for the dev server..."

    "Hi, can I have the root password for the dev server?" "Who are you?" "I'm Mike, the new guy!" "Oh, alright, then. Just make sure you don't do something like type 'rm -rf'."

    Actually, I'd had root to that machine for 3 months, until they changed the password. I'd had it legitimately.

    Besides myself, there were 4 others on this team. As far as I can tell, all the others did have that root password afterward, as well, as they'd actually have needed it to do what they did too.

  • Me (unregistered) in reply to Joey Stick Eye Smiles
    Joey Stick Eye Smiles:
    "and that he needed a full list of requirements before anything could be changed."

    Gosh, what assholes. They wanted you to actually write down what you wanted to do? Usually, DaVinci-esque scribblings in a notebook are more than good enough.

    No, they wanted a list of what perl modules, libraries, and assorted other software to install. This is a little difficult, if you don't know which perl module will suit the bill, for instance... sometimes you will install them and find they don't quite do what you need them to, and an alternate module needs to be installed. Even more so, sometimes you don't know the dependency tree until you try to install something.

    Trying to explain this to the guy whose expertise can be summed up as "ASP.NET" would have been fun. I would have heard "ubuntu won't install it right"... which is especially fun since the only way to reliably install a perl module is through the cpan shell.

    It wasn't about getting documentation... it was about shutting me down.

  • Me (unregistered) in reply to moz
    moz:
    Ogbert:
    "....within a few hours had set up a crontab that took care of that whole process by sending mouse clicks, keystrokes, and so on..."

    wat? How the hell does a cron job (i.e. Unix) manage to send mouse clicks and keystrokes?

    He used xdotools, as mentioned in the article. He'd need an X server (such as xvfb), but he'd need that anyway to run wine and vnc.

    Maybe he did have something which would work fine without supervision, even if the servers he needed for wine and vnc (and anything else the dev server he sabotaged couldn't do by itself) became unavailable at the worst possible time. It doesn't sound like he ever spoke to anyone who was in a position to evaluate his efforts, though.

    There wasn't anyone there competent to evaluate efforts. My direct supervisor, the man who hired me on and the one who then squashed efforts late on... he was someone that couldn't figure out how to substract two datetimes in an excel spreadsheet to get the elapsed time. I don't even touch microsoft software, but I'd think this obvious. Him? Had 3 people piled around his desk for an hour with that challenge.

  • Me (unregistered) in reply to Not as DULL as you
    Not as DULL as you:
    Orclev:
    When Valve is doing design work on a game it doesn't matter what your job in the company is, you can offer suggestions and ideas (and I'd assume if you had the talent write up a proof of concept) and if the other employees like them they'll be used.

    Which is completely different to what Mike did in this article and to what Rob was talking about with the janitor/Google analogy.

    Your Valve example has unqualified people SUGGESTING changes and then presumably the experts go and implement them if they are considered worthwhile. This article has Mike deciding on his own changes and going about implementing them without consulting the people who really know the systems.

    The systems were an adhoc collection of manual procedures that the borderline computer illiterates had "developed" over a period or 4 or 5 years on their own.

    As for changes, I made none. Every stupid little excel spreadsheet they wanted was done the same way, just automated. The same data they wanted people to copy by hand from shitty java apps into another spreadsheet and then import into mysql... that was the same data I imported much more quickly.

    I wasn't telling them which data they wanted, or when they wanted it. I was just doing it more quickly, and more reliably. It worked on weekends, it worked on the days Charles was out sick.

    In fact, it didn't even preclude people from going through the motions, if they still wanted that. Of course, when Charles would go to check if the day's data was on that shitty little php report, he'd already find it there, without having to dick with it for 2 hours.

    So, call it what you like. I don't give a fuck. Every time your cable modem goes out, rejoice, because they won and I lost, and the original procedures are in place.

  • anonymous (unregistered)

    TRWTF is that Mike needed root server access to implement a horrible hack that sends mouse clicks and keystrokes. He could have done the same thing with VBScript and Windows Task Scheduler. It would have worked just as well, and it would have been just as wrong, and it would have successfully side-stepped the Dicks and Wilsons in Florida. WTF.

Leave a comment on “Fighting the Current”

Log In or post as a guest

Replying to comment #:

« Return to Article