• DrGuz (unregistered) in reply to TDS
    TDS:
    ... There's a lot to be said for complacency and a lot of money to be made off of giving the first taste for free. After all, if people can be diagnosed with addiction to certain programs and computer gadgets, then why shouldn't the programmers treat their software like drugs.

    And when you're ready for the big league, join the game industry! ;-)

  • (cs) in reply to ubersoldat
    ubersoldat:
    44 Comments and still no one has mentioned it!!! This is going to be sweet, let me enjoy this moment... TRWTF is using EXCEL for building SHIT!

    Not exactly... there wasn't any money in the budget to warrant another tool. So something quick and dirty in Excel is exactly what they should get. If they wanted something stable and reliable, its time to take out the pocketbook.

  • (cs) in reply to Stephen
    Stephen:
    holy smoke.. off shored? trustworthy? I've made a living the last few years rewriting the garbage coming from trustworthy offshore developers. I've seen literally hundreds of projects people have had me look at to see what I could do about it, written by the "best" that a southern Asian country in particular has to offer. and I've not seen 2 lines of consecutive code that has ever been anything more than complete trash.

    Agreed. I make a living out of the same industry :)

  • (cs) in reply to proster
    proster:
    ...I'd like to see how mightily you laugh when your job is offshored to someone cheaper than you.
    Here. Fixed that for you.
  • (cs)

    Before I moved in to IT I was in manufacturing,and I wrote a costing application in Access that was pretty well received. Don't laugh, this was the mid-90s.

    Marketing took it over and the only change they made was slap a label on the main screen that said, "by MARKETING".

    Bastards.

  • (cs)

    The way to play this game is to make sure that somebody with clout in the company who likes you (and dislikes, even if only politically, the person you're about to help) knows what you provided and when, and make sure the person you're helping knows they know. Then if this still happens, you just make sure your "insurance person" knows about it. Don't do it with the same person all the time though, or it starts to look like a "so-and-so's golden boy" situation to others in the company.

    This technique has a beneficial effect of weeding out the backstabbers over time as they fight unwinnable political wars over your solution with people who know for a fact what weasels they are and can make them suffer for it. They can't even claim you inflicted a "poison pill" on them as all you did was take credit for your own work.

  • Herby (unregistered)

    There is an easy way to do this. Just make a piece of code that after a month or so, adds proper acknowledgment to the text on the label. It could be as simple as "label software by shipping department". Of course, it would be buried in the source. The delay feature is so everyone would get used to using it.

    Kinda like CAPTCHA stuff. You need to prove you are the REAL programmer.

  • ikes (unregistered)

    TRWTF is that George Foreman is working in a warehouse. You'd think those grills of his would have made him enough money.

  • moshbox (unregistered) in reply to javabeats
    javabeats:
    Stephen:
    holy smoke.. off shored? trustworthy? I've made a living the last few years rewriting the garbage coming from trustworthy offshore developers. I've seen literally hundreds of projects people have had me look at to see what I could do about it, written by the "best" that a southern Asian country in particular has to offer. and I've not seen 2 lines of consecutive code that has ever been anything more than complete trash.

    Agreed. I make a living out of the same industry :)

    We're losing development contracts from our major customer to these offshore groups, but remain the service integrators. I'm still waiting for the customer's bean counters to ask why our support costs are now skyrocketing.

  • John Smallberries (unregistered) in reply to Salami
    Salami:
    "Not in the budget" probably means that the money it takes for a new system would come out of the money the department head gets as a bonus. A lot of places, the department head gets a yearly budget and anything he doesn't spend goes into his bonus pool.
    I saw that episode of The Office.
  • John Smallberries (unregistered) in reply to Kensey
    Kensey:
    The way to play this game is to make sure that somebody with clout in the company who likes you (and dislikes, even if only politically, the person you're about to help) knows what you provided and when, and make sure the person you're helping knows they know. Then if this still happens, you just make sure your "insurance person" knows about it. Don't do it with the same person all the time though, or it starts to look like a "so-and-so's golden boy" situation to others in the company.

    This technique has a beneficial effect of weeding out the backstabbers over time as they fight unwinnable political wars over your solution with people who know for a fact what weasels they are and can make them suffer for it. They can't even claim you inflicted a "poison pill" on them as all you did was take credit for your own work.

    To that I'd add the following: You must not fight too often with one enemy, or you will teach him all your art of war. He will win who knows when to fight and when not to fight. He will win who knows how to handle both superior and inferior forces. He will win whose army is animated by the same spirit throughout all ranks. He will win who, prepared himself, waits to take the enemy unprepared. He will win who has military capacity and is not interfered with by the sovereign.

  • (cs) in reply to Herby
    Herby:
    There is an easy way to do this. Just make a piece of code that after a month or so, adds proper acknowledgment to the text on the label. It could be as simple as "label software by shipping department". Of course, it would be buried in the source. The delay feature is so everyone would get used to using it.

    Kinda like CAPTCHA stuff. You need to prove you are the REAL programmer.

    It might not work in this case, because whoever claimed Jeff's solution as his own had to type all of those printouts. Sooner or later he would read Jeff's name on the code and swap it for his own.

    Of course Jeff could disguise his name as an Ascii number array or something of the sorts, but I think it isn't worth the hassle of obfuscating the code to himself unless he was pretty sure someone would steal it.

  • Buffled (unregistered) in reply to John Smallberries
    John Smallberries:
    To that I'd add the following: You must not fight too often with one enemy, or you will teach him all your art of war. He will win who knows when to fight and when not to fight. He will win who knows how to handle both superior and inferior forces. He will win whose army is animated by the same spirit throughout all ranks. He will win who, prepared himself, waits to take the enemy unprepared. He will win who has military capacity and is not interfered with by the sovereign.
    Dude, seriously. I begin to think programming ain't the right profession for you ;)
  • John (unregistered) in reply to behp
    behp:
    I try to think of things in this way, whoever takes credit for code they didnt write, means he wont understand how it works, and when management wants something added or changed, he will need to strugle.

    captcha=abico (abacus?)

    I've had people take credit for my work/ideas before (an incompetent Tech Lead, to be precise). I warned him never to do it again unless he is 100% certain that I'm not setting him up for failure. He tried again - boy did he look stupid...

  • Diego (unregistered) in reply to darkmage0707077
    darkmage0707077:
    proster:
    ...the reason why people like Jeff can't get their code trusted in the first place.

    The problem wasn't with people trusting his code. They trusted it quite a bit, in fact, as evidenced by Jeff being able to recognize it as his own when they used it. The problem was that they kept it out of the system when Jeff submitted it (i.e. wouldn't admit Jeff had some skill) by using arbitrary in-company rules, and then tried to secretly implement it later as their own coding solution. That kind of behavior almost always squelches innovation and entrepreneurial thinking in a company, which leads to very big problems down the road (sounds like it already has at Jeff's company from reading the first few paragraphs). Your argument, while valid, ignores the above problem that usually creates this kind of behavior in developers.

    It's stuff like this that made me implement my personal rule: if a problem exists that I want to try and solve myself, I create the solution first, then sit on it and wait for someone to ask for it. When they do, I then just hand them the solution I've already made.

    It prevents code swiping like this from various areas (not supervisor, unfortunately, but IT, DBA, higher-level development areas, etc), and keeps me from being blamed too harshly in case my oh-so-brilliant solution mucks up software and code I wasn't aware of at the time (they can blame the app and me for the failure, of course, but they can't ALSO try to claim I was wasting time on this when I could have been doing my real work, which would require me to produce proof I did it in my off-hours: they DID assign me to try and fix it, after all).

    Not to mention that if it's a complex problem (usually is), when they ask me to fix it, I can spend the time normally used for solving the problem to fine-tune and test my pre-made solution to make sure it works right the first time.

    Exactly...well almost.

    I fight for a problem to be addressed, and have solution ready. The solution only ever gets handed over once it has been requested through the correct channels, that is, anyone who is not on my team who wants technical info about the solution can go jump until it's clear that my team is working on it. (ie they can wait for a Programmer's Report or a design doco or whatever, that 'officially' attributes the work to my team)

    Naturally, once the time has been allocated for a solution to be implemented, my team has a few days to play Mafia Wars before releasing the completed product.

  • Stir the Pot (unregistered) in reply to ubersoldat
    ubersoldat:
    44 Comments and still no one has mentioned it!!! This is going to be sweet, let me enjoy this moment...

    wait...

    waiiiiit...

    TRWTF is using EXCEL for building SHIT!

    Isn't Excel ALWAYS used to build SHIT? It's what excel does best...

  • (cs)

    I always thought that code reuse was a good thing...

  • Anonymous (unregistered) in reply to ubersoldat
    wait...

    waiiiiit...

    TRWTF is using EXCEL for building SHIT!"

    ^^^^^^^^^ THIS!!!! ^^^^^^^^^^

  • db (unregistered) in reply to vidar712
    vidar712:
    I always thought that code reuse was a good thing...

    It depends, my WTF was when a developer asked me about web front ends to MySQL and I gave him a quick and nasty thing full of comments about how real authentication should be used at one point and other things that should be changed if it was to be more than a toy - plus links to stuff to read. A few months later I find it unchanged as the front end to a company wide database full of confidential information becuase idiot wanted to be able to get to it from the public internet via a web redirect from the real web server (to be fair they probably were not an idiot, just assured by the lazy developer that "his" "web application" was not just a toy to illustrate a point written by someone else). Bobby tables would have had a lot of fun with that one. The second biggest WTF was the database admin password in plain text in a file accessable from a web browser. The biggest WTF was that it was the same as the root password for a few far more important machines and it would have been published on the net.

  • (cs)

    You know what would be cool? If the spammers started putting the CAPTCHAs at the end of their posts.

  • Bob (unregistered)

    The real WTF: actually wanting the blame for that system when the inevitable happens and something goes terribly wrong, or when someone demands a change that wouldn't even have been possible with the old system and then throws a hissy fit if they don't get it.

    Fine, no credit? That means no blame, but at least the system is better than it was previously. I've heard of worse outcomes.

  • CatSlayer (unregistered) in reply to valerion

    Happens to me every day. A parasite in my dev team doesn't know how to dev (he's been working on a datagrid that shows "select * from ...;" for two month).

    We usually end up sending him pseudocode or even final code 'cause as he's in charge with the server if his code doesn't run, you can't work. And of course once your code is compiled he runs to the project manager to show him how he rules and how his code is cool.

    The funny thing is when you mail him a pseudo code for an SQL query. He uses it "as is" in his server, (of course as the SQL is used in a string in his java server there's no compilation problem), sends everything to production without even trying to execute once and runs to the manager. Of course, as soon as the server blows in pieces, he suddenly remember that it wasn't really his code but yours.

  • Procedural (unregistered) in reply to Capt. Obvious
    Capt. Obvious:
    Procedural:
    no higher up in management ever figured out that the labour costs of rebooting something 16 times per shift far outweigh the cost of an upgrade ?
    Not if all the work is getting done it doesn't. Work isn't paid for second by second. Therefore, if their is 16-reboots worth of slack time a day, it's free.

    Nah, if they have slack time they're not managing hourly labour properly, and that ends up costing the company in reduced profits, morale erosion and other inefficiencies.

  • Procedural (unregistered) in reply to Franz Kafka
    Franz Kafka:
    Capt. Obvious:
    Procedural:
    no higher up in management ever figured out that the labour costs of rebooting something 16 times per shift far outweigh the cost of an upgrade ?
    Not if all the work is getting done it doesn't. Work isn't paid for second by second. Therefore, if their is 16-reboots worth of slack time a day, it's free.

    Nope, this isn't an isolated incident - this points to a cheapish attitude which will carry over to the more important work. In short, it isn't free, it increases risk, and that's something that business should understand.

    Well said !

  • Johnny Awkward (unregistered)

    You should have seen some of the label writing code I had to replace for Courtaulds once. It was about 2000 lines of PASCAL (proper, old fashioned PASCAL with CAPITAL LETTERS), which had no local variables at all. There was no spec. Well, that's not entirely true - there were about 250 change requests which had been hacked into the code over the previous 10 years. The code ran on an HP150 (which was half way between a DOS machine and a mini-computer) and only on an HP150.

    I had the fun task of coverting it into a Delphi programme to run on a PC. The code was full of interesting if-then-elses: if bit 6 of the 18th byte of input is a 1, print the 3rd character of output a 10th of an inch further to the left. Unless bit 7 is also 1 (although not when bits 19 through 21 have even parity). That kind of thing. A little more than half and hour knocking an Excel spreadsheet together.

    Two months later we installed it on site, and I had about 10% confidence they wouldn't find problems with it. They were going to go live with it after testing it for a week or two. A week later they paid us and then went bust. Which was great, because it meant I didn't have to support the crap I'd written to replace the crap my predecessors had written.

  • C10B (unregistered)

    what a very thoroughly dull story.

    can the site be restricted to interesting stories only please?

    the summary of this story is "man writes excel macro and someone else uses it". legendary.

  • Johnny Awkward (unregistered)

    The Daily WTFified version:

    In 1999, Arthur Doobrey started work at Wizzbang Enterprises. On his first day he walked into the office, and Mr Gilly met him. "You'd better get ready for some cutting edge coding" he said, as he showed Arthur to his wheezing old 486. Great thought Arthur, this sounds like fun.

    The next day, Mr Gilly showed him the cupboard of change requests. "This is where we keep our change requests" he said.

    Two weeks later, Arthur got his first assignment. It was to write some software for Wizzbang's biggest customer, Courtaulds. Arthur was pleased to finally be let loose on some real code.

    The project was to replace the customer's label printing software. It was about 200000 lines of PASCAL(proper, old fashioned PASCAL with CAPITAL LETTERS), which had no local variables at all. There was no spec. Well, that's not entirely true - there were about 250 change requests which had been hacked into the code over the previous 10 years. The code ran on an HP123Z (which was half way between a Spectrum and a Cray) and only on an HP150.

    Andrew had the fun task of coverting it into a Delphi programme to run on a PC. The code was full of interesting if-then-elses: if bit 6 of the 18th byte of input is a 1, print the 3rd character of output a 10th of an inch further to the left. Unless bit 7 is also 1 (although not when bits 19 through 21 have even parity). That kind of thing.

    After about half an hour Arthur had knocked together the replacement app and showed it to Mr Gilly. Mr Gilly frowned. "That was too fast. You need to write it properly". Arthur went back to his desk and played solitaire for the next two months.

    After Mr Gilly approved how long this had taken, they installed it on site. Arthur had about 10% confidence they wouldn't find problems with it. They were going to go live with it after testing it for a week or two.

    After a week, Mr Gilly received a call from the site manager, Mr Badcrumble. "Your software looks great. We haven't had a chance to try it out yet, but we're sending though a cheque." The cheque arrived, and then Courtaulds prompty went bust, and Arthur never had to support the software he'd written. Which was a shame, because Arthur was probably the best programmer in the world, and the software would have worked perfectly.

  • M.I.K.e (unregistered)

    Not really that surprising an ending.

    I once worked as an intern for a company where they used a magnetic chart to show employee status, ie. in-house, at-customers, ill, on-vacation. The problem was the company was growing quickly and all developers were in a different building soon. So each morning you had to go to the old building to move your coloured magnet to "in-house" and go to work in the new building. At the end of the day you had to go to the old building again to take the magnet away.

    We had been thinking of something similar for the intranet instead, but we weren't sure if our boss would approve or even understand it. Since our project didn't have any pressing matters at that moment I spent some time to develop it: Learn a little bit about ASP, creating tables in an Oracle database, and getting the whole thing to work.

    I don't know how they noticed it, but most developers started it almost as soon as I had the first prototype running. Unfortunately I had to kill some of their data entries every time I changed the database layout, since I had some ideas of how to make it better.

    In the end you had more status possibilities ("occupied", "back soon"), could enter a phone number and a location and even add a picture of each employee.

    We showed it to the boss, he approved it, and it was handed to the web team.

    At the next employee meeting the whole thing was presented by someone of the web team. All they changed was the background of the page, but basically they took all the credit for it. Although I'm pretty sure that at least all the developers in the new building knew who actually did it.

    Needless to say I was pissed (I was still young and idealistic), but those things happen all the time...

  • Really (unregistered)

    So it was written and tested in under 30 minutes? What did it consist of, adding two columns together?

  • Local Guru (unregistered) in reply to M.I.K.e
    M.I.K.e:
    Needless to say I was pissed (I was still young and idealistic), but those things happen all the time...

    To you, boy, to you.. ;)

  • L (unregistered)

    Some years ago, I was doing tech support for a paint seller. They had two paint mixing machines critical to their operation, that looked and worked a bit like washing machines : you specified a set of "basic" paints to mix, and the machines mixed it together and poured it in a pot. The two PCs used to control these machines were similar to the ones from the story : ancient 386 with DOS, and like in the story, the software couldn't run on anything newer than that.

    The most amazing thing was that, for years, the PCs were staying directly ON the mixing machines. Dozens of times per day, the PCs were vigorously shaken while the machines were mixing. We tried to get them to put the PCs elsewhere, but they never did. What's really amazing is that they kept working. Well, actually the hardware was working ; the software was buggy as hell, and all the documentation and config files were in italian (I'm french).

    Sadly I forgot the details of my work there. I'm sure it would have made a great WTF :)

  • (cs)

    For a moment while reading the introduction (just a moment, unfortunately) I thought the story would involve some catastrophic consequence of ignoring RFC1178.

  • James (unregistered)

    OK, the real WTF is that this guy still worked there and hadn't moved to a decent job long before this.

  • Lee K-T (unregistered) in reply to L
    L:
    Some years ago, I was doing tech support for a paint seller. They had two paint mixing machines critical to their operation, that looked and worked a bit like washing machines : you specified a set of "basic" paints to mix, and the machines mixed it together and poured it in a pot. The two PCs used to control these machines were similar to the ones from the story : ancient 386 with DOS, and like in the story, the software couldn't run on anything newer than that.

    The most amazing thing was that, for years, the PCs were staying directly ON the mixing machines. Dozens of times per day, the PCs were vigorously shaken while the machines were mixing. We tried to get them to put the PCs elsewhere, but they never did. What's really amazing is that they kept working. Well, actually the hardware was working ; the software was buggy as hell, and all the documentation and config files were in italian (I'm french).

    Sadly I forgot the details of my work there. I'm sure it would have made a great WTF :)

    Yeah that sometimes happens when you shake source code too much. It ends up looking like Italian...

  • mjk (unregistered)

    mby the code was sooooo simple, that the it guy just thought that it was free to use :)

    or he just got it without credits.

    at least the warehouse guy could acknowledge the work thou. sorry Jeff mby next time :)

  • Zapp Brannigan (unregistered) in reply to mjk

    All of the comments concerning 'not getting credit' lead me to ask the question, is this a generational thing? I had read that the millennial generation needs constant positive reinforcement and affirmation. I don't know if this is true because I don't have first hand experience. How how much credit do you need for writing a couple of VBA functions? It's not like the cure for cancer or cold fusion was stolen. They just re-used some code internally.

  • Mike (unregistered) in reply to proster
    proster:
    People like you make me sick. You are a shame on our profession and are partly the reason why people like Jeff can't get their code trusted in the first place. Yes we are in a position of power, but with that power comes great responsibility. I'd like to see how mightily you laugh when your job is offshored to someone more trustworthy.

    TopCod3r!

  • PRMan (unregistered) in reply to C

    Why couldn't they just use DosBox or some other emulator? >:-)

    Not in the budget...

  • Anonymous (unregistered) in reply to Zapp Brannigan
    Zapp Brannigan:
    It's not like the cure for cancer or cold fusion was stolen...
    Holy crap, thay can cure cold fusion now?
  • Zapp Brannigan (unregistered) in reply to Anonymous
    Anonymous:
    Zapp Brannigan:
    It's not like the cure for cancer or cold fusion was stolen...
    Holy crap, thay can cure cold fusion now?
    The light goes on and I realize why my query results are wrong.
  • (cs) in reply to TDS
    TDS:
    After all, if people can be diagnosed with addiction to certain programs and computer gadgets, then why shouldn't the programmers treat their software like drugs.

    Yep, that's why we call them users.

    Unfortunately, a lot of software companies seem to have this attitude.

  • TRWTF (unregistered)

    The real WTF is that he didn't sue for copyright infringement. Since he wrote it at home, and didn't technically hand over the application for in house usage (yes, I know it's "just" a VB app) the company took his time and effort and stole it.

    There was no verbal contract in usage considering the application was denied, and there certainly was no written one.

    It's one of those patent lawsuits waiting to happen if the "developer" has the balls to sue for it.

  • Joao Marcus (unregistered) in reply to Procedural
    Procedural:
    Poor guy; helps for free and doesn't even get credit (I'm sure there's a pun in that somewhere.) This is a major WTF, but not the only one: no higher up in management ever figured out that the labour costs of rebooting something 16 times per shift far outweigh the cost of an upgrade ?

    Remember those movies where the vampire hunter throws holy water at a bad vampire? It hurts the vampire. His skin starts to burn, he starts screaming in pain, etc. Replace "bad vampire" with "management people" and "holy water" with "a book about a better technology that would improve productivity a lot". That's why management didn't figure out the costs of the constant rebooting. They probably touched the new book and got hurt.

  • Shinobu (unregistered)

    I know you're supposed to code for the company and not for yourself and all that, but the reality is that programmers like to get some credit for their work and that they perceive companies where things like this happen as very bad work environments. If it kills the morale of your programmers, don't do it.

  • TopicSlayer (unregistered) in reply to Anonymous

    Needs more parenthesis:

    "It's not like the (cure for cancer) or (cold fusion) was stolen."

  • Anonymous Coward (unregistered) in reply to L
    L:
    Some years ago, I was doing tech support for a paint seller. They had two paint mixing machines critical to their operation, that looked and worked a bit like washing machines : you specified a set of "basic" paints to mix, and the machines mixed it together and poured it in a pot. The two PCs used to control these machines were similar to the ones from the story : ancient 386 with DOS, and like in the story, the software couldn't run on anything newer than that.

    The most amazing thing was that, for years, the PCs were staying directly ON the mixing machines. Dozens of times per day, the PCs were vigorously shaken while the machines were mixing. We tried to get them to put the PCs elsewhere, but they never did. What's really amazing is that they kept working. Well, actually the hardware was working ; the software was buggy as hell, and all the documentation and config files were in italian (I'm french).

    Sadly I forgot the details of my work there. I'm sure it would have made a great WTF :)

    I think it already did.

    Captcha: refoveo - Must be French.

  • Anonymous Coward (unregistered) in reply to Lee K-T
    Lee K-T:
    L:
    Some years ago, I was doing tech support for a paint seller. They had two paint mixing machines critical to their operation, that looked and worked a bit like washing machines : you specified a set of "basic" paints to mix, and the machines mixed it together and poured it in a pot. The two PCs used to control these machines were similar to the ones from the story : ancient 386 with DOS, and like in the story, the software couldn't run on anything newer than that.

    The most amazing thing was that, for years, the PCs were staying directly ON the mixing machines. Dozens of times per day, the PCs were vigorously shaken while the machines were mixing. We tried to get them to put the PCs elsewhere, but they never did. What's really amazing is that they kept working. Well, actually the hardware was working ; the software was buggy as hell, and all the documentation and config files were in italian (I'm french).

    Sadly I forgot the details of my work there. I'm sure it would have made a great WTF :)

    Yeah that sometimes happens when you shake source code too much. It ends up looking like Italian...

    You laugh, but we had an Italian dev on our team once. To this day I come across dialog boxes, variables, and comments written in Italian. At least the financial reporting is in US Dollars and not in Italian lira.

  • MetaMan (unregistered)

    Just ask yourself, what would Jessica Simpson and Megan Fox do in a situation like this?

  • (cs) in reply to Zapp Brannigan
    Zapp Brannigan:
    All of the comments concerning 'not getting credit' lead me to ask the question, is this a generational thing? I had read that the millennial generation needs constant positive reinforcement and affirmation. I don't know if this is true because I don't have first hand experience. How how much credit do you need for writing a couple of VBA functions?

    I don't think it's the "not getting credit" part of it. It's the "someone else taking the credit" part.

    I don't care if my input to the corporate beast is swallowed up and becomes part of a mass of uncredited system functionality. However, if somebody else were to try to claim "I did that" about something I did, I would be led to protest vocally, particularly if they clearly had incorporated my work into a solution and then held it back waiting for a time they could "save the day" with it and look good -- most particularly if those same people had earlier rejected my effort to do what they did later using the very work they now claimed as their own.

  • Synchronos (unregistered) in reply to Anonymous
    Anonymous:
    Zapp Brannigan:
    It's not like the cure for cancer or cold fusion was stolen...
    Holy crap, thay can cure cold fusion now?

    Nonononono, they have created a fusion of the cure for cancer and the cure for cold.

Leave a comment on “Not in the Budget”

Log In or post as a guest

Replying to comment #:

« Return to Article