Forgot your password?
typodupeerror
Programming

Lies Programmers Tell Themselves 452

Posted by Soulskill
from the i'll-just-browse-the-internet-while-this-compiles dept.
itwbennett writes "Everybody lies to themselves now and again in both their personal lives ('my bathroom scale probably needs to be recalibrated') and professional lives ('this code doesn't need commenting'). ITworld has compiled some of the common lies programmers tell themselves. Here are a few examples: 'This bug won't take long to fix.' 'No one could possibly fail to understand my simple user interface.' 'Code is self documenting.' 'My homebrew framework will be nimble, lightweight, debugged, and easy to use.' 'I know this is dirty code, I will rewrite it later.' 'It's just one line... it won't break anything.' '"It works on my machine.' 'I don't need version control.' 'It's written in ____, so it'll be easy to ____.' What would you add to this list?"
This discussion has been archived. No new comments can be posted.

Lies Programmers Tell Themselves

Comments Filter:
  • Hofstadter's Law (Score:5, Insightful)

    by Kensai7 (1005287) on Friday March 14, 2014 @01:20PM (#46484491)

    "It always takes longer than you expect, even when you take into account Hofstadter's law."

  • by globaljustin (574257) <justinglobal AT gmail DOT com> on Friday March 14, 2014 @01:22PM (#46484529) Homepage Journal

    "I need to pick wacky, completely abstract name (that have nothing to do with function) for the new thing I made...that's a novel idea that will make it easy for people to remember!!"

    ex: Yahoo, whatsapp, tumblr, Gentoo, etc etc

  • Case in point... (Score:2, Insightful)

    by Anonymous Coward on Friday March 14, 2014 @01:25PM (#46484565)

    "Posting my article as a slideshow is a good idea"

  • Terrible Article (Score:5, Insightful)

    by Anrego (830717) * on Friday March 14, 2014 @01:25PM (#46484581)

    We arn't beating a dead horse here. We are beating the pink stain on the floor where the horse used to be. While we are at it, lets talk about how shitty airline food is.

    My contribution: this is just a prototype to show that this will work, the real version will be implemented properly.

  • by Anonymous Coward on Friday March 14, 2014 @01:25PM (#46484583)

    with very few exceptions, any documentation that might come with code is completely
    trivial and to the extent that it isn't, totally out of date

    lets add annotations to the top of functions which merely repeat their signatures

    and then run it through a formatter to rip out the bodies

    then publish the context-less signatures as an html and pdf

    and congratulate ourselves on having well documented code

  • The Whopper (Score:5, Insightful)

    by American AC in Paris (230456) on Friday March 14, 2014 @01:30PM (#46484629) Homepage
    "Well if you let the programmers run the show, things would be so much better."
  • by DaveV1.0 (203135) on Friday March 14, 2014 @01:32PM (#46484651) Journal
    "I am logging what is needed to trouble shoot a problem."
  • by sandytaru (1158959) on Friday March 14, 2014 @01:34PM (#46484691) Journal
    * Changing X will have absolutely no effect on Y since I don't know any place where Y references X.

    * I'll just take care of all the small bugs first before tackling this monster deliverable.

    * Pulling this code out of the client and putting it into a store procedure won't break anything.
  • Another (Score:4, Insightful)

    by 93 Escort Wagon (326346) on Friday March 14, 2014 @01:36PM (#46484723)

    As soon as I've finished the main part, I will go back and deal with any sections I've flagged with # TODO

  • It's very basic (Score:4, Insightful)

    by portwojc (201398) on Friday March 14, 2014 @01:40PM (#46484789) Homepage

    It should work in any browser.

  • Lie #11 (Score:4, Insightful)

    by EvilSS (557649) on Friday March 14, 2014 @01:41PM (#46484797)
    "Users love slide shows!"
  • by Anrego (830717) * on Friday March 14, 2014 @01:43PM (#46484819)

    "All our users are complaining bitterly about these changes, but I'm sure once they get used to it they will see we had it right all along."

    See also: gnome

  • by ralphtheraccoon (582007) on Friday March 14, 2014 @01:43PM (#46484821)

    What the ? I can't understand this code straight away without thinking about the problem or why they wrote it this way? It's shit!

    Actually, a lot of problems are complex, and there isn't a single straightforward way to implement it. It could be that doing it the obvious way works - up to a certain point, and then the whole thing needs writing in a new totally non-obvious more complex way, in order to cope with x. (latency, bandwidth, text encoding, ACID compliance, European data protection law, occasonal data spikes which make the stack explode if you use a recursive function, certain servers only having python 2.6 on them still, etc. etc. etc.)

  • by mwvdlee (775178) on Friday March 14, 2014 @01:59PM (#46485017) Homepage

    "I'll update the documentation to match the implementation".

  • by NotDrWho (3543773) on Friday March 14, 2014 @02:02PM (#46485053)

    GIMP is just a cute acronym for "GNU Image Manipulator," and will in no way make people not take this application seriously or hesitate to adopt it in any serious environment.

  • by Opportunist (166417) on Friday March 14, 2014 @02:15PM (#46485183)

    "These specs are now exactly what the client wants, no need to think of eventualities"
    "Nobody will ever need that feature"
    "I don't need to comment that, it's obvious what it does"
    "Once the prototype runs, it's going to be easy"
    "I'll do it right, then I'll never ever have to touch it again"
    "One last meeting to go to"
    "There's no possible way this could become a security risk"
    $change + "can't break anything"
    "It COULD create a race condition in theory, but it can't happen in reality"

    And finally, the ever popular
    "I'll just slap something together now so we can ship it, I'll eventually get around to do it right"

  • Oh frameworks... (Score:5, Insightful)

    by razathorn (151590) on Friday March 14, 2014 @02:18PM (#46485221)

    Let us not forget that almost every framework you "should use" started out as a framework that "shouldn't be written." Only after enough people changed their mind, did the original author(s) become visionaries instead of "people who reinvented the wheel." I find that the tendency to "don't write that, it's already been written!" has been greatly blown out of proportion and people are allergic to actual software engineering. In other words, if they do more than extend / implement a predefined interface or glorified configuration on a single class instance... like heaven forbid they define an interface, base class, or object model with multiple things that derive it, then by god, they've gone too far! There is a time and place for frameworks, and realizing that the time and place isn't "every freak'n time" is just as important as not constantly reinventing the wheel.

  • From Scratch (Score:5, Insightful)

    by asylumx (881307) on Friday March 14, 2014 @02:21PM (#46485259)
    "If we rewrite this from scratch, it'll be WAY better!"
  • by jaymz666 (34050) on Friday March 14, 2014 @02:27PM (#46485319)

    None of these hard coded values will make it into production, we'll rewrite those entire sections and use property values and external variables to define them.

  • by R3d M3rcury (871886) on Friday March 14, 2014 @02:37PM (#46485445) Journal

    As it was explained to me by a marketing guy, "Unfortunately, 'your machine' is not a sufficiently large market."

  • by jaymz666 (34050) on Friday March 14, 2014 @02:39PM (#46485491)

    Our multiplayer servers can handle the load on release day

  • by mooingyak (720677) on Friday March 14, 2014 @02:56PM (#46485687)

    "I'll just fix this quick and dirty for now, management will allow me time to redo it properly later."

    The standard method for that is to grossly overestimate something else and then fix the original in the extra time.

  • by Anonymous Coward on Friday March 14, 2014 @03:00PM (#46485749)

    I frankly admit my code is crap. Because.

    a, The problem was explained to me with various amounts of hand waving.
    b. I had to figure out the requirements as I went along.
    c. Some of those I didn't get till the very end.
    d. I had dick all experience with the language and tools.
    e. It needed to just get done and start justifying it's existence.
    f. No one would buy a car if the opened the hood and found it was powered by a one eyed cat in a large hamster wheel held together with duct tape and wire. Software, yeah no, the customer doesn't care. They do care about deadlines and money.

  • by gestalt_n_pepper (991155) on Friday March 14, 2014 @03:02PM (#46485775)

    Here's a short list of interface lies....

    1) My error message is meaningful and helpful.
    Sure. Like, "Can't find file" with no explicit reference ON THE DIALOG as to the the file name you typed in or the path it was supposed to be in, because God knows, we wouldn't want the user to be able to tell IN A SECOND where the problem was. No, let's make the user *dig* for it.

    2) It's OK to shove warning and alert dialogs into people's faces.
    After all, when we're at a restaruant, don't we *all* want the waiter to interrupt every few seconds with the night's special, warnings about peanuts, and the effect of alcohol on pregnant women. It's just as wonderful and helpful in software.

    3) It's OK to make users wait.
    Because users care *so much* about your little issues with processes or your inability to put things into separate threads while you keep the interface alive. I mean, when you're in a restaurant, don't you *love* it when the waiter ignores you because they've got something better to do?

    4) It's best to steal input focus from the user.
    After all, who knows where they'll type? And so what if they're already doing something else, what could be more important than MY little dialog? Modal dialog, of course, because they shouldn't do anything else until they pay attention to ME!

    5) We'll help the user by refreshing his whole screen!
    I mean, there's just nothing better than the waiter who rearranges everything on the table after you've started eating, just to make sure you have everything and the food is truly fresh! Of course, this couldn't be a bad habit of lazy, uncaring programmers who couldn't be bothered to get the screen or list right the first time before presentation. No. Certainly not.

  • by Anonymous Coward on Friday March 14, 2014 @03:22PM (#46485991)

    I was asked to teach a series of classes at my workplace on web design. When it came time to recommend an image editor, I ended up making the students use a commercial program. I would have much preferred to recommend GIMP, had it not been for the name. Not only does it call to mind a certain scene from a movie that many people are familiar with, but it's also a VERY offensive term for the handicapped. No way was I going to use it in a class environment.

    True story. No kidding.

    If you want to give your nightvision gear software the acronym "NIGGER," that's your right. But don't act surprised when people don't take it seriously or want to use it.

Never try to teach a pig to sing. It wastes your time and annoys the pig. -- Lazarus Long, "Time Enough for Love"

Working...