Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming

Lies Programmers Tell Themselves 452

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 arkhan_jg ( 618674 ) on Friday March 14, 2014 @01:41PM (#46484795)

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

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

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

        • An approach pioneered by the OOXML team at Microsoft.

        • "I can write this in a slow, OO language using OPM (other people's modules) and it'll be quick to target, bug free, lightweight, and fast. Because, uh, faster hardware and, uh, derp" Also, "I don't need to learn C, I have (fill in the blank with the latest fad language that purports to save programmers from having to really learn to program)" and also "I can use the (fill in the blank with the latest agile / tricky / ultra-testable) technique to Make My Code Shine!"

          Oh yeah, and this charmer: "I don't have t

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

      • Re:Hofstadter's Law (Score:4, Interesting)

        by sootman ( 158191 ) on Friday March 14, 2014 @03:01PM (#46485759) Homepage Journal

        It works both ways -- everyone else believing that lie is the only way I ever get anything done!
         
        "Oh, I'm not allowed to build this trivial-but-handy data-driven web app in a day? I have to write a spec so I.T. can spend 6 months totally overbuilding it (and implementing it badly and no one will be happy with the result)? OK then... Well, it's very code-driven... I can actually make a working prototype and take screenshots faster than I could build a wireframe. Let me just whip up a quick prototype and let a couple people use it so we can make sure that my idea matches what they want, and then if they like it, I'll write up something that you can give to I.T."
         
        ... Years later, mine is still in use. And working just fine, thankyouverymuch, with nary a hiccup. And yet I still have to keep doing this trick, even after I point out my past successes. Luckily, they keep falling for it. I feel like Lucy holding the football for Charlie Brown.

      • by BasilBrush ( 643681 ) on Friday March 14, 2014 @04:04PM (#46486401)

        If I use "cunt", "fuck" and "shit" for variable names whilst I'm hacking something out, I'll be sure to come back later and give them proper names before I submit the code.

        • Re: (Score:3, Funny)

          "shit", "piss", "fuck", "cunt", "cocksucker", "motherfucker", and "tits" are all you should ever need...
    • loyalty (Score:5, Funny)

      by Anonymous Coward on Friday March 14, 2014 @02:34PM (#46485405)

      If I keep working these extra hours, the company will reward me with big raises and job security.

  • Lame (Score:5, Interesting)

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

    Most of these are obvious and well understood.

    Some (slightly less obvious) ones:
    - Something must be wrong with this library (that is used successfully by everyone else)
    - Theoretically two threads could try to change that variable at the same time, but it’ll never actually happen
    - Just about anything starting with "no one will ever"
    - Anyone who wants to use this class will look at the code / documentation and see that they can't actually use it in that (usually intuitive) manner.

    Also can we please stop posting articles from itworld. They are all the same: tiny bits of content split over a ridiculous number of pages to maximize ad revenue.

    Seriously, this is like 1990s levels of ad spamming. First you have the full window click through ad, then you have ads on every 10 word slide, a click through in the middle of the slides, and then just for good measure the last slide isn’t a content slide but yet another ad!

    I feel like I need 10 levels of toolbars and bonzo-buddy running in the background to really appreciate the experience of this site.

    • Re: (Score:3, Informative)

      by mbone ( 558574 )

      Also can we please stop posting articles from itworld. They are all the same: tiny bits of content split over a ridiculous number of pages to maximize ad revenue.

      Seriously, this is like 1990s levels of ad spamming. First you have the full window click through ad, then you have ads on every 10 word slide, a click through in the middle of the slides, and then just for good measure the last slide isn’t a content slide but yet another ad!

      I feel like I need 10 levels of toolbars and bonzo-buddy running in the background to really appreciate the experience of this site.

      This

      I generally just don't click through anything that doesn't provide the article (picture, whatever) in the original link. When, for some reason (as with this article) I do, I generally feel (as with this article) cheated.

    • by Kremmy ( 793693 )
      Ad-blockers are partially responsible for this, in that the ad blocker will make it so the person posting the article does not see that it is a haiku etched into a marble against a backdrop of advertisements.
    • by sjames ( 1099 )

      Let's not forget "This program will be revised/replaced long before that becomes an issue".

    • Re:Lame (Score:4, Funny)

      by norminator ( 784674 ) on Friday March 14, 2014 @02:06PM (#46485095)
      I liked how on the full-page had it said "Your article is loading", as if the ad was only there to fill in the time it takes to load and process the article... In an article about lies...
  • by AioKits ( 1235070 ) on Friday March 14, 2014 @01:22PM (#46484519)
    My personal favorite! *sigh* Oh well.
  • Lies (Score:5, Funny)

    by boundary ( 1226600 ) on Friday March 14, 2014 @01:22PM (#46484521)
    "My facial hair makes me look interesting and makes up for my lack of social graces."
  • by globaljustin ( 574257 ) on Friday March 14, 2014 @01:22PM (#46484529) 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

    • by mrchaotica ( 681592 ) * on Friday March 14, 2014 @01:38PM (#46484751)

      Gentoo is a kind of (species of) penguin, just as Gentoo Linux is a kind of (distribution of) Linux.

      • it's still just as confusing & alienating

        Look at Bluetooth's name origin...***technically*** you can see what they were thinking but that doesn't make it any less confusing:

        The word "Bluetooth" is an anglicized version of the Scandinavian Blåtand/Blåtann, (Old Norse blátnn) the epithet of the tenth-century king Harald Bluetooth who united dissonant Danish tribes into a single kingdom, according to legend, introducing Christianity as well. The idea of this name was proposed in 1997 by Jim

        • Bluetooth is dead - Netcraft\\\\\\\
          I've seen his tomb - he's buried in Roskilde Cathedral. It's about 30km west of Copenhagen, but you can get there with the Copenhagen city transit pass, and don't need to burn a trip on your railpass. Good museum of Viking ships there, which they'd found sunk in the harbor.

        • by Cenan ( 1892902 )

          It has always pissed me off that they thought it would be cool to hijack the name in an effort to be clever, since it falls flat on it's face for 99.99% of the world's population. And even if you happen to find a Dane and ask him about Harald Blue Tooth, chances are pretty good that the only things he'll know are

          a) He was some kind of Viking King.
          b) He had a blue tooth.
          c) According to legend he got duped by a priest into accepting Christianity, using a wet towel, a camp fire and a miraculous healing.
          d) He w

    • by hazah ( 807503 )
      Ford? Chrysler?
    • ex: Yahoo, whatsapp, tumblr, Gentoo, etc etc

      Except Gentoo is a species of penguin, so it is at least somewhat relative

    • 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 Greyfox ( 87712 )
        Bwahaha! A few years back, they had a contest to rename The Gimp. I can't help but notice that it's still called The Gimp. I spent a couple of days trying to figure out how to shoehorn an acronym for "GOATFUCKER," but petered out at 4 or 5 letters. You know if I'd managed to pull it off, that's what they would have renamed it to...
  • by mbone ( 558574 ) on Friday March 14, 2014 @01:23PM (#46484533)

    I'll document this code once I'm done.

  • Lie 10 (Score:5, Informative)

    by n1ywb ( 555767 ) on Friday March 14, 2014 @01:24PM (#46484563) Homepage Journal
    Lie 10: itworld.com has interesting, informative, insightful, and meaningful content.
  • Case in point... (Score:2, Insightful)

    by Anonymous Coward

    "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

    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

  • by lemur3 ( 997863 ) on Friday March 14, 2014 @01:25PM (#46484589)

    oh uhh lies programmers tell themselves..

    how about

    this new website design is going to be great, our users will love it!

  • by Anonymous Coward

    "I am a good programmer."

  • 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."
  • Annoying link! (Score:5, Informative)

    by antdude ( 79039 ) on Friday March 14, 2014 @01:30PM (#46484637) Homepage Journal

    http://deslide.clusterfake.net... [clusterfake.net] OR http://desli.de/11IH [desli.de] for one ugly web page to read all at once! ;)

  • 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 dmomo ( 256005 ) on Friday March 14, 2014 @01:33PM (#46484675)

    1) People will enjoy this content more if it's in a slideshows.
    2) It's OK if ad-blocking breaks my core javascript functionality.
    3) Nobody is going to view this site in a modern browser.

  • Believing this while starting in a pale face with glassy eyes, and a small tear while explaining what I did today to my wife
  • 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.
  • by SwashbucklingCowboy ( 727629 ) on Friday March 14, 2014 @01:35PM (#46484709)

    I'm behind a firewall

  • 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

  • by ThatsNotPudding ( 1045640 ) on Friday March 14, 2014 @01:36PM (#46484725)
    "Screw comments! It was hard to write, it should be hard to read!"
  • I'll never need this code again so there's no need to document it.
  • 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 Anonymous Coward on Friday March 14, 2014 @01:42PM (#46484801)

    I have lots of time to get this code done.....I'll catch up on Slashdot's articles......

  • by account_deleted ( 4530225 ) on Friday March 14, 2014 @01:43PM (#46484817)
    Comment removed based on user account deletion
  • 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 bradgoodman ( 964302 ) on Friday March 14, 2014 @01:44PM (#46484837) Homepage
    "It's just a temporary solution".

    As theold adage says: "There's nothing more permanent that a temporary solution".

  • "I don't need to be knowledgeable in the operating system this will run on!" I'm always shocked about how little many developers, especially Windows developers, actually know about the OS they are writing software for.
    • Subset of Lie # 12: "It must be run as root/Administrator." Also known as: "I need the user program to access system calls and the *BEST* way to accomplish that is to run the program with admin privilages since admin can do that without annoying pop-ups.

      It amazes me how many Win7 programs I run into that were originally programmed with XP or Win2000 in mind. The official Tech Support answer is: Oh, you have to be logged in as an administrator. If that doesn't work, right click on it and run it as an adminis

  • RTFM ... Everything is in the documentation....

  • We don't need to worry about locking or concurrency - It'll never need to be run on more than one thread/core at a time.
  • I say this line often, and I'm usually right.

    How is this a lie?

    • I say this line often, and I'm usually right.

      Every time you said it and it wasn't right, it was a lie you told yourself.

  • As a tester my response usually was "I did it and if I can do it so will someone else".

  • "There's no need to use <relevant thing I don't know>, we can throw something together in <irrelevant thing I happen to know>"

    "We should use <thing nobody knows> because <it's trendy>"

  • Are you sure these are lies programmers tell themselves? Or lies they believe people wish to hear from them?

  • They will never realize that I have no idea what I'm doing!

  • And if it does, at least that's a good problem to have.
  • Anyone who knows Cobol/C++/Java/Perl can understand it perfectly.

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

  • by neilo_1701D ( 2765337 ) on Friday March 14, 2014 @02:16PM (#46485193)
  • 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 Z00L00K ( 682162 ) on Friday March 14, 2014 @02:32PM (#46485387) Homepage Journal

    People that don't think that they need to fix compiler warnings produce programs that aren't always reliable.

    And even if the code is free of warnings - there may still be a need to run 'lint', 'findbugs' or any similar tool that does a more thorough analysis of the code in order to detect problems that can grow over time.

  • by painandgreed ( 692585 ) on Friday March 14, 2014 @02:35PM (#46485413)

    "I'll get back to work after reading the comments on this next /. article."

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

    Our multiplayer servers can handle the load on release day

  • by Lumpy ( 12016 ) on Friday March 14, 2014 @02:50PM (#46485619) Homepage

    I'll be paid fairly for the work I am doing....

    It never happens...

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

Math is like love -- a simple idea but it can get complicated. -- R. Drabek

Working...