Slashdot Mirror


Is 'Brogramming' Killing Requirements Engineering?

chicksdaddy writes "Veracode's blog has an interesting piece that looks at whether 'brogramming' — the testosterone- and booze-fueled coding culture depicted in movies like The Social Networkspells death for the 'engineering' part of 'software engineering.' From the post: 'The Social Network is a great movie. But, let's face it, the kind of "coding" you're doing when you're "wired in"... or drunk... isn't likely to be very careful or – need we say – secure. Whatever else it may have done, [brogramming's] focus on flashy, testosterone-fueled "competitive" coding divorces "writing software" – free form, creative, inspirational – from "software engineering," its older, more thoughtful and reliable cousin.' The article picks up on Leslie Lamport's recent piece in Wired: 'Why we should build software like we build houses' — also worth reading!"

432 comments

  1. Brogramming??? by Bigbutt · · Score: 5, Insightful

    Can we fucking kill this meme right now?

    [John]

    --
    Shit better not happen!
    1. Re:Brogramming??? by Anne_Nonymous · · Score: 5, Insightful

      Judging from some of the roofers I've known, drunk would be exactly the way to "build software as we build houses".

    2. Re:Brogramming??? by jeffmeden · · Score: 2

      This is why roofers are responsible for the orderly arrangement of asphalt squares and not something delicate and precise like nailing two pieces of wood together...

    3. Re:Brogramming??? by telekon · · Score: 4, Insightful

      I remember when we called this sort of thing "cowboy coding."

      Now I feel so old, I'm imagining there were actual cowboys.

      --

      To understand recursion, you must first understand recursion.

    4. Re:Brogramming??? by JLavezzo · · Score: 1

      Napoleon Bronapart and Broan of Arc both support your efforts.

    5. Re:Brogramming??? by ElectricTurtle · · Score: 1

      Broseidon, God the Brocean, raises a glass of amBrosia to this.

      --
      I support the Slashcott and will not be reading or commenting from 2/10/14 to 2/17/14. Beta is steaming pile of dog shit
    6. Re:Brogramming??? by gl4ss · · Score: 5, Interesting

      what killed specifications focused engineering is that management killed specifications - in startups there rarely is one, the product itself _is_ the specification, it's the engineering and product development.

      so it's brototyping(building a prototype without knowing what it's for because that's part of the r&d as well). let's just put a b on everything, goes fine with babbling.

      it would be so much easier if you were making something that was already known what it should do and how though - but most of that stuff seems to be already done so there's not that much of such projects(and those projects take friggin ages in their own bro phase.. case in point areva, they hadn't even finished designing control systems for a nuke reactor by the time the thing was supposed to be online originally, which is just fine since the building wasn't finished either).

      --
      world was created 5 seconds before this post as it is.
    7. Re:Brogramming??? by Anonymous Coward · · Score: 5, Funny

      If houses are code, I think I found Perl.

    8. Re:Brogramming??? by Anonymous Coward · · Score: 5, Funny

      I clicked that article and there is a image with the word scrogrammer. If that's the alternative, I suggest we just stop using words to describe things.

    9. Re:Brogramming??? by Anonymous Coward · · Score: 2, Insightful

      I'm a cowboy coder and the big difference to me is that cowboy coders actually have the engineering background, but choose to take the fastest and potentially riskiest path to "production". I tend to do a lot of proof of concept code, and I usually have extremely short deadlines. You can always find a code-monkey to re-write mission critical portions of a software rodeo.

      Brogramming isn't even really science IMHO. For example, most of the brogrammers I've met are typically under 30yo CSCI graduates that again, IMHO, have no business with a CSCI degree. They learned Java in college. Not computer science. Java. In my experience every brogrammer I've met is really just a Java copy/pasta chef. Most would be dumbfounded to explain how stacks and heaps work (God forbid they have to deal with endian-ness).

      Finally, I just wanted to give "big ups" to CPAN - the cowboy coders archive of choice! :)

    10. Re:Brogramming??? by N0Man74 · · Score: 1

      I remember when we called this sort of thing "cowboy coding."

      Now I feel so old, I'm imagining there were actual cowboys.

      I think this refers to something completely different... I have a lot of respect for some cowboy coders. I can't imagine having the same respect for a "brogrammer".

    11. Re:Brogramming??? by Anonymous Coward · · Score: 1

      Bro...do you even program??

    12. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Why, because carpenters are too pussy-ass to finish the jobs they start?

    13. Re:Brogramming??? by Anonymous Coward · · Score: 0

      It will die only on the day that Pair Programming is replaced by Pear Programming.

    14. Re:Brogramming??? by Tx · · Score: 5, Funny

      I've seen many fights on slashdot in my time, but "carpenters vs. roofers" is a new one on me.

      --
      Oh no... it's the future.
    15. Re:Brogramming??? by cod3r_ · · Score: 1

      You are a brogrammer and you love it.

    16. Re:Brogramming??? by identity0 · · Score: 1

      Bro, do you ecen code?

    17. Re:Brogramming??? by AwesomeMcgee · · Score: 5, Insightful

      You forget the other part of the equation, the corporotocracies where they have BA staffs that don't write requirements either, I guess MBA's are above all that work mumbo jumbo and just hang out while telling the devs to do something useful without giving us any bloody specs at all ever. It's not just startups that are running without requirements, it's the entire industry anymore. I don't know why, this used to be a given expectation of a dev's job that they would get requirements, but I guess somebody at some point decided we could just generate wealth for our masters without the slightest bit of input at all.

      I guess it doesn't help that enough of us are smart enough to actually do just that, but still, it's bloody annoying!

    18. Re:Brogramming??? by Austerity+Empowers · · Score: 5, Interesting

      This. Only this, nothing but this.

      I work in a place where people drink beer (and other things, but don't advertise), and I haven't noticed a great amount of crazed free-form coding. In fact reading their software list these guys are complete nazi's about code, in style, format and architecture. I have begun to think the beer is the way for them to chill out enough not to throttle each other because they placed a { in the wrong place.

      Previously, we had no Wall Street executive representation, just company founders who wanted the product to work properly and build out. But to secure funding, we had to let in a Wall Street bot, and he's busy managing things to pieces. No doubt he feels the beer culture is behind people's schedule issues and general non-compliance with his ridiculous goals. But the fact is he's destroying their product with management, trying to force them to write bad code based on schedules not design.

      I'd also like to point out that "bro-culture" and "beer culture" are not necessarily related. One can drink beer and not be a "bro". We have a "bro" or a "browannabe", and he's actually quite a competant coder, but generally speaking the rest of the beer culture are not bro's at all.

    19. Re:Brogramming??? by rezalas · · Score: 2

      Pick a side, any side! Logic is no object here!

    20. Re:Brogramming??? by Anonymous Coward · · Score: 0

      I prefer "hogramming" personally. Nothing like chunking out code while plowing some hot pussy and painting it with your baby batter.

    21. Re:Brogramming??? by Wookact · · Score: 1

      Most computer professionals are pear shaped. (Including myself). Perhaps it would be an apt description.

    22. Re:Brogramming??? by Anonymous Coward · · Score: 1

      In my experience every brogrammer I've met is really just a Java copy/pasta chef. Most would be dumbfounded to explain how stacks and heaps work (God forbid they have to deal with endian-ness).

      I was never a developer, but when I worked in a software house about 15 years ago, the "brogrammers" were all about competitive knowledge. Some of them knew just an incredible amount about how computers work, hardware and software. The main thing that motivated them was trying to be smarter than their peers. Instead of testosterone-fueld sports contests these guys would constantly try to one-up each other by knowing something the others didn't, or prove them wrong in an argument over some obscure technical detail.

      This is nothing new, though. Feynman talked about competing with the other math "whiz kids" on the Manhattan Project. They were always trying to mentally out-compute each other.

    23. Re:Brogramming??? by i_ate_god · · Score: 1

      they are afraid of heights dude

      --
      I'm god, but it's a bit of a drag really...
    24. Re:Brogramming??? by TheSpoom · · Score: 4, Insightful

      From a software engineer who has never lived in Silicon Valley, the whole idea is ridiculous to me. No team I've ever worked with would even consider working while drunk.

      Maybe teams in California work differently, who knows. Personally, I know that any code I write while intoxicated beyond a certain point is complete shit. If you think yours does not, you're lying to yourself.

      Not even going to start on how accurate the movie is to real software engineering (hint: it's not).

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    25. Re:Brogramming??? by Bearhouse · · Score: 1

      Yes, Please. Don't mod 'funny' guys, 'insightful' would be better.

    26. Re:Brogramming??? by HeckRuler · · Score: 1, Funny

      #include
      int main(int argc, char** argv)
      {return printf("Bro, do you even code?\n");}

    27. Re:Brogramming??? by osu-neko · · Score: 2

      I clicked that article and there is a image with the word scrogrammer. If that's the alternative, I suggest we just stop using words to describe things.

      Indeed. I used to ridicule GUIs (as an old-time CLI jockey) as "point and grunt" interfaces. Now, this style of communication is starting to appear to be a superior alternative. Give people words, and you see what they do with them... /sigh

      --
      "Convictions are more dangerous enemies of truth than lies."
    28. Re: Brogramming??? by Anonymous Coward · · Score: 0

      Heer heer.

    29. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Nah, there's some incredibly sharp "brogrammers" out there, and the brogramming culture is way more Ruby/Python than Java anyway.

      IMO it's just that regular dudes are now getting into software engineering, and the stereotypical "nerds" resent the idea you can have girlfriend and program a computer at the same time.

    30. Re:Brogramming??? by Colonel+Korn · · Score: 1

      From a software engineer who has never lived in Silicon Valley, the whole idea is ridiculous to me. No team I've ever worked with would even consider working while drunk.

      Maybe teams in California work differently, who knows. Personally, I know that any code I write while intoxicated beyond a certain point is complete shit. If you think yours does not, you're lying to yourself.

      Not even going to start on how accurate the movie is to real software engineering (hint: it's not).

      Alcohol constantly flows at Google. When I've visited I've been surprised at what fraction of the coders are legitimately drunk at 2 in the afternoon.

      --
      "I zero-index my hamsters" - Willtor (147206)
    31. Re:Brogramming??? by Anonymous Coward · · Score: 1

      I agree, this Vocabugate is a problem that needs to be addressed.

    32. Re:Brogramming??? by Anonymous Coward · · Score: 2, Insightful

      There is, occasionally, a time and a place for having a drink or other psychoactive substance -- in moderation -- while working on a hard problem that's not yet generating production code. There are people who swear by this. This is not the same, however, as getting blaster on cheap beer and chugging pedialyte in the mornings to ward off the regular hangover. That second one is called alcoholism, not "brogramming".

    33. Re:Brogramming??? by Sectoid_Dev · · Score: 1

      Growing up, I used to know a lot of people who were carpenters. A lot of them were respectable hard working people working for a lower middle class living. And then the other half were drunks who could never keep a job, but could always get a job as a carpenter.
      Was your house framed on a Monday or Friday?

      My uncle was a roofer, but that was out of state - so my sample size is one. Made an excellent living, but then he owned his own company. He has some hilarious stories(plural) about them accidently tearing down the roofs of the wrong house.

    34. Re:Brogramming??? by mjr167 · · Score: 1

      I pretty sure if I was drunk at work I would get fired.

    35. Re:Brogramming??? by Anonymous Coward · · Score: 1

      Roofers are a bunch of ball lickers, thinking they're all high and mighty sitting on a roof all day. Carpenters are the real men! And Jesus did it, so what do you Roofers have as a comeback? Huh? Eh?

    36. Re:Brogramming??? by dimeglio · · Score: 1

      int?

      Nice brogramming.

      --
      Views expressed do not necessarily reflect those of the author.
    37. Re:Brogramming??? by TheSpoom · · Score: 1

      Yep, hence my "beyond a certain point". If you can qualify as drunk, you're beyond that point.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    38. Re:Brogramming??? by NotBorg · · Score: 4, Funny

      Stay out of this, plumber!

      --
      I want this account deleted.
    39. Re:Brogramming??? by Anonymous Coward · · Score: 0

      From a software engineer who has never lived in Silicon Valley, the whole idea is ridiculous to me.

      I was a software engineer in Silicon Valley for several years. The whole idea is ridiculous to me as well.

      No team I've ever worked with would even consider working while drunk.

      Maybe teams in California work differently, who knows.

      Nope. The people I worked with in CA are just like people in the other eight towns I have worked in over the years.

      The existence of morons making stupid crap while drunk doesn't have any effect on the work of actual engineers doing real engineering.

    40. Re:Brogramming??? by Hoi+Polloi · · Score: 4, Funny

      I don't know why were are bringing roofers into this in the first place when a perfectly good car metaphor is probably waiting to be used.

      --
      It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
    41. Re:Brogramming??? by Anonymous Coward · · Score: 0

      I've never considered programming while drunk. (Of course, it's been decades since I've been anywhere near drunk.)

      But I once tried programming while I had a bad sinus infection, before giving it up and going home sick, leaving my unfinished code for a coworker to clean up. He took one look at it, rolled it back to the check-out and started over.

    42. Re:Brogramming??? by Synerg1y · · Score: 2

      I'm also scratching my head... how is "The Social Network" related to coding? Those were fuckin actors??? Coders have coded in teams since the start of coding, whether in the workplace, or in a garage, it's to bounce ideas off each other, and get help with bugs and techniques, is it possible to drink after coding... or fuck it, it's a choice, not a meme.

    43. Re:Brogramming??? by yurtinus · · Score: 1

      I don't think it's the alternative. I spent the last thirty minutes trying to find a definition (from my phone, since I don't think the boss would like me browsing Urban Dictionary as much as he likes me browsing /.). The first four links were to a website purporting to have a definition but directing instead to a link saying "You need to install our mobile app to look at our stuff." Pretty sure it's a marketting ploy to distribute that mobile app, since the rest of the links were people saying "Oh, and don't even *ask* about scrogramming."

      I'll file that under Stuff I Am Better For Not Knowing.

      --
      +1 Disagree
    44. Re:Brogramming??? by Frosty+Piss · · Score: 4, Funny

      From a software engineer who has never lived in Silicon Valley, the whole idea is ridiculous to me. No team I've ever worked with would even consider working while drunk.

      That's because they are generally too busy doing lines.

      Of code. Lines of code...

      --
      If you want news from today, you have to come back tomorrow.
    45. Re:Brogramming??? by Fallingcow · · Score: 1

      Well.

      That certainly explains a lot about Android.

      "Hm, I could fix this bug we introduced in 3.0 and still haven't fixed, orrrrr... drunk feature sprint!"

      *the next day*

      "Damn, that drunk code I wrote sucks. Back to the drawing board. Maybe I should fix that bug after all. Better get drunk first"

      And that just loops infinitely.

    46. Re:Brogramming??? by yurtinus · · Score: 1

      I can't malign beer as a "lubricant" of sorts to get creative juices flowing when I'm trying to solve a problem (or to loosen me up to tumble down a mountain when I'm pretending to snowboard). But when actually programming? Hell, if I try to program after just one beer I only want to take a nap.

      All that said, I still really love beer.

      --
      +1 Disagree
    47. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Yes, int, because that's what main() returns. Using void for main() is a bad habit; present-day compilers will bitch at you, even without -Wall, if you try to do it.

      $ cat x.c
      #include <stdio.h>

      void main(int argc, char **argv) {
      }
      $ gcc -o x x.c
      x.c: In function 'main':
      x.c:3: warning: return type of 'main' is not 'int'

    48. Re:Brogramming??? by X0563511 · · Score: 1

      I wasn't aware that beer was a culture or that drinking it included you in some special group.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    49. Re:Brogramming??? by X0563511 · · Score: 0

      Why should main() return anything but an int?

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    50. Re:Brogramming??? by jythie · · Score: 1

      As soon as we kill all the brogrammers, the meme will die the death it deserves.....

    51. Re:Brogramming??? by xclr8r · · Score: 1

      We have to kill Bronygramming before killing Brogramming, it's the greater of two evils.

      --
      Beware of those who profit off the docile and persecute the unbelievers.
    52. Re:Brogramming??? by rachit · · Score: 1

      Obviously you don't know about the "Ballmer peak"

    53. Re:Brogramming??? by jythie · · Score: 1

      I think that is part of the point, what you describe is a completely different culture and set of priorities. While the core desire to impress their peers is similar, the outlet it takes and how it circles back around to the profession is completely different. In that earlier culture you tried to impress your peers through knowledge and competence in your field of study.. with brogrammers you impress your peers through other avenues pulled from a non-technical culture.

    54. Re:Brogramming??? by nozzo · · Score: 1

      I fsking hope so - 'brogramming' FFS

    55. Re:Brogramming??? by jythie · · Score: 1

      Hrm, Japanese programmers?

    56. Re:Brogramming??? by Austerity+Empowers · · Score: 1

      beer-in-the-workplace culture, how about that? It is a distinct culture from the usual "drinking at work is unprofessional" crowd, of which there is also a large following, particularly in megacorps.

    57. Re:Brogramming??? by tigersha · · Score: 2

      Plumbers are the ones with the lead pipes, so be careful what you say, punk!

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    58. Re:Brogramming??? by dimeglio · · Score: 1

      Then why is the "return" statement not returning an int?


      #include
      #include
      #define STR_SIZE 80

      void GetString( char* strOut, unsigned int strSize )
      {
            strncpy( strOut, "Bro, do you even code?", strSize );
      }

      int main()
      {
            char buf[STR_SIZE + 1];

            GetString( buf, STR_SIZE );
            printf( "%s", buf );
            return 0;
      }

      --
      Views expressed do not necessarily reflect those of the author.
    59. Re:Brogramming??? by Anonymous Coward · · Score: 1

      Just like an auto-mechanic... Can't think outside of the boxed car.

    60. Re:Brogramming??? by Anonymous Coward · · Score: 0

      I've seen many fights on slashdot in my time, but "carpenters vs. roofers" is a new one on me.

      You simply missed the shift from The Editor War (vi v. emacs) to The Builder War (carpenter v. roofer) but somebody forget to invite the plumbers and electricians.

    61. Re:Brogramming??? by NotBorg · · Score: 2

      *removes safety mechanism from nail gun*

      --
      I want this account deleted.
    62. Re:Brogramming??? by TangoMargarine · · Score: 1

      It's a convention; if you think about it, it's not exactly necessary. Him not knowing just means he's inexperienced (in that specific area, anyway). Why he's posting to "correct" is another matter...

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
    63. Re:Brogramming??? by Anonymous Coward · · Score: 0

      I hope you don't work on any software that deals with sensitive information (financials, health), because that's a lawsuit waiting to happen.

    64. Re:Brogramming??? by Anonymous Coward · · Score: 1

      *cuts the power to your compressor*

      Who's laughing now? Electritions for the win!

    65. Re:Brogramming??? by Anonymous Coward · · Score: 1
    66. Re:Brogramming??? by gparent · · Score: 1

      I don't know if you got confused by the people here who are completely ignorant of that part of the C standard, but there's no "convention" here.

      main is defined to have a return type of int. It's also defined as the only function that if you reach the end without a return statement, it is implicitly "return 0;"

      dimeglio is just a victim of cargo cult programming.

    67. Re:Brogramming??? by X0563511 · · Score: 1

      Well, oops. Didn't see that.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    68. Re:Brogramming??? by Anonymous Coward · · Score: 0

      main() should return an int. perfect brogramming example.

    69. Re:Brogramming??? by dubdays · · Score: 1

      I guess it's time to drop the Brohammer.

    70. Re:Brogramming??? by WilyCoder · · Score: 1

      YOU are the brogrammer, and you have made Ritchie turn in his grave. You should stick to javascript.

    71. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Yep, printf will print its line, return an int, then main will return the int it got from printf.

    72. Re:Brogramming??? by SolitaryMan · · Score: 1

      I remember when I was trying to get into the "Dr. House" thing, this kind of bullshit is what turned me off. Now, I'm no medic, not even close, but I've seen enough movies about computers and scientists in general to be 100% sure that what they were saying is a complete and total bullshit.

      --
      May Peace Prevail On Earth
    73. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Yep. I guess that's what I'm saying-- today's "brogrammers" are very different from their counterparts in the past, particularly since the Dot-Bomb era.

    74. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Hey carpenter, plumbers stopped using lead pipes a century or two ago.

    75. Re:Brogramming??? by TangoMargarine · · Score: 1

      Do any other C functions have a reserved return type? No? Then it's not exactly an intuitive conclusion to jump to if one has never programmed in C, is it?

      If by "cargo cult" you mean "modern"... ;)

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
    76. Re:Brogramming??? by David_W · · Score: 1

      Then why is the "return" statement not returning an int?

      Actually it does. From TFM, the prototype for printf is:

      int printf(const char * restrict format, ...);

    77. Re:Brogramming??? by Anonymous Coward · · Score: 0

      At least it's not an Apple.

    78. Re:Brogramming??? by gl4ss · · Score: 1

      offices of corporotocracies work as if they were startups too now.only their "consumer" is the other mba's and the next level in hierarchy and the level beyond that so that they don't get cut in the next firing phase.

      so even there you're not getting specs, which can be pretty frustrating if you know that the company you're working for is employing hundreds of "ui gurus" and "graphical masterminds" somewhere - who are supposed to be coming up with with the ui and ux(in other words specs).

      --
      world was created 5 seconds before this post as it is.
    79. Re:Brogramming??? by jcr · · Score: 2

      I used to ridicule GUIs (as an old-time CLI jockey) as "point and grunt" interfaces.

      Heh.. I remember the wave before that, when mainframers derided any attempt to make software easier to use. There were raging controversies over numbered menus..

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    80. Re:Brogramming??? by Anonymous Coward · · Score: 1

      Bull. I use to code for a company that were market leaders in FinServ security/risk management. The company executives fully supported alcohol consumption on the clock on campus. They even put a tap in the kitchen. Funny since a large number of the staff were Brahmans who didn't drink. Anecdotal refutation and not statistical, but your argument was un-evidenced entirely.

    81. Re:Brogramming??? by jellomizer · · Score: 1

      The issue is there needs to be a middle ground.
      The problem with Software Development that most College grads realize after they get out of school... The requirements are always changing, or you are releasing a product that is out of date once it is complete.
      The Cowboy Coder is good at releasing fast code, with years of experience has nice hooks in its designed to be change and altered over time. However it can get sloppy over time and have bugs that interact unexpectedly due to proper engineering especially with multiple developers.
      The Well Engineered UML Modeled and other stuff program is well defined with a beginning and ending, which once it does it does what it suppose to do without much surprises. However if there is a design issue there is a lot of work that needs to be done to redo and fix things, delaying the project and taking a lot more resources.

      A middle ground is actually a well designed system with rules, however allowing enough flexibility for things to handle changes over time.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    82. Re:Brogramming??? by gparent · · Score: 1

      Do any other C functions have a reserved return type? No? Then it's not exactly an intuitive conclusion to jump to if one has never programmed in C, is it?

      I don't understand what you're getting at. I read dimeglio's post as a condescending one towards HeckRuler as if putting "int" was the wrong thing to do (thus making him a "brogrammer" who doesn't know what he's doing)

      I'm not saying it's intuitive (AC is being harsh here), but if he's going to diss someone for it, he should know what the heck he's talking about.

      As for the whole convention thing, that was a reply to you personally. I was being a bit pedant, pointing out that it's not a "convention" but rather the only proper return type for main.

    83. Re:Brogramming??? by jcr · · Score: 1

      From a software engineer who has never lived in Silicon Valley, the whole idea is ridiculous to me.

      It's ridiculous to me too, and I've been here since 1993 or so.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    84. Re:Brogramming??? by Anonymous Coward · · Score: 0

      *Lights brazing torch*

    85. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Which is why he DOES return an int you incompetent shithead.

    86. Re:Brogramming??? by will_die · · Score: 1

      Far to late, there is already a Facebook page.

    87. Re:Brogramming??? by Patch86 · · Score: 1

      Agreed. I'm a Business Analyst for a non-IT company in the UK, and the whole thing is completely alien to me. We still adhere to the strict development models handed down to us by our ancestors. And although admittedly I don't see what goes on behind closed doors at any of our suppliers, I can't imagine the software engineers I've met acting in the way described. And if we ever caught wind of that sort of atmosphere, they'd be dropped like a hot rock.

      The attitude in a few college start-ups probably isn't representative of IT in the real world.

    88. Re:Brogramming??? by Anonymous Coward · · Score: 1

      You forget the other part of the equation, the corporotocracies where they have BA staffs that don't write requirements either, I guess MBA's are above all that work mumbo jumbo and just hang out while telling the devs to do something useful without giving us any bloody specs at all ever. It's not just startups that are running without requirements, it's the entire industry anymore. I don't know why, this used to be a given expectation of a dev's job that they would get requirements, but I guess somebody at some point decided we could just generate wealth for our masters without the slightest bit of input at all.

      I guess it doesn't help that enough of us are smart enough to actually do just that, but still, it's bloody annoying!

      This is a pet peeve. In the last 10 or so years, BAs have become an obstacle to software development. Some where, some time, BAs decided that they don't need to be technical anymore. Don't have to know what a web server or a database is. They also don't know the business because they work in IT.

      So we have a group of people who sit between the user who don't know anything about the Business nor do they know anything about IT. They have people skills (dammit!) and that's about all.

      Even worse, people aren't even trained to be BAs anymore. I never get requirements from BAs anymore, I get designs. Then when they're done writing the "design," which generally only outlines the happy path, they toss it over to the programmer and go about their next project never to revisit their documentation again.

      That gives me two choices as a programmer. Write what the BA designed or write what the customer wants.

    89. Re:Brogramming??? by Anonymous Coward · · Score: 0

      I'm sorry, but the Princess is in another castle.

    90. Re:Brogramming??? by sjames · · Score: 2

      This 1000 times! Managers don't want to see developers sitting quietly and thinking. They don't want to see them sitting and talking in the corner. The don't want to see people drawing funny diagrams. They want to see them grinding out code like little interchangeable cogs.

      On the contractor side, clients for some reason think the spec should be free and want to pay only for delivered code. If you don't want to go broke by delivering >90% of the effort up front for free only to see the paying part go to the low bidder (who has no idea how to do a spec), you better invent the spec while coding.

    91. Re:Brogramming??? by HeckRuler · · Score: 1

      printf() returns an int which passed along to the return statement.
      So lemme get this straight, you (wrongly) chastise me for failing to return an int, and yet you don't even double check your code and notice that the brackets in your include statements got eaten by the HTML interpreter?

      Bro, do you even QA?

      On a side note, what'd you do to display the code with a fixed-width font and indention? &lt; and &gt; worked for me but &nbsp; didn't want to display. After a full 10 seconds I couldn't find it on the site FAQ, and cheezily compacted the lines in some crazy Pico style or something. No, that don't fly with me homies. It's Allman/ANSI style brackets for life foo!

    92. Re:Brogramming??? by Anonymous Coward · · Score: 0

      People hate standards because each person feels like they're better than everyone else. Standards only hinder their greatness. Standards only exist so those other buffoons won't screw everything up. I, on the other hand, am a genuinely excellent programmer and my code is above the level of those standards.

    93. Re:Brogramming??? by thetoadwarrior · · Score: 1

      Don't worry, brah. You can still drink red bull.

    94. Re:Brogramming??? by ryzvonusef · · Score: 1

      Have you *looked* at Mario's stats?

      --
      I am an ACCA student. Got a query on Accountancy/Finance? Maybe I can help!
    95. Re:Brogramming??? by thetoadwarrior · · Score: 1

      I'd say they're different things. Cowboy coders were still good. Brogramming requires being a douche and gym time.

    96. Re:Brogramming??? by Anonymous Coward · · Score: 0

      * Act like a colossal faggot on the Internet *

    97. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Actually had to resort to this a couple of times when I was working as a construction electrician. Sparkys usually didn't get too much grief on the job, as making us pissy would result in the temporary power getting cut!

    98. Re:Brogramming??? by Anonymous Coward · · Score: 0

      But then we couldn't talk about Bair Brogramming!

    99. Re:Brogramming??? by pseudorand · · Score: 1

      > ...building a prototype without knowing what it's for
      I'm not sure if it's 'brogramming', but it turns out this is exactly how it SHOULD be done. We call it iterative development.
      The "specifications focused engineering" you babble about was called 'waterfall', and I'm pretty sure the 1) Develop Requirements, 2) Code, 3) ???, 4) Profit model was discredited long ago.

      In the 21st century (and most of us had figured this out by the late '90s) we say fuck step 1, do #2 as quickly as possible then wash (aka refactoring), rinse, repeat. Step 3 turns out to be "get it into production" which means sales for a commercial product and internal use for something developed in-house. #4 comes after a few of those wash, rinse, repeat cycles, assuming you do it right.

      Granted, you may have to replace true "production" use with some (usually expensive) simulated testing for things like medical equipment and nukes. But for non-safety stuff (and I'm guessing that's the majority of code written today), requirements development occurs only after you have real users get their hands on a real end product.

      This is also why languages like C and in fact languages in general sans some middleware like Rails, Drupal or J2EE simply aren't the way to go for most projects. If you can't do #2 and have a working product for users to touch and feel really, really quickly, your project will probably be more expensive to develop than it's worth.

    100. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Can we fucking kill this meme right now?

      Drop 20 meters, whiskey papa, fire for effect, over.

    101. Re:Brogramming??? by Hognoxious · · Score: 1

      I used to know a guy who owned a roofing supplies company. His contempt for roofers had no limits; "thickest cunts on two legs and some on four are smarter" was one of his kinder descriptions.

      I suggested that the stupid ones would tend to fall off and eliminate themselves, leaving the pool smarter on average.

      "Good thinking, young Hog," he said, "but you're missing one thing - only someone who was as thick as three short planks would be a roofer to start with."

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    102. Re:Brogramming??? by vsync64 · · Score: 1

      On the contractor side, clients for some reason think the spec should be free and want to pay only for delivered code.

      And I want a pony.

      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    103. Re:Brogramming??? by VortexCortex · · Score: 1

      Stay out of this, plumber!

      I'm a pipe fitter, not a plumber. There's a difference you mud slinging wall sander.

    104. Re:Brogramming??? by Anonymous Coward · · Score: 0

      On the other hand, when you're working freelance, specifications are the rule. You have a clearly defined spec, you give the time and cost estimates (you're free to pad either).

      I imagine that the process isn't all that different when large companies contract with other large companies to build software. So why don't you have specs? Insist on them. And be very careful what you wish for.

    105. Re:Brogramming??? by VortexCortex · · Score: 1

      If that's Perl, then this is PHP.

    106. Re:Brogramming??? by YttriumOxide · · Score: 1

      I pretty sure if I was drunk at work I would get fired.

      I was on acid at the most recent work Christmas party... that was an "interesting" experience.

      Not that I'd ever want to try to actually WRITE code while tripping (just staring at a screen is disturbing enough for the most part), but I will say that I've had a few good ideas while tripping that I then implemented the next day after my head was in a more stable state.

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    107. Re:Brogramming??? by Hognoxious · · Score: 1

      Kindly desist from writing until such time as you can do it properly. It's fucking painful reading your shite.

      The Cowboy Coder is good at releasing fast code[0], with years of experience [1] has nice hooks in [2] its[3]designed to be change[4] and altered over time.

      [0] Is it the code that has the experience?
      [1] Missing subject for verb "has".
      [2] Insert "it" and full stop. Or a semicolon, maybe.
      [3] s/its/It's/
      [4] For fuck's sake learn what a participle is.

      Finally, no they don't. They never design for change. If you need to change a value in their crap, it'll be 27 literals, not one constant. Logic changes, you bet it's not one subroutine that needs modifying - it'll be copy pasted a hundred times all over the code. Someone who doesn't understand the concept of non-repetition isn't going to able to design modification points, user exits, plugins or anything like that.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    108. Re:Brogramming??? by Hognoxious · · Score: 1

      I just grokked that you (and the GP) are talking about business analysts, not people who went to college to study literature or history.

      In my day the analysts were usually former programmers who, over time, had built up the bigger picture & got some knowledge of the problem domain, be it banking or manufacturing or transportation. They were generally called systems analysts back then.

      I totally agree that a role which should be a linker with a hand in both pies has been infiltrated by wankers who hide in the gap and/or play both ends against the middle.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    109. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Intoxication can help overcome habits, which can be important for learning a skill where they are counter-productive. I started imperative programming at 8 and didn't learn any functional programming until I was 25, which involved me jumping into the deep end with Haskell. I found that having a pint or two in me helped keep me from fighting with new ways of doing things long enough to learn how things worked.

    110. Re:Brogramming??? by HeckRuler · · Score: 1

      Never went to college huh? Beer culture is a fairly serious problem. Too many rich kids getting away from daddy for the first time, not enough responsibility.
      It doesn't take much to build up a culture:
      Beer pong, Movies, and, you know, the existence of bars.

    111. Re:Brogramming??? by Anonymous Coward · · Score: 0

      roadrunner?

    112. Re:Brogramming??? by Hognoxious · · Score: 1

      building a prototype without knowing what it's for

      I'm not sure if it's 'brogramming', but it turns out this is exactly how it SHOULD be done. We call it iterative development.

      You might. To me iterative development is where you explore different designs as you go. However you generally know whether you're building a cash register's firmawre, a strategy game or an accounting package before you start.

      The "specifications focused engineering" you babble about was called 'waterfall', and I'm pretty sure the 1) Develop Requirements, 2) Code, 3) ???, 4) Profit model was discredited long ago.

      I'm not sure the appearance of a fad like XP quite amounts to a discrediting, no matter how much noise its disciples make, how many coloured cigarettes they smoke or how large the holes in their earlobes are.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    113. Re:Brogramming??? by dgharmon · · Score: 1

      > Can we fucking kill this meme right now?

      Mod this comment up +99

      --
      AccountKiller
    114. Re:Brogramming??? by blippo · · Score: 1

      Sorry mate, for most software development jobs it's part of the profession to tweeze out requirements from business people - both the sales types that can only think in "fluffy concepts", and the specialists who can't generalize that blue and red are two 'colours', since they are experts in every single shade of blue between 'navy blue' and 'egyptian blue'.

      So, if you don't know what to do, you have to do some workshops and interviews, or just have a quick chat with "Bill, the salesguys". But to be honest, you probably already have a good hunch of what to do, you just want to make a point that there are a lot of people that have authority and with better pay than you, and they don't have a clue of what they really want or need.

      I'll admit, most business do it wrong, since they think it's like designing steam engines or belt buckles , or something, and the "requirements process" is eventually leading to the "design process" which when completed, would spin up the code factory where hordes of talentless code monkeys would read the design specification and translate that into a working program, like a 1:1 mapping. Preferably in India. Or at least in the basement.

      Hint: it's not how it works, and the reason for that it's not working like that is a combination of information theory (hey its thermodynamics!), emergence in systems theory, and how our brains work (our cogninitive abilitiies)

      Ideally, work together with the business specialists, avoid "requirement specialist" and BA-types, since they add little or no value. Get rid of useless design documents that have no target audience , but create a common model (in your heads) and a common language, and develop and maintain (condensed) business rules and references that would actually be used when working with the system in the future. Pay attention to people that try to hide their incompetence by requiring more and more documentation.

      Accept that the reality is surprisingly complex.

    115. Re:Brogramming??? by Hognoxious · · Score: 2

      I once had a well gnarly problem to solve. After dithering and pondering and putting it off for a couple of days I had a four Duvel lunch and solved it in what was left of the afternoon. It was good, too.

      Now "beyond a certain point" is vague to say the least. But I was certainly in no fit state to drive.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    116. Re:Brogramming??? by Hognoxious · · Score: 1

      Can we fucking kill this meme right now?

      F'shizzle, naawamean?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    117. Re:Brogramming??? by buybuydandavis · · Score: 1

      I'm afraid not.

      All things male are evil, and all evil things are male.

    118. Re:Brogramming??? by AdamWill · · Score: 1

      I think the point here is that 'brogrammer' is a completely artificial concept that has been imposed upon from without by a bunch of journalists looking for an angle, and we should stop accepting it and just call 'bullshit' every time the term is used.

      I've never met or even heard of anyone it makes any damn sense to describe as a 'brogrammer'. As the term was initially 'defined' a few months back, it certainly wouldn't apply to Zuckerberg. Now it's just a meaningless label being thrown on worthless clickbait articles by worthless journalists. If we just ignore it, maybe it'll go away.

    119. Re:Brogramming??? by flargleblarg · · Score: 4, Funny

      Alcohol constantly flows at Google. When I've visited I've been surprised at what fraction of the coders are legitimately drunk at 2 in the afternoon.

      Well, if you're legitimately drunk, your body has ways to shut that whole thing down.

    120. Re:Brogramming??? by Anonymous Coward · · Score: 0

      This is why you NEED unions. IT is so shitty because there are no effective unions. Even lunch ladies have better benefits where I work.

    121. Re:Brogramming??? by TangoMargarine · · Score: 1

      I was saying that you don't need to be a "brogrammer" (gag) to not know that main() in C returns an int. There are plenty of other languages out there that one can be very conversant in without knowing one random bit of trivia about one first introduced in the early '70s.

      One could say all 3 posters were a bit at fault here, really:
      1) HeckRuler's code, while syntactically valid, returns the number of characters in the string, not 0 for success, which is rather misleading.
      2) dimeglio thought it was a stupid mistake, which I'm sure was an honest mistake on his part because he doesn't know about the C standard. Which I can't blame him much for.
      3) The A.C. just flamed him. Well, at least he included a period at the end of the sentence.
      4) You and I are arguing about whether it's reasonable to expect J Random Programmer to know a tidbit about C that the compiler will almost certainly warn you about anyway. As someone who knows C++ and x86 assembly (the basics, anyway), I find your choice of where to draw the line that delimits a n00b too arbitrary for my tastes. But I'm splitting hairs again, so go figure...

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
    122. Re:Brogramming??? by Anonymous Coward · · Score: 0

      The only thing I'm saying is that if you're going to correct someone about something, you should actually know it yourself. I don't think that's incompatible with what you're saying, because I don't expect every C programmer to know about C trivia.

      -gp

    123. Re:Brogramming??? by TangoMargarine · · Score: 1

      That was basically (part of) what I was saying, yes.

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
    124. Re:Brogramming??? by mattack2 · · Score: 2

      Of course there is a beer culture, they use yeast to make it.

      (Slightly more seriously, searching wikipedia for beer culture actually has a result: http://en.wikipedia.org/wiki/Beer#Beer_and_society.)

    125. Re:Brogramming??? by Coryoth · · Score: 1

      I think what is missed here is Brook's maxim "build one to throw away". Sure, sometimes you need to actually build something to figure out what its for, or what it should be. That's an important step in engineering. The hard part is to take the next step and be willing to throw all of that away so you can build a good version. It's hard because often it took a large amount of work to get that first version doing all the things you slowly realised it needed to be able to do. Its worth it because, if you were paying attention, you also learned all the ways in which you built it badly the first time that can all be fixed with those difficulties in mind from the outset.

      Throwing out working code is often bad. But if you start with the mentality that you are building it to throw away -- to learn what it can do, what it should do, and how best to structure things so it will do it -- then its easier to take that step and start again with the knowledge you gained.

    126. Re:Brogramming??? by mikael · · Score: 1

      Used to be called "macho-management" - managers would decide to take the change of a short-cut or cut corners to save time. Maybe skip the design or layout stage, and just get everyone to start hacking away. Then as new features get added, more and more special-cases are added until the complexity becomes unpredictable and unmaintainable. What could have been a simple filter/matching system implemented from the first day, has become a tangled heap of if-else cases in multiple functions. The situation isn't helped by manuals written in poor translations or API's having undocumented features. The stress becomes so high, that the only way to keep everyone sane is to have hard-drinking sessions.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    127. Re:Brogramming??? by Anonymous Coward · · Score: 0

      "Of course there must be an integer heaven - where do all the integers returned by main() go?"

    128. Re:Brogramming??? by Anonymous Coward · · Score: 0

      I'm a pipe fitter, not a plumber. There's a difference you mud slinging wall sander.

      Hey man, leave us Masons out of this.

    129. Re:Brogramming??? by datavirtue · · Score: 2

      ACTUALLY, as has been well established in many entomological analysis of the biblical translations Jesus' father was a stonemason and he basically shirked the whole gig to accept his maternal inheritance of local chieftain.

      --
      I object to power without constructive purpose. --Spock
    130. Re:Brogramming??? by twebb72 · · Score: 1

      Not even going to start on how accurate the movie is to real software engineering (hint: it's not).

      You're right, cause in real life all those Facebook programmers did cocaine.

    131. Re:Brogramming??? by DarwinSurvivor · · Score: 1

      Holy crap, I can't believe that video was actually used in context!

    132. Re:Brogramming??? by Alex+Belits · · Score: 1

      I've never met or even heard of anyone it makes any damn sense to describe as a 'brogrammer'.

      Me, neither. And being a developer for two decades, I am sure, I would notice if such a thing existed. I have seen every monstrosity that existed in general vicinity of computer-executable code -- from "analysts" of old, who were equally unable to describe an algorithm in either machine-readable or human-readable form, to copypasta developers, whose relationship with software development can be only described as a modern cargo cult. From MCSE to VMware jockeys. From believers in Microsoft object-management model to people who lost all capability to communicate outside UML with humans and XML with machines. From mediocre students to... plain bad students who memorized some idiots' opinions and basic definitions and called that education. But no, no "brogrammers". Not even on 4chan.

      --
      Contrary to the popular belief, there indeed is no God.
    133. Re:Brogramming??? by Alex+Belits · · Score: 1

      hundreds of "ui gurus" and "graphical masterminds" somewhere - who are supposed to be coming up with with the ui and ux(in other words specs).

      Unity.

      --
      Contrary to the popular belief, there indeed is no God.
    134. Re:Brogramming??? by Alex+Belits · · Score: 1

      Considering what most programmers are, unions would enforce bad practices.

      --
      Contrary to the popular belief, there indeed is no God.
    135. Re:Brogramming??? by Alex+Belits · · Score: 1

      But if you start with the mentality that you are building it to throw away -- to learn what it can do, what it should do, and how best to structure things so it will do it -- then its easier to take that step and start again with the knowledge you gained.

      Or you turn yourself into the person who can only write code that should be thrown away. Once you start writing crap, you can't go back within your lifetime.

      --
      Contrary to the popular belief, there indeed is no God.
    136. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Yes smartass but you dithered an pondered at it for a couple of days before drinking the courage of actually writing what the fucking instrument in your skull had already found a solution for.

      Introspecting in programs not always a good idea. Introspecting yourself, always gets you some insightful information about how you work.

    137. Re:Brogramming??? by Alex+Belits · · Score: 1

      It's also defined as the only function that if you reach the end without a return statement, it is implicitly "return 0;"

      No.

      --
      Contrary to the popular belief, there indeed is no God.
    138. Re:Brogramming??? by kdemetter · · Score: 1

      Though I can understand writing some code just for fun, or even to get your mind of things, but that's all it is then : entertainment.
      I have written plenty of code like that : just for fun, without any practical application.

      However, I doubt this has any negative effect on coding professionally, just like an artist having some fun painting would make his professional paintings bad.
      However, just like the artist paints because he loves it, many programmers code because they love it. Nothing wrong with that.

    139. Re:Brogramming??? by chrismcb · · Score: 1

      I remember when we called this sort of thing "cowboy coding."

      I remember when we called cowboy coding cowboy coding, and "brogramming" just a bunch of idiots trying to write code. Oh wait we still do, because they aren't the same thing.

    140. Re:Brogramming??? by gparent · · Score: 1

      Ok.

    141. Re:Brogramming??? by gparent · · Score: 1

      Alright, glad we agree :)

    142. Re:Brogramming??? by aurizon · · Score: 1

      Ah, another one...

    143. Re:Brogramming??? by Raenex · · Score: 2

      I'm a cowboy coder and the big difference to me is that cowboy coders actually have the engineering background, but choose to take the fastest and potentially riskiest path to "production". I tend to do a lot of proof of concept code, and I usually have extremely short deadlines. You can always find a code-monkey to re-write mission critical portions of a software rodeo.

      Sounds like you just do a half-assed job and expect a "code monkey", or more realistically, a professional, to fix up after you. Let me guess, you're a consultant?

    144. Re:Brogramming??? by Shirley+Marquez · · Score: 2

      Java and computer science are not necessarily antithetical. When I was getting my degree a few years ago, most of the CS and computer engineering classes were using Java for the practical reason of cross-platform compatibility; no matter what kind of computer the student owned, she could use Java to write code that the TAs would be able to run. We were writing command line programs so Java was just a programming tool much like C or C++ would have been, not a complex environment like J2EE or the like.

    145. Re:Brogramming??? by Shirley+Marquez · · Score: 1

      Management cluelessness about software development is a real problem. If you have a supervisor who didn't come up through the development ranks, he's likely to be uncomfortable with seeing those moments when you are staring at the monitor apparently doing nothing, or (even worse) staring off into space or fiddling with a desk toy. As any real developer will tell you, those thoughtful moments are important; they are when the architecture of the project comes together in your mind.

    146. Re:Brogramming??? by Anonymous Coward · · Score: 0

      And the heaviest drinking place I worked at was a top 5 engineering consultancy

    147. Re:Brogramming??? by uninformedLuddite · · Score: 0

      Kindly desist from writing until such time as you can do it properly. It's fucking painful reading your shite.

      He probably speaks more languages than you've had sexual experiences. Piss off you wanker.

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    148. Re:Brogramming??? by uninformedLuddite · · Score: 1

      Indeed. I used to ridicule GUIs (as an old-time CLI jockey) as "point and grunt" interfaces.

      In my neck of the woods it was "point and drool".

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    149. Re:Brogramming??? by uninformedLuddite · · Score: 1

      There is, occasionally, a time and a place for having a drink or other psychoactive substance.

      Is it breakfast?

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    150. Re:Brogramming??? by uninformedLuddite · · Score: 1

      I was on acid at the most recent work Christmas party... that was an "interesting" experience.

      What you haven't worked for twenty years or so?

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    151. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Aha! Everything begins to make sense... http://xkcd.com/224/

    152. Re:Brogramming??? by hermitdev · · Score: 1

      Of course there's a beer culture. Members meet at the local pub around 3-6pm, sometimes earlier, depending upon how much their coworkers pissed them off that day. It's sometimes referred to as a "support group".

    153. Re:Brogramming??? by hermitdev · · Score: 1

      I work in a company where it's officially frowned upon (i.e. it's in the employee handbook that alcohol is strictly forbidden). That being said, a blind eye is turned to a handful of us, because, well, we perform. We perform under pressure or not, producing quality code regardless of our state of inebriation. Now, we've been told that if we're drunk, just don't come back to the office (as opposed to buzzing after a few pints). And, hard liquor is off-limits during work hours.

      Now, we're not "brogrammers". Yes, the lot of us happen to be all male, but it's not like a frat party gone bad. We go to a pub a block from the office, have our pints, and return. While we're at the pub, we discuss work. Who/what is pissing us off or frustrating us currently, and what not. We verbalize the problems we've been thinking about. The act of verbalizing with a coworker that understands often is sufficient to solve a problem. Or, sometimes, it's the time away when you contemplate and suddenly remember a dark corner of code that is the cause of the problem that you hadn't thought about because you'd forgotten it even exists. Other times, a slight buzz or a stumbling drunkenness loosens your mind enough to see a problem from a totally different angle, enabling a quick, simple, clean and efficient solution that you wouldn't have otherwise seen due to your sober preconceptions about the issue.

      Personally, I've fixed numerous production issues while intoxicated. I've produced some of my most elegant code or hardware while drunk. I've fixed issues in x64 inline assembly while drunk (I'm looking at you, ACE). In college, I studied electrical & computer engineering. One project, we were working on MIPS trap handlers to perform IO, if I recall correctly. For whatever reason, the project would not work. No one in the class could figure out how to get it to work. Late one night, over the better part of a bottle of whiskey, I got the project to work. It came down to one magical line, assigning a register a certain mystical hex number, but that one line made the entire thing work. I was the only one to get it to work, yet I couldn't explain how/why, because I don't even remember getting it to work. Another time, I was building an 8-bit ALU for a hardware class. I built all of the logical components: add/sub, and/or/not, logical shifts, multiplier in verilog. It took a little over two hours to do all of that, and I had the bottle of whiskey next to me the entirety of it. My project partner was sitting next to me; when I told him I'd completed a component, he'd say, "yeah, but does it work", so I'd turn right back to the computer and punch out a C program that would generate the verilog code needed to exhaustively test the component, run the test, turn and say back, "yeah, it's perfect."

      Point is, drunk coding probably isn't for everyone, and I wouldn't go so far as to endorse it. Yet, for some people, it's another valuable tool in the box. But, that doesn't mean it should be banned.

      Looking at some of the analogies to "building a house", etc, may be apt. I'm guessing the authors of those posts/articles assume sobriety of the builders. But, they'd be quickly proven wrong if they'd ever worked even a single summer on a crew. When I was in college, I worked on a siding crew for a company that had around 5 or 6 crews. During that single summer, a number of installers had to be bailed out of jail. More yet missed work or were ineffective because of the extent of their hangovers - they also seemed to have a disproportionately high levels of divorce & delinquent child support payments; further necessitating time off for court appearances.

      But, "brogramming" != "drunk programming". "brogramming" seems to be an extension of the frat atmosphere into programming. It's not the same as your developers having a few pints before returning to work. Just because you've had a few pints, doesn't mean you're now going to be misogynistic or on a drug-induced rage when you return to the office or start playing beer pong

    154. Re:Brogramming??? by hermitdev · · Score: 1

      I think the initial flame was for a misunderstanding (on both sides?) of the return value for printf. On success, it returns the number of characters written. Which, in the context of returning from main, could either result in undefined behavior, depending on the length of the string, or indicating to the OS that an error condition occurred. - I say undefined because under certain circumstances, the OS or even the launching process may reserve certain ranges for their own use. For instance, shells may only give you 16 bits, and give the upper 8 bits as the signal (if any) that process exited with, and the lower 8-bits as a truncated value, the return value from the process - nevermind an int is typically 32 bits. (Apologies for lack of documentation, but I searched the C++11 standard, POSIX, Python subprocess module, and I couldn't find anything uniform or consistent).

    155. Re:Brogramming??? by TangoMargarine · · Score: 1

      Thanks for the info. This is a rare application for me to put that one half-course in assembly to use ;)

      I had to look some of that stuff up earlier as I was unaware that main() was actually implemented differently in the compiler instead of just throwing a compile-time warning for non-int typing or something...you learn something new every day, eh?

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
    156. Re:Brogramming??? by Anonymous Coward · · Score: 0

      A company where there is a "beer culture" is the norm should be axed. I'm guessing everyone there is in their twenties, smoke weed recreationally, and are generally poor at what they do, which is hacking together shit code right up to the deadline.

      People that need beer (or some other crutch) to work are already spiraling the drain. You may want to bail out before the whole thing goes under. Absolutely fucking disgusting that this can be a real thing.

    157. Re:Brogramming??? by YttriumOxide · · Score: 1

      I was on acid at the most recent work Christmas party... that was an "interesting" experience.

      What you haven't worked for twenty years or so?

      Heh, it may be less popular these days, but believe me, there's still plenty of people out there who enjoy LSD from time to time.

      I generally take it 2 to 4 times a year these days. Much less than in my younger days where it was generally between 12 and 24 times a year; but I do have a wife and child now, so I need to spend more time in "reality" than "stepping outside of reality".

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    158. Re:Brogramming??? by Anonymous Coward · · Score: 0

      It's also defined as the only function that if you reach the end without a return statement, it is implicitly "return 0;"

      No.

      Except void functions and C89, what did you actually mean?

    159. Re:Brogramming??? by uninformedLuddite · · Score: 1

      I guess the US may be different. Here in AU real acid hasn't been seen (at least by this punter) for decades.

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    160. Re:Brogramming??? by YttriumOxide · · Score: 1

      I guess the US may be different. Here in AU real acid hasn't been seen (at least by this punter) for decades.

      I'm in Germany... but if you want real acid in AU, I know a few guys in Sydney (where I used to live) that could help ;) The prices are terrible (around $15 to $25 per tab), but the quality is pretty good (around 100 to 150 micrograms per tab).

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    161. Re:Brogramming??? by Alex+Belits · · Score: 1

      I mean that int main(), just like any other integer function does not return 0 if it reached the end without a return statement, and a two days ago I had to fix a bug that was caused by someone making this very assumption.

      --
      Contrary to the popular belief, there indeed is no God.
    162. Re:Brogramming??? by Alex+Belits · · Score: 1

      (except in C99, what is not the default behavior for most compilers, and is a stupid idea in the first place)

      --
      Contrary to the popular belief, there indeed is no God.
    163. Re:Brogramming??? by maxwell+demon · · Score: 1

      However the program will, if output is successful, return the value 23 which, on most operating systems, will be interrpreted as failure. That's because on success, printf will return the number of characters printed (note that \n is a single character, and the '\0' ending the string is not output, and thus not included in that count). Now the majority of operating systems interprets any return value other than 0 as failure. However, on VMS the program will report success (because VMS interprets any odd exit value as success).

      Of course dimeglio's version isn't any good either. It not only completely omits the final \n in the output, it also completely ignores the return value of printf, thus reporting success even if the output failed. And of course if you just want to print a string directly, you'd not use printf anyway, but puts. So the improved code would look like this:

      #include <stdio.h>
      #include <stdlib.h>
       
      #define MESSAGE "Bro, do you even code?\n"
       
      int main()
      {
        int rc;
       
        rc = puts(MESSAGE);
        return rc < 0? EXIT_FAILURE : EXIT_SUCCESS;
      }

      --
      The Tao of math: The numbers you can count are not the real numbers.
    164. Re:Brogramming??? by maxwell+demon · · Score: 1

      It's also defined as the only function that if you reach the end without a return statement, it is implicitly "return 0;"

      Did they carry that over to C as well? In C89, it definitely wasn't the case. But then, it wouldn't be the only thing from C++ which made its way into C.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    165. Re:Brogramming??? by maxwell+demon · · Score: 1

      The function main is special, as it is called from code which wasn't written by you. From this alone it follows that it has to be restricted in some way.

      And the only thing special to main alone is that you cannot choose its name. Otherwise, there are tons of functions whose argument list and return value are fixed. For example, the functions you pass to qsort, or the functions you pass to signal. Again, those are functions to be called by code not written by you.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    166. Re:Brogramming??? by Anonymous Coward · · Score: 0

      So he is right then. You people make this so annoying to follow.

    167. Re:Brogramming??? by gparent · · Score: 1

      It's also defined as the only function that if you reach the end without a return statement, it is implicitly "return 0;"

      Did they carry that over to C as well? In C89, it definitely wasn't the case. But then, it wouldn't be the only thing from C++ which made its way into C.

      Correct, C89 didn't have it but C99 and C11 do.

    168. Re:Brogramming??? by Alex+Belits · · Score: 1

      No, he is not. If someone does things he claims to cause returning 0, ( int main(int argc, char **argv) { } ) program will return random value that MAY happen to be 0, or will be 0 if the compiler is in C99-compatible mode.

      Behold:
      $ echo 'int main(int argc, char **argv) { }'> maintest.c
      gcc -Wall -o maintest maintest.c
      maintest.c: In function ‘main’:
      maintest.c:1:1: warning: control reaches end of non-void function
      $ ./maintest ; echo $?
      64
      $ gcc -std=c99 -Wall -o maintest maintest.c
      $ ./maintest ; echo $?
      0
      $

      So unless programmer intends to rely on C99-only feature that only exists to cover up sloppy writing, he has to explicitly return 0 from main() just like with any other function.

      --
      Contrary to the popular belief, there indeed is no God.
    169. Re:Brogramming??? by Anonymous Coward · · Score: 0

      If you don't know what standard you're compiling with, you're a fucking idiot. So yes, he was right.

    170. Re:Brogramming??? by gparent · · Score: 1

      Whatever. I'm not here to argue which standard is stupid and which one isn't, just the fact that in C99 and above it works that way. Either way it's ridiculous trivia because most applications will have a return statement regardless of what standard you use.

    171. Re:Brogramming??? by jmcvetta · · Score: 1

      No team I've ever worked with would even consider working while drunk.

      Maybe teams in California work differently, who knows.

      This is why California still produces the best software. It's not the drinking per se - rather, it's the culture that permits it. Creativity blooms more easily in a free culture.

    172. Re:Brogramming??? by Alex+Belits · · Score: 1

      If you don't know what standard you're compiling with, you're a fucking idiot. So yes, he was right.

      No, it means that you are writing portable code, and don't rely on inconsistent exceptions included into standards to pander to idiots.

      --
      Contrary to the popular belief, there indeed is no God.
    173. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Don't code me bro!

    174. Re:Brogramming??? by HeckRuler · · Score: 1

      "Isn't any good"? Come on dude, both versions put text on the screen. Both completely fulfill the imaginary requirements. Whether or not the OS sees the process as having a fault or not is inconsequential. This is kind of the crux of the MIT-approach vs whatever it is you'd call Gabriel's idea conflict. Which is the real basis for the article. (Personally, I didn't think "brogramming" had anything to do with booze, so much as having a clique of young programmers that meshed well and were friends. Which is a hard environment for the new old guy to enter into, hence all the demonizing).
      The larger concern rather than wrongly indicating the performance of the program to the OS is that in some environments parts of the return statement are apparently reserved, and touching them results in undefined behavior. I say "larger concern", but since my code returns 23, and doesn't touch the upper bits, it's only a potential bug that would come with later development. On niche systems no-one cares about. So it's not that large of a concern. The sort of issue that only OCD anally retentive types care about. While a good trait for programmers when it comes to making code functional, it hurts them when it comes to how much they actually make. Something in which to seek balance, for sure.

      But anyway!

      #include <stdio.h>
      #include <stdlib.h>
      int main(int argc, char** argv)
      {
        unsigned int burgers = 3735928559;
        int i;
        char bro [10][10] = {{"bitch..."},{"of "},{"massive "},{"\n"},{"do "},{"I "},{"amounts "},{"code!"},{"bro, "},{"Yeah "}};
       
        srand(6443+burgers);
        while(i=rand()%10)
        {
          printf("%s",bro[i]);
        }
        printf("Chill and eat some %x",burgers);
       
        return 0;
      }

      Since rand() isn't standard at all, you could probably find out my development platform from this.
      Also, it took an unbelievably long time to find out that slashdot's ecode tag only indents when posting in Plain Old Text mode and eats your indentation in HTML mode. Also, if I'm posting is P.O.T mode, why the hell did my link above work? Just how old and crufty is the code behind Slashdot! Jesus, this wouldn't have happened if they followed the MIT-approach!

    175. Re:Brogramming??? by Anonymous Coward · · Score: 0

      Glad you agree with my point.

    176. Re:Brogramming??? by maxwell+demon · · Score: 1

      "Isn't any good"? Come on dude, both versions put text on the screen. Both completely fulfill the imaginary requirements.

      Well, come back when you lost data because some programmer (or "Brogrammer"?) didn't properly handle errors. Then you might think slightly different about the usefulness of proper error handling.

      (And yes, there was a backup. But that only restored the data up to the previous night. And yes, that meant that some data was irreversibly lost.)

      --
      The Tao of math: The numbers you can count are not the real numbers.
    177. Re:Brogramming??? by pseudorand · · Score: 1

      > You might. To me iterative development is where you explore different designs as you go. However you generally know whether you're building a cash register's
      > firmawre, a strategy game or an accounting package before you start.

      Ya, the cash register's firmawre, a strategy game or an accounting package is what you figure out in the 1 hour to 1 day you spend gathering a very scant initial set of requirements. Then you go code something so you can have those same discussions again, this time with a somewhat working piece of software as a visual aid.

      > I'm not sure the appearance of a fad like XP quite amounts to a discrediting...
      It's not fads like XP and agile that attempt to capitalize on common sense that discredit the waterfall model. It's the fact that most of us, in one way or another, do iterative development. And the fact that the dinosaurs that don't can't keep up and are slowly dieing off.

      The reason it's a pain point is that those dinosaurs are dieing so slowly instead of in a mass-extinction. They feed not off of quality software and valuable contributions to the economy like they should, but off of long-standing relationships with other old geezers in charge of companies and governments who make decisions based on personal relationships rather than results and reasonable IT costs. There's lots of very expensive and inefficient software development still going on and it pains me to see it.

    178. Re:Brogramming??? by Anonymous Coward · · Score: 0

      But he's still correct, and your irrelevant childish rage doesn't change much to that.

  2. Prototyping by concealment · · Score: 5, Interesting

    Brogramming is prototyping.

    In the ideal project, you gather the spec in advance, carefully design, and then implement.

    In the real world, almost everything is a prototype because the demands are not known. Your product may succeed for entirely different reasons than you expected. At that point, you're going to be re-coding. Once you present a prototype, people will have changes that are more than cosmetic. You're going to "hack" -- literally kludge around the expected design -- and force it to work.

    At that point, you have a prototype. The correct response then is to go back and refactor everything to make rev2.0 a solid and powerful piece of software.

    This doesn't apply in every case. If you've got a clear task that's more technical than business/social, you can draw it all up on paper and build it the way L. Lamport suggests.

    But for the rest of us, 'brogramming' is just another way of saying "getting to rev1.0"

    1. Re:Prototyping by Anonymous Coward · · Score: 0

      Brogramming is prototyping.

      In the ideal project, you gather the spec in advance, carefully design, and then implement.

      In the real world, almost everything is a prototype because the demands were too unimportant to be written down in the rush to get something coded that was clickable

      ftfy. and truth be told we all do prototyping, but we (the good ones at least) step back after the prototype is done and think long and hard about throwing all the code away in favor of doing it the right way.

    2. Re:Prototyping by gbjbaanb · · Score: 2

      except you forget ever0changing requirements do not change, so once you have your working prototype and you begin to "refactor everything" (a misnomer if I ever heard one) you are going back to step 1, just with more of a clue than you had when you started.

      Agile techniques were invented to deal with this problem, but they are in no way the ill-disciplined bullshit way of coding the article is describing. Agile requires you to be very disciplined in fact (and I refer to "proper" agile, not the "Agile" nonsense that masquerades as agile when someone tries to sell you some agile training course or materials).

      For most of us, "brogramming" is just a way of saying "kids trying to appear cool and think they're the greatest". The rest of us can do all that shit without the inefficiency and poor practice associated with this type of playground activity.

    3. Re:Prototyping by serviscope_minor · · Score: 2

      Brogramming is prototyping.

      Yes, because prorotyping is best done in a booze and testosterone fueled haze.

      --
      SJW n. One who posts facts.
    4. Re:Prototyping by Skapare · · Score: 2

      And that's OK for things where security doesn't matter like Facebook or Google. But not for banks, medical devices, airplane controls, military ...

      --
      now we need to go OSS in diesel cars
    5. Re:Prototyping by Creepy · · Score: 1

      case in point
      TCP/IP vs OSI

      TCP/IP was quickly created by some students and released into the world, and then improved on. OSI was developed over years of specifications before even attempting to be implemented, and then it was so difficult to implement it took years before a working version even existed (I believe it was 7 years before they had a working model in a lab after the spec was finalized, and that spec took forever as well). Networking engineers think OSI is vastly superior from a design standpoint, but TCP/IP does the job and easily controls the market.

    6. Re:Prototyping by MadKeithV · · Score: 2

      ftfy. and truth be told we all do prototyping, but we (the good ones at least) step back after the prototype is done and think long and hard about throwing all the code away in favor of doing it the right way.

      Only to then get a big fat "NO" from management because "it already works fine".

    7. Re:Prototyping by Anonymous Coward · · Score: 2, Funny
      Some of my most productive coding sessions have been late at night after a night drinking with friends in a hot and crowded bar, grinding with girls, and maybe even getting some head in the bathroom :)

      There's a certain urgency, determination, and focus that just isn't there at other times.

      These days, I do a line of coke once in a while for a similar effect but it's not the same thing.

    8. Re:Prototyping by Anonymous Coward · · Score: 0

      Prototyping is prototyping. Brogramming is an abomination.

    9. Re:Prototyping by jandrese · · Score: 2

      TCP/IP has one huge advantage: Simplicity. It's easy to underestimate the advantage of keeping something easy to understand and simple to implement/maintain.

      --

      I read the internet for the articles.
    10. Re:Prototyping by Anonymous Coward · · Score: 0

      Maybe you need library which you use in your program, and which then makes the GUI of the program look sketchy. Call it the "prototype library" and link it in all your prototypes. Then your boss will see immediately that it's not a finished product.

      Of course don't tell him that you can give your program that shiny professional look if you just remove the prototype library from compilation ...

    11. Re:Prototyping by AwesomeMcgee · · Score: 1

      Which is the same "NO" we get from management when we ask for reqs because "Just make it do what I said, you know, be social and friendly looking with some feeds or something". If we SE's weren't so smart to begin with, this industry would honestly come crashing to it's bloody knees or rather, just run completely differently, you know, where other people do their jobs rather than us doing everyone's.

    12. Re:Prototyping by F.+Lynx+Pardinus · · Score: 1

      Brogramming is prototyping.

      Don't you mean...brototyping?

    13. Re:Prototyping by Lazere · · Score: 1

      And that's OK for things where security doesn't matter like Facebook or Google. But not for banks, medical devices, airplane controls, military ...

      Because a whole bunch of people don't have personal information on Facebook. And Google doesn't claim to have the most secure browser and OS out there...

    14. Re:Prototyping by Anonymous Coward · · Score: 0

      It's times like this that I wish I could moderate as +1 Troll, but unfortunately troll can only be negative.
      This is my first experiment at whether commenting anonymously while logged in removes my mod points. I suspect it will.

    15. Re:Prototyping by AwesomeMcgee · · Score: 3, Insightful

      Thankyou. Honestly, proper agile takes a lot of discipline and skill, at the end of the day I think you can't do proper agile without at least 50% of the involved team having completed the "Learn programming in 10 years" book rather than the 21 days version. You have to have seen all the shit that doesn't work over and over again for so long before you can even begin to do any of the stuff that works, and catch people trying to do the same tired crap, getting stuck in design meetings that spin forever or the alternative of just jamming out a bunch of garbage without talking to anyone, wasting everyone's time asking every step of the way how you should do each little thing or structuring an entire module according to your own hair brained ideas and never looking at the rest of the systems structure to see how crap yours will integrate, spending a week fulfilling requirements nobody wrote but you thought were just important for your little piddly irrelevant piece of the puzzle or not being thorough enough in seeing the big picture so as to catch the shit that needs to be done but wasn't written down or even mentioned. So many ways to eff it all up, so many ways. So yeah, "Learn programming in 10 years" then help a team be agile properly and it'll work out far better than some wankers "learn daily standups in 2 days to solve all your problems" garbage or "waterfall because it's worked for everyone since the 70s!", or "agile, as in, just go get it all done without the requirements or any help whatsoever, better be good because I heard agile is good!".

      I think honestly the biggest cause though hands down of all this type of just-get-it-done crap comes from MBA's being too good to actually do any work, more less any work *for* lowly developers, it's supposed to be the other way around! Therefore they never generate specs or requirements because they're supposed to be telling other people to do work, not doing work themselves, why else did they go to school to become SOOO smart?? Between those schmucks and the "programming is cool, I'm going to be the next zuckerburg!" weeners, the industry is rife with people utterly clueless. But I guess that just mirrors the real world...

    16. Re:Prototyping by Anonymous Coward · · Score: 0

      Brogramming is prototyping.

      Yes, because prorotyping is best done in a booze and testosterone fueled haze.

      It should be made in the same state as the specification was written, so yes, mostly.

    17. Re:Prototyping by Fallingcow · · Score: 1

      We have that.

      It's called tk with classic widgets.

    18. Re:Prototyping by PintoPiman · · Score: 1

      What does "testosterone-fueled haze" even MEAN? Like, if I wanted to get into one, what would I have to do? Other than be male, which presumably our heroic REAL software engineers already are?

      Are you suggesting that this mythical beast of "brogrammer" is injecting testosterone hormone?

      Or is the simple act of going to the gym sufficient to produce the "haze?" How much gym is necessary? Is it possible to be in shape but avoid the "haze?"

      Or is this just a bunch of fucking name-calling nonsense?

    19. Re:Prototyping by tigersha · · Score: 1

      Right, so during your stunt in the bathroom, was the laptop on her back?

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    20. Re:Prototyping by Anonymous Coward · · Score: 0

      ISO OSI covers TCP/IP in that it is a logical break down of the various aspects of the stack. The fact that most implementations shortcut aspects of it for performance does not mean it is invald. It is a useful abstraction even if only in theory.

    21. Re:Prototyping by ghostdoc · · Score: 1

      I'm trying the other approach... I've been coding for >30 years and now I've almost finished my MBA.

      And yes, agile done properly is good. Agile as an excuse to not spec or plan the project is bad.

      Any analogy that compares writing code with building houses is plain misguided unless it points out how one is creative and non-deterministic and the other is very deterministic. The reason you can write good quality code with no spec is automated testing: you can come back to a piece of quality code ten years later and change it easily if it has a comprehensive test suite. If not, then you'll need a spec.

      --
      Business/App ideas are like arseholes: everyone's got one, they're mostly shit, but very rarely they contain a diamond
    22. Re:Prototyping by Anonymous Coward · · Score: 0

      Since bathrooms tend to be same-sex, I don't doubt your story at all.

    23. Re:Prototyping by steelfood · · Score: 1

      When you write, your initial goal is to put as much down onto the piece of paper as possible. The booze, pizza, and closed-room helps.

      This is also true of writing code. You don't expect production code to come out of binge coding, just code that will do what you want it to do. The engineering aspect can come later after a few refactors.

      This is consequently why I think strict OOP is over-engineered, and fairly inefficient at getting things done. Scripting languages and their ilk, on the other hand, are far better at producing working code.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    24. Re:Prototyping by ducomputergeek · · Score: 1

      I spent the better part of the last 10 years working on prototyping and getting several different start ups to the refactoring stage. Usually it's something like this: "I have an idea and $xx,xxx to build a prototype and demo to people." At that point myself and usually one or two others would take the basics, sketch out a rough idea of what was needed and get to work making the product to do what the client wants. It didn't have to be polished, but it just needed to work well enough. Didn't have to do it well or be the best way to do the task, it just needed to function. You'd be surprised at how quickly we could develop stuff on top of PostgreSQL, Perl w/CPAN, on the server side and then HTML/JavaScript on the client side. I'm primarily a systems guy who can do enough coding to make it work. Which has proven useful when troubleshooting prototypes where problems could becoming from any one of the links in the production chain. I won't say that we work on beer fueled bingers, espresso maybe, but there is a ready supply of adult beverages in the office fridge if someone should care for one.

      Once the was stable enough to start getting clients and hopefully investors then I would usually work on hiring my replacements who were experienced coders, work with the business types to translate business speak into geek and get the new team on its way towards version 2.0. And looking at the code produced by professional programmers compared to what I and the others would write was night and day. But again, our job was to make something functional often as quickly as possible to meet the requirements.

      --
      "The problem with socialism is eventually you run out of other people's money" - Thatcher.
    25. Re:Prototyping by Anonymous Coward · · Score: 0

      Brogramming is prototyping.

      Don't you mean brototyping?

    26. Re:Prototyping by pseudorand · · Score: 1

      Case closed. Thank you! Mod parent up. Pedantic OSI so-and-sos.

    27. Re:Prototyping by david_thornley · · Score: 1

      OOP is very useful on larger projects, and scripting languages aren't. If you're always working on small code bases, you may be entirely correct in your preferences.

      Two of my favorite programming languages are C++ and Perl. Different tools for different tasks.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    28. Re:Prototyping by vsync64 · · Score: 1
      --
      TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
    29. Re:Prototyping by mikael · · Score: 1

      One of the most interesting things in doing things in a hurry is that you write the absolute minimum of code necessary to solve a problem, but will need to continuously add new features in the future . In the past, design by committee with sub-committees, technical reports, and you will get an PI with more layered architecture, but lots of extra functions and a smorgasbord of data structures, will last longer, but take years to be considered to be reliable and trusted by customers. In the past, such systems would have to wait for the advance of CPU's before they became usable.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    30. Re:Prototyping by Anonymous Coward · · Score: 0

      I also have the much sex and much fun. I also am a genius at the work I do, and my many funs and sexes only improve it, when for most others it hinders. I also brag [lie] about my extreme life on a tech site.

    31. Re:Prototyping by Guy+Harris · · Score: 1

      ISO OSI covers TCP/IP in that it is a logical break down of the various aspects of the stack. The fact that most implementations shortcut aspects of it for performance does not mean it is invald. It is a useful abstraction even if only in theory.

      There's the OSI Reference Model, as described by ISO/IEC 7498-1 (available as ITU-T Recommendation X.200), and there's the OSI protocol stack, with protocols such as the Connectionless Network Protocol ISO/IEC 8473-1 (available as X.233), the Connection-Oriented Transfer Protocol ISO/IEC 8073 (available as X.224), and the Connectionless Transport Protocol ISO/IEC 8602 (available as X.234).

      The "ISO OSI" that "covers TCP/IP" is the Reference Model. The person to whom you're responding is talking about the OSI protocol stack.

    32. Re:Prototyping by Guy+Harris · · Score: 1

      case in point TCP/IP vs OSI

      TCP/IP was quickly created by some students and released into the world, and then improved on.

      Actually, the specs were created by a bunch of people including at least three Ph. D.'s, and there were several independent implementations, including one done at Bolt Beranek and Newman for UNIX; the latter one was subsequently modified by some students at Berkeley (I have the impression that, in addition to Bill Joy, Sam Leffler worked on the 4.2BSD TCP/IP stack) and offered as part of BSD UNIX, and the rest was history.

    33. Re:Prototyping by Anonymous Coward · · Score: 0

      Perhaps he is referring to brototyping.

      This brobot will brotect you.

      Don't brorry

      Breverything brill bre allbright.

      brleh.

  3. Never seen one by Anonymous Coward · · Score: 5, Insightful

    Hollywood's doing as good of a job portraying programmers as they have every other aspect of technology. I've never seen this 'brogrammer' in the wild. I don't doubt that there may be small, isolated pockets of them but it's not exactly the cancer that is killing the industry.

    1. Re:Never seen one by telekon · · Score: 3, Funny
      --

      To understand recursion, you must first understand recursion.

    2. Re:Never seen one by Anonymous Coward · · Score: 1

      Ah, but they do exist! I found them surprisingly prevalent in L.A., and pretty much the entire engineering org at hulu consists of "brogrammers". Likely related to regular DNS outages on the corporate network...

    3. Re:Never seen one by tgd · · Score: 1

      Hollywood's doing as good of a job portraying programmers as they have every other aspect of technology. I've never seen this 'brogrammer' in the wild. I don't doubt that there may be small, isolated pockets of them but it's not exactly the cancer that is killing the industry.

      Well, much like Fox needs to make up drama to drive their slobbering masses to keep watching, so does Slashdot, from time to time.

      And, no, "Brogramming" doesn't happen in the real world.

    4. Re:Never seen one by Anonymous Coward · · Score: 0

      Hollywood's doing as good of a job portraying programmers as they have every other aspect of life.

      FTFU.

      HTH.

      Seriously, they can't even get stories about acting or movie-making accurate, and they could film that around them!

    5. Re:Never seen one by 91degrees · · Score: 1

      Sure they exist. You get a few of them at startups where getting something that more or less works out the door is more important than quality engineering, but that's the only time you'll see this, and even then it's not all startups.

    6. Re:Never seen one by Anonymous Coward · · Score: 0

      Hollywood's doing as good of a job portraying programmers as they have every other aspect of technology. I've never seen this 'brogrammer' in the wild. I don't doubt that there may be small, isolated pockets of them but it's not exactly the cancer that is killing the industry.

      They are called demosceners, they drink and code at the same time. The projects have strict deadlines but the code is written with the intent of releasing at deadline and never look at again. Ugly hacks are acceptable because maintaining is not going to be an issue. Starting the code form scratch every time gives it a more unique flavor.
      You never see more than at most 1000 of them at the same place.

    7. Re:Never seen one by meta-monkey · · Score: 1

      Brilliant.

      --
      We don't have a state-run media we have a media-run state.
    8. Re:Never seen one by mjwalshe · · Score: 1

      every one knows that the best way to break crypto is to employ the services of halle berry to speed up the process :-0

  4. The equestrian pattern by fatgraham · · Score: 5, Funny

    I read that as "Why we should build software like we build Horses"

    But then I am drunk at work today.

    1. Re:The equestrian pattern by Anonymous Coward · · Score: 0

      Which are you? An airline pilot, cop, truck driver, or taxi driver.

  5. Why should we care? by jdoss · · Score: 1

    Let a "brogramming"-managed team release product into the marketplace and see what happens. When it fails, we will yawn and continue doing what we've been doing.

    1. Re:Why should we care? by idontgno · · Score: 4, Insightful

      Exactly. Look at the market fail-crater that is Facebook.

      Oh, wait, that didn't happen. Success and failure have exactly nothing to do with quality of the software product. "Good enough for the suckers" is the order of the day and the practitioners of this approach rake in billions of dollars a year.

      So, yeah. I'm not sure what definition of "fail" you're using, but clearly it has nothing to do with revenues, market, or social impact.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    2. Re:Why should we care? by Anonymous Coward · · Score: 0

      This article has a grain of truth. Facebook has been a huge success, yet the code that runs it always has been, and continues to be- crap. The site is riddled with bugs, and amazing, in 2013, it still cannot support things such as bold or italic text. Zuckerberg's seemingly innocuous decision to build the website in PHP is likely part of the cause, but I imagine the Facebook "culture" is the culprit that makes it continue to this day.

    3. Re:Why should we care? by DaTroof · · Score: 1

      I suspect that Facebook's reputation for being a brogrammer culture is an exaggeration perpetuated by the movie. If there was even a time when their work environment resembled anything in The Social Network, the company has matured since then. This article about their release process paints a different picture.

    4. Re:Why should we care? by yurtinus · · Score: 1

      Ah, but Facebook isn't a software company, it's a data company. They don't sell software, they sell eyeballs. When the product is the community you build, the software isn't very important. Look at an actual software or integration (hardware and software) business and I think you'll see a drastically different approach to software design. Where I am it's practically law that you don't open an editor until you have requirements and have worked out a preliminary architecture. The requirements will change and the architecture will adapt to those changes, but what's faster: Reverse engineering a pile of kludges or looking at a design and saying "Oh, we need to make this change here."

      --
      +1 Disagree
    5. Re:Why should we care? by Anonymous Coward · · Score: 0

      "Oh, wait, that didn't happen. Success and failure have exactly nothing to do with quality of the software product."

      Would you hire Zuckerburg and Company to develop real-time embedded software for airplanes? How about trading algorithms on the stock market, or banking software in genral? How about an operating system?

      Move fast and break shit only applies when your product isn't truly important.

    6. Re:Why should we care? by SolitaryMan · · Score: 1

      I don't know how it started or is there any grain of truth in the movie "Social Network", but I'm pretty sure this is not how they do programming at facebook today.

      Another thing I'm sure of is that in 30 years your grandkids will be asking: "facewhat?"

      --
      May Peace Prevail On Earth
    7. Re:Why should we care? by Nethemas+the+Great · · Score: 1

      There are certain kinds of software that allow for drunken programming and kinds that do not. Web and mobile app development tend to fit into the former, whereas line of business apps would be an epic failure and create a short route to the unemployment line if developed while drunk. Relatedly there are two classes of software developer, the monkey and the engineer. The monkey just slings some crap around and calls it a day. The engineer is contemplative and methodical. Accordingly each tend to slot themselves (or have it done for them) into a certain kind of development work. It is unfortunate that the monkey dominates public perception but then public perception has seldom been a strong concern for the geek/nerd anyway.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    8. Re:Why should we care? by Anonymous Coward · · Score: 0

      I think they were probably referring to Quality.

    9. Re:Why should we care? by mikael · · Score: 1

      Usually, the company will have two teams - the first writes all the applications code. The other team writes automated tests which try to break the application code.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  6. Depends on the product by cs668 · · Score: 5, Insightful

    If you was your time upfront and someone beats you to the market, who cares about the engineering!! If you capture the market for a new idea you can use a more formal process for v2 while your competitors missed out.

    If you are building my pacemaker, then lets be formal from the start!!

    Seems, dumb to make a one size fits all statement about hacking out some code vs. engineering.

    1. Re:Depends on the product by schlesinm · · Score: 3, Insightful

      If you was your time upfront and someone beats you to the market, who cares about the engineering!! If you capture the market for a new idea you can use a more formal process for v2 while your competitors missed out.

      Just like MySpace beat FaceBook to market and Netscape beat IE to market. Getting that first mover advantage really fueled their meteoric rise and long stay at the top.

    2. Re:Depends on the product by gl4ss · · Score: 1

      If you was your time upfront and someone beats you to the market, who cares about the engineering!! If you capture the market for a new idea you can use a more formal process for v2 while your competitors missed out.

      Just like MySpace beat FaceBook to market and Netscape beat IE to market. Getting that first mover advantage really fueled their meteoric rise and long stay at the top.

      pretty shitty examples considering that lack of specs killed neither MySpace or Netscape(we're still using specs netscape came up for lot of stuff aren't we?) and neither FB or IE were written exactly to any spec originally....

      with a pacemaker you know what the thing is supposed to do and within what parameters. with coming up something like facebook they didn't.

      --
      world was created 5 seconds before this post as it is.
    3. Re:Depends on the product by cs668 · · Score: 1

      Being first doesn't always make your product. But, it's a nice problem to have to be first. I can promise that if you are trying to raise money you will be asked, "who else is doing this and how far along are they"

    4. Re:Depends on the product by Anonymous Coward · · Score: 0

      Netscape was rewritten from scratch.

    5. Re:Depends on the product by PoolOfThought · · Score: 1

      I see it a little differently than you. MySpace was huge, but mismanaged entirely. That makes it a completely different issue.


      Basically, both were services that did similar things, but they were in different "generations" even though only separated by a few years. They weren't competing head to head from the gate.

      It wasn't like there was a race to market that Myspace won and Facebook lost. Facebook literally got to sit back and look at all the things MySpace did wrong and do it differently themselves.

      cs668 is right in that it is often the case that the first person to market gets a head start. If they do not totally suck and make everyone they them then they can AND MUST iteratively improve their "product". If they do so such that their product is never made to look like garbage compared to the competition then they will get to carry that "first to market" advantage with them indefinitely, but they have to manage it properly for it to work. If they don't manage it well and become stagnant or release junk then they'll lose that advantage and have to compete on a level playing field. Trust me, every business out there would LOVE to have even the smallest advantage and being first to market is a way to get a huge one!

      --
      My present is the activity I am currently engaged in with the purpose of turning the future into a better past.
    6. Re:Depends on the product by GlassHeart · · Score: 1

      If you capture the market for a new idea you can use a more formal process for v2 while your competitors missed out.

      That still depends on how much of your v1 you're able to salvage for your v2. If you essentially have to toss it all out, then you've just thrown away much of the advantage you have against a (typically big boy) competitor. Think of your v1 as detailed specs for Google's very bright engineers.

    7. Re:Depends on the product by VortexCortex · · Score: 1

      Or how Microsoft beat Linux to market....

  7. Oh look, a buzzword by Sir+or+Madman · · Score: 2

    Let's hope all this bro-gramming doesn't result in a coding-gate!

    1. Re:Oh look, a buzzword by Anonymous Coward · · Score: 0

      This code makes no sense! What's true is false and what's false is true!

      This shall be known as... logic-gate!

  8. That's why you see a lot of crap code by boddhisatva · · Score: 2

    I do computer science - discussing work over beer is fine, but designing software - that requires a clear head and some caffeine. I like the saying "Mathematicians are machines for turning caffeine into theorems."

    1. Re:That's why you see a lot of crap code by Skapare · · Score: 1

      And you are sure it can't be alcohol?

      --
      now we need to go OSS in diesel cars
    2. Re:That's why you see a lot of crap code by larry+bagina · · Score: 2

      So, you abuse a drug -- caffeine -- for work. Is it also ok to smoke up some meth? That's just Alderall without a prescription. What if you snort a fat line of primo uncut colombian flake to fight that "2:30" feeling? Where do you draw the line between "good drug" (like heroin) and "bad drug" (like beer)?

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

  9. Yay, Waterfall! by agizis · · Score: 1

    Summary: Author wants us all to start using Waterfall Methodology because he is totally unaware of how it worked out in the 80's and 90's.

    1. Re:Yay, Waterfall! by gbjbaanb · · Score: 2

      pot, meet kettle :)

      See the second picture on the first answer. Notice how the waterfall system as described by the original inventor shows how it iterates backwards until the major steps are completed. Surprised that waterfall isn't quite as waterfall-y as popular fable suggests?

      The problem with the 80s/90s waterfall led projects were external to the methodology used. The concept of up-front design can work, if you understand you need to be a little bit flexible. I'd say there are a lot of projects today that are being built using Agile methods that will be seen to be total failures in the future (ok, they're not truly agile, they're usually bastard versions of some PMs idea of a good time spent planning) but the simple fact that you can't blame the method for human fuckups should be clear to all.

      Except 'brogramming' which is pure human fuckup right from the start.

    2. Re:Yay, Waterfall! by Anonymous Coward · · Score: 0

      And off course Agile is magically going to solve all our problems.
      My Agile guru told me so, its on his website. So it must be true.
      In the past everybody was using waterfall, which was evil, and caused all of our problems.
      Nothing every succeed in the past, right?
      Just paint everything black & white: The old was methodology is bad, the new is perfect.

      Lot's of best practices were invented waaay before the Agile movement came along.
      (For example: Iterative development was invented at the end of the 70's)
      But no: Lets forget everything from the past and make some of the same mistakes again!

      Read up about the history of software development.
      Once in a while a new methodology comes along, promises heaven and becomes the new hype.
      In reality the world is more complicated.
      The same is happening over and over again.

    3. Re:Yay, Waterfall! by AwesomeMcgee · · Score: 1

      haha true that. I would say at the end of the day it's not the methodology screwing everyone up, it's everyone that's a screw up as in, up into management that's screwing everyone up. PM's.. pfleh, what a waste of space, but then when you don't have enough skilled engineers on your team to keep everyone organized in the same direction, a good pm can help. Finding a good PM though is way harder than finding a good engineer, at least most engineers got into it because they liked coding, PM's got into it because they "like people or something, really wasn't sure what I wanted but tried a bunch of different things and this one kind of seemed to fit" (translation I got a job doing it and it paid better than the other jobs I'd gotten, even though I have no idea what I'm doing and don't plan to study any history or industry results about the job to get better)

    4. Re:Yay, Waterfall! by gbjbaanb · · Score: 1

      that's true - PMs fall into 2 groups: ones who know their stuff about resource allocation and planning and generally managing a project; and those who thought "I be manager, so staff do all work while I get all glory".

      You do need skilled engineers though, so the best thing you can do for any project is to improve and build up your colleagues so they are better. That requires a non-ego expert to help them, like a teacher. Unfortunately most people who consider themselves to be experts are the arrogant arseholes who really need the most help.

  10. BROdot by Anonymous Coward · · Score: 0

    this place needs an enima

    1. Re:BROdot by Anonymous Coward · · Score: 0

      Slim Shady? Is that you?

    2. Re:BROdot by FilmedInNoir · · Score: 1

      You mean enema or anemia? One would clean out old posts but the other requires a transfusion.
      Maybe a bag of O positive redditers?

      --
      Sig. Sig. Sputnik
    3. Re:BROdot by jnork · · Score: 1

      It was obviously a type-O graphical error.

      --
      Cleverly disguised as a responsible adult.
  11. We should build software like we build software by ZombieBraintrust · · Score: 2

    ... not houses. Software and houses are not similer.

    1. Re:We should build software like we build software by telekon · · Score: 2

      Definitely. But to be fair, we should make floating point operations like we make house-building operations, because the return values both have floors and ceilings.

      --

      To understand recursion, you must first understand recursion.

    2. Re:We should build software like we build software by invid · · Score: 1

      Software and houses are not similer.

      While software and houses are not similar, you could use building a house as a simile for building software, so in that way they are "similer". (I think you just made up a new word.)

      That said, I think the point they are making is that you should have a plan before building a house and you should also have a plan before building software, and not just jump right in.

      --
      The Moore-Murphy Law: The number of things that will go wrong will double every 2 years.
    3. Re:We should build software like we build software by Anonymous+Brave+Guy · · Score: 5, Funny

      Software and houses are not similer.

      Of course they are.

      For one thing, when people ask an architect to design a new home for their family, it's perfectly normal to call him back six months later in the middle of first fit and say that actually what they need is a skyscraper. With a secret underground lair. And access to open water, so unfortunately the urban site where half of it currently sits is no good and the whole thing will need to be relocated to the nearest coast. And the building regs have suddenly changed, so now instead of concrete and rebars, the whole thing has to be made of environmentally friendly engineered wood materials.

      Moreover, just like houses, we have thousands of years of experience building software now. We've become pretty good at telling in advance which techniques will be needed, what order the different components will need to be built in, and especially estimating how long it's going to take and what it will cost.

      Actually, maybe it is a slightly unfair comparison, because the amateurs who build physical structures, like that mile-long railway tunnel that was drilled from both ends and wound up out of position by absurd amounts like 4mm when they met in the middle, can't really keep up with software development professionals who can build precisely specified interfaces and get everything to fit together exactly on the first attempt.

      That's mostly because the tools and processes for doing all of this in the software world are well understood throughout the industry, which in turn is because everyone practising software development has gone through rigorous training taught by people who are themselves experts with years of practical experience to draw upon. Engineers and architects try to do the same thing, but they just haven't quite nailed it yet. I guess software guys have an advantage here because those tools and processes are universal and uncontroversial, so everyone in software does things the same way and software project managers don't really need to co-ordinate their team to quite the same extent that, say, a lead contractor would when building a house.

      But apart from that slight advantage because software development is so much better understood, I think it's perfectly reasonable to compare building a house to building software and expect things to work the same way. There's really no qualitative difference at all, and basically the same processes work just as well for both tasks.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:We should build software like we build software by TheLink · · Score: 1

      The Wired writer and very many other people really don't get it.

      Civil Engineering:
      Design Phase typically costs about 10% of Build Phase.
      AND even if you have a 100 floor skyscraper, the majority of the floors would have about the same design (could be most odd floors are one layout and most even floors are another layout, or similar).
      Build Phase involves tons of construction workers and heavy machinery.
      The blueprints and plastic models are way cheaper to make than the Real Thing.
      Management often doesn't mind spending a bit extra to get the design better, because the budget only allows for one big Build.

      Software Engineering:
      Design Phase costs more than 1000 times the Build Phase.
      Each of the 100 floors should normally NOT look the same[1] unless the coder is crap.
      Build Phase involves the programmer typing "make all" and going to read Slashdot or fetch a coffee.
      The "plastic models" and blueprints each cost as much to make as the Real Thing.
      Management often sells the blueprints/plastic models as v1.0 because they compile and "kinda run", the budget only allows for one big Design iteration... And the customers often buy it anyway - then complain... :).

      It should be no surprise then that the plastic models or blueprints regularly have problems.

      And given that so many people think CE and SE are the same and try to treat/manage the projects similarly it should be no surprise that many software projects fail.

      Perhaps what we really should do is ask experienced successful architects how they project manage the design phase of a complicated building or structure. How long it takes and how much it costs.

      [1] The more complicated software projects are probably closer to an airliner due to more interdependent parts/modules, and potential for weird side effects in seemingly unrelated modules.

      --
    5. Re:We should build software like we build software by Belial6 · · Score: 1

      Then there is the fact that most software is built dramatically better than most houses. Houses are built terribly. They are loaded with design decisions that are specifically put in to cover up kludges and poor workmanship. Even then, they are loaded with flaws that don't get hidden. If we built software like we build houses, we would worry less about doing it right and more about convincing people that the flaws are supposed to be there.

    6. Re:We should build software like we build software by rho · · Score: 1

      It's actually fairly common for construction projects to run into changes. While nobody requests to turn a shed into a skyscraper, large changes that touch many disciplines occur quite regularly.

      The difference between AEC and programming projects is a long history and legal framework that deals with these changes. Projects are given a budget, and that budget is often paid out at milestones--design development, 95%, construction documents, etc. If the owner requests a substantial change, or if a change is required because of unknowable circumstances, the budget is either revised or the work is value-engineered to fit--and this reality is reflected in the contract signed at the beginning.

      The problem with programming projects is that there are not very many really good programmers, and programming is not suited to throwing more warm bodies at the problem. AEC is plate spinning, while programming is juggling. You can hire a bunch of folks to help keep the plates spinning, but you can't just send in somebody to help juggle.

      --
      Potato chips are a by-yourself food.
    7. Re:We should build software like we build software by Anonymous Coward · · Score: 0

      Software and houses are not similer

      No, but blueprints and source code are.

    8. Re:We should build software like we build software by sjames · · Score: 1

      Clearly, you've never done punch-out before. This load bearing wall was built 6 inches too far over, get the sledge hammers, I think we can move it over!

    9. Re:We should build software like we build software by jrumney · · Score: 1

      you should have a plan before building a house and you should also have a plan before building software

      Not necessarily (at least not in so much detail). Refactoring a house partway through because the original plan was found to be deficient is very expensive, so your plans need to be very detailed up front, and architects tend to be conservative about including too much out of the ordinary in the plan. The plans are also in the form of drawings, which are easy for the customer to review and approve. With software on the other hand, the requirements from the customer are usually very vague, and it is often better use of time (cost) to jump straight in and create a prototype to get feedback from the customer than to spend a lot of time up front writing specifications that the customer will sign off without reading properly, then get upset at the end because what was delivered wasn't what they had in mind.

    10. Re:We should build software like we build software by joss · · Score: 1

      Nicely put, TOA is beyond stupid.

      When engineers make a new airline/bridge/circuit, they model the entire thing on a computer first. The CAD model is an unambiguous model of the plane. Important subsystems in it are modelled and analysed independently and in conjunction with the components around it.

      So, if writing software was similar, we would first model the software on a computer. Oh, er, wait a moment. In an important sense, software is a design. The only unambiguous design is the actual software [otherwise we could make the design the programming language]. So, one could have a notion of starting with a fuzzy design and gradually making it clearer, but you can still end up with a bad design.

      When someone designs a bad aircraft, the design is modelled, flaws are found and the design is improved. Nobody builds the thing until they feel pretty sure the design is right. However, software is often bad for the same reason that an initial design of anything else is bad. If it was equivalent to an airplane, windows 95 for instance, once designed, would never have been built. However, once the design for a piece of software is complete, one has created the software. All the development money has been spent, so the makers will try to get what they can for it. It's *all* design.

      --
      http://rareformnewmedia.com/
    11. Re:We should build software like we build software by Anonymous Coward · · Score: 0

      I love the smell of sarcasm in the morning.

  12. CSB by Anonymous Coward · · Score: 0

    Cool Story, Bro.

    1. Re:CSB by Forty+Two+Tenfold · · Score: 1

      Agile Brogramming? SC and a bottle of RUM?

      --
      Upward mobility is a slippery slope - the higher you climb the more you show your ass.
  13. Brogramming was a joke by Fujisawa+Sensei · · Score: 1

    Brogramming is a joke already; get over it.

    --
    If someone is passing you on the right, you are an asshole for driving in the wrong lane.
    1. Re:Brogramming was a joke by NewWorldDan · · Score: 1

      Actually, I find coding under the influence to be very beneficial at times. I often get so wound up over trying to design my structures and manage security requirements and all that that I can't get anything done. On the other hand, drink a few beers and I suddenly don't care anymore and I just start making things happen and then go fix things up the next day. It's usually not the best way to get a program written, but sometimes, you know, it's the only way.

      Although, this is usually also a solitary activity. When I get together with the guys, it's not to make software. But it might be to make beer.

  14. The answer is no by Anonymous Coward · · Score: 0

    As with all headlines formulated as questions.

  15. The Social Network was just a movie and not scary by Anonymous Coward · · Score: 0

    Brokeback Mountain UML is the movie that should have you question 'brogramming.' Not that theres anything wrong with that.

  16. he doesn't know the history by sribe · · Score: 1

    "writing software" – free form, creative, inspirational – from "software engineering," its older, more thoughtful and reliable cousin.'

    Bullshit. The free-form, creative, inspirational kind is decades older than "software engineering".

    1. Re:he doesn't know the history by foma84 · · Score: 1

      Agreed.
      I don't know where that comes from, but it's total bullshit, plain wrong, and should never come from somebody writing an article about programming.

    2. Re:he doesn't know the history by h2oliu · · Score: 4, Interesting

      Take a look at his biography. His experience starts mid-90s in large corporations. Maybe he thinks computing started then?

      --
      Ok, I give up, why you?
    3. Re:he doesn't know the history by Anonymous Coward · · Score: 0

      The word 'Bullshit' however, is even older than free-form, creative, inspirational programming.
      It's a way of dismissing something, without making an argument.

      Happens a lot on projects too:
      Programmer A: "Maybe, we should talk to the customer. After all, he is going to use the software and he pays for it."
      Programmer B: "Bullshit! This is free-form, creative, inspirational programming!"

      Not to be confused with Bullshit programming, though.

    4. Re:he doesn't know the history by sribe · · Score: 1

      Take a look at his biography [veracode.com]. His experience starts mid-90s in large corporations. Maybe he thinks computing started then?

      You, sir (or madam), have solved the mystery. Unfortunately, I can offer neither riches nor fame for this :-(

      Hell, I can't even mod you up!

    5. Re:he doesn't know the history by sribe · · Score: 1

      Agreed.
      I don't know where that comes from, but it's total bullshit, plain wrong, and should never come from somebody writing an article about programming.

      Well, as another reply to my post pointed out, his bio is online, and shows that he got his start in the mid-90's in large corporations.

    6. Re:he doesn't know the history by PoolOfThought · · Score: 1

      If it makes you feel any better I don't think they meant "older" as software engineering" has been happening longer than "free bla bla bla". I think that it is similar to when you go to a family reunion and you see two cousins where one just dropped out of high school (even if just too smart to be there and didn't give a shit) and the other, older and "wiser", that has plowed through and just finished his MS in Comp Sci. The second is viewed as more reliable and more thoughtful. Even though his actual age had nothing to do with it... except that youngsters are viewed as unreliable and less thoughtful. It's about what appears old (and the attributes that go along with that), not what is actually old.

      --
      My present is the activity I am currently engaged in with the purpose of turning the future into a better past.
    7. Re:he doesn't know the history by AwesomeMcgee · · Score: 1

      This is dead true. engineered software has very valuable place, but yeah this shit was all born of the free-form creativity of a bunch of math geniuses, continuously for decades until someone made money off of it, and an industry was born trying to formalize it so they could just put the magic in a bottle and sell it as a potion.

    8. Re:he doesn't know the history by damien_kane · · Score: 1

      Hell, I can't even mod you up!

      You could request information relating to subscription to his newsletter, though, if his ideas are so intriguing.

    9. Re:he doesn't know the history by Anonymous Coward · · Score: 0

      I could be wrong, but since there was no such thing as a compiler before 1952 it seems to me that "brogramming" couldn't have possibly existed before then.

    10. Re:he doesn't know the history by Anonymous Coward · · Score: 0

      Take a look at his biography.

      Don't you mean brography?

  17. Like houses??? WTF?? by n1ywb · · Score: 4, Insightful
    Anybody who thinks that software development should mirror home construction has obviously never built a house, lived in a brand new house and delt with the sorts of issues that arise, done any major renovations, or otherwise been exposed to the sort of shoddy cob jobs that permeate the industry. Here in Vermont you're always finding shit like balled up newspaper insulation in the walls, 100 year old knob and tube wiring, frozen pipes, banging pipes, lead pipes, lead paint, asbestos, vermiculite, front porches built from rotting wood, leaking roofs, freshly painted fronts but peeling backs, dry laid slate foundations, and other eye boggling crap, pretty much every house you look at. The architect might draw plans but belive me the construction crew will find a way to bungle them and will do whatever they damn well please to get the job done. I feel like somebody is stretching for an analogy. SOFTWARE IS NOT CONSTRUCTION! SOFTWARE IS NOT LIKE A HOUSE! FFS. Different types of projects require different levels of care. Blogs, social networks, and one off command line utilities do not kill people when they break.

    Anyway as a software engineer I can tell you that I THINK in code. I draw diagrams sometimes, for the complex bits, as necessary. But if I code up a POC and it sucks, it's cheap to tear it down and start again. Not so much when you are building a house, get it right the first time or you will hate life. So it's a dumb analogy.

    --
    -73, de n1ywb
    www.n1ywb.com
    1. Re:Like houses??? WTF?? by sandytaru · · Score: 4, Insightful

      Actually, your description of that new house is exactly like some code I've seen...

      --
      Occasionally living proof of the Ballmer peak.
    2. Re:Like houses??? WTF?? by Anonymous Coward · · Score: 1

      I agree. Software engineering is more like a car.

    3. Re:Like houses??? WTF?? by endus · · Score: 1

      I agree about some of the smaller projects, but the problem is that as a security engineer I consistently see the exact type of coding you allude to with your house analogy in bread-and-butter production systems. At one place I worked the developers couldn't even tell us what port range their application used to communicate...and this was in probably the most sensitive environment where faults were unacceptable that you can imagine...on an 80K node network. They were literally unable to provide us with that information. That type of incompetence isn't going to fly for much longer, and yet I see it everywhere.

      If it were just a problem with small internal utilities or meaningless social media stuff I would agree, but it's not.

    4. Re:Like houses??? WTF?? by drinkypoo · · Score: 1

      I feel like somebody is stretching for an analogy. SOFTWARE IS NOT CONSTRUCTION! SOFTWARE IS NOT LIKE A HOUSE! FFS.

      Notably, it costs you money to make changes in a house, and you can't just copy a house and then start working from there. Whereas it doesn't necessarily cost you anything to make "changes" to incorporate a library, if you designed for it in the first place. You can buy prefabricated sections but you can't simply copy and reuse them.

      When people build software, even if they have the "blueprints" that tell them what the "foundation" will look like, often they're not starting there. Either they're starting with some simpler code they've written and writing an application to make use of it, or they're planning to draw in a lot of code from some other source... or both.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Like houses??? WTF?? by BeSharps · · Score: 1

      Anyone who thinks that software development does not mirror home construction in some ways has never worked on a large software project, worked with software beta releases and dealt with all the issues that arise. In most software development companies, you often have to deal with all sorts of issues that arise, because you are exposed to the sort of shoddy cob jobs that permeate the industry (lack of unit testing, hacks on top of hacks, unmodularized messes, missing mutex locks and general thread safety, security holes, unchecked bounds, etc.). The System Designer(s) may come up with the plans on what to write, but the development team will often find a way to bungle the design and do whatever they damn well please to get the job done, especially when the development team includes sub-contractors.

      Different construction projects require different levels of care. Dog houses, patching holes in the wall, and small renovations do not kill people when they break.

      Now, as a software engineer, if you are working on small projects without any collaboration, there is no problem just writing code and re-writing it if it sucks. Especially if you are salaried and in no way impacted by productivity and delays. However, in a large team environment, where changes to the interfaces between components likely means weeks of effort to completely overhaul if it is not done properly in the first place, with customer delivery needed on a strict schedule or face financial punishment, in these cases perhaps a bit of extra planning at the beginning of each phase may be worthwhile.

    6. Re:Like houses??? WTF?? by Anonymous Coward · · Score: 0

      Broken software can kill plenty of people across the world. Software isn't just commandline utilities, it is a multitude of database and embedded applications that we use in hospitals, power plants, aircraft, cars, boats, submarines... Get real- an enormous part of our lives is controlled by computers, with widely varying levels of risk and widely varying impacts when things break. Your wall can also break: your house will generally stay standing.

      Unrelated, but with respect to your enumeration- half of the things on that list are and have been illegal for use in construction for decades.

    7. Re:Like houses??? WTF?? by nurbles · · Score: 1

      If we're looking for truly robust designs, shouldn't software engineering be like spacecraft engineering? Or at least like the engineering done to build things like the SR-71? Automotive engineering is a MUCH better analogy than home building, but there are an awful lot of BAD vehicles not only designed, but actually built, sold and on the roads.

    8. Re:Like houses??? WTF?? by bill_mcgonigle · · Score: 1

      Software is not like a house.

      Software project management is very much like construction project management. I even know a person with a PhD in construction project management who went into software project management for medical software.

      Show a developer who's under the gun for a project deadline and is getting last-minute changes thrown at him daily how change orders work in construction, and he'll either laugh or cry at his own situation. That developer is *not* in a mature environment, but he is in a very common one.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    9. Re:Like houses??? WTF?? by avandesande · · Score: 1

      I like the 'garden' analogy used in "The Pragmatic Programmer"

      --
      love is just extroverted narcissism
    10. Re:Like houses??? WTF?? by idontgno · · Score: 1

      I see what you did there.

      I would have preferred a pizza analogy, but whatever.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    11. Re:Like houses??? WTF?? by Anonymous Coward · · Score: 0

      Some programmers are capable house builders while others are engineers that build skyscrapers and tall bridges. Which one you wanna do bro?

    12. Re:Like houses??? WTF?? by Anonymous Coward · · Score: 0

      Creating software is like building a house in that the framework needs to be well-designed otherwise everything else will be bad; and changing the framework once you're build upon it is very hard to do.

      This is why you hear of the term "software/systems architect".

    13. Re:Like houses??? WTF?? by nightfury · · Score: 1

      "but there are an awful lot of BAD vehicles not only designed, but actually built, sold and on the roads."

      And this is different from software how?

    14. Re:Like houses??? WTF?? by Anonymous Coward · · Score: 0

      Hundred year old knob and tube wiring in a NEW house? I hate to tell you, but that house the realtor told you was "brand new" probably has gaslight pipes in the walls. Everything you described is an OLD house, from newspaper as insulation, lead pipes, lead paint, asbestos. That porch wasn't built with rotting wood, it was built with brand new wood that rotted fifty years later when somebody neglected to paint it.

      And in a house that old, you're going to find obsolete and even now-illegal things, like copper pipes soldered together. And in an older house it's going to have previous work done to it by someone who is not trained in the art, let alone competent.

      As to software not killing people, a lot of people have died from buggy software.

    15. Re:Like houses??? WTF?? by toddestan · · Score: 1

      I kind of view it like one of those old family cabins that's been added on over the years. So now it has a quirky layout, stairs in weird places, windows between interior rooms, doors that open up the wrong way, kitchen appliances that aren't actually in the kitchen, and stuff like that. Even if the cabin and additions are all well constructed by someone who knew what they were doing, and everything is all up to code, you still have quirks and oddities in the design. It's inevitable, as requirements are going to change, and eventually things will need to be added on where there is easy or logical no way to do so. Tearing down and starting over or making major modifications isn't an option, so you just have to do the best you can. Even when you try to anticipate future changes in the design - say you build your new cabin so that it will be relatively easy to add some more bedrooms later, they always seem to throw something at you that you never expected. Like instead it now needs a workshop with a 200A circuit and a second kitchen. It doesn't matter that adding that messes up your really nifty and well laid-out new cabin - you end up having to kludge it in.

  18. Emotions by Anonymous Coward · · Score: 0

    An observation I made of the way gamers play 1st person shooters is that they don't do what's rational but what emotionally comforts them in the moment. If you do what's analytically correct to do instead (eg hide and wait instead of running around like a wild thing) you can usually beat them.

    There is no reason why the same principle doesn't hold for programming.

    1. Re:Emotions by SuricouRaven · · Score: 1

      You can beat them, but you must then endure the ritualised taunting of the camper. Gaming culture strongly discourages that style of play because it can ruin the fun: If everyone does it, no-one ever moves anywhere. Camping only works fun-wise for everyone on maps designed so the camping spots are good, but not too good: You need the snipers to at least poke their heads into the open, not shoot through a hole exactly large enough to see through.

    2. Re:Emotions by Anonymous Coward · · Score: 0

      And many people (mostly those who derive fun from things other than winning at any cost) find it horrendously boring. Plus, it's just plain bad for you; once you get flushed out by people who actually know how to use grenades or numbers or other anti-camper tactics, you are at a severe disavdantage. Camping stagnates every skill but reflex shooting, which isn't as important as many would think.

    3. Re:Emotions by lightknight · · Score: 1

      *shrugs* Wasn't a problem in Shadow Warrior. Half would camp, half would devise effective strategies to get around camping.

      --
      I am John Hurt.
    4. Re:Emotions by gorzek · · Score: 1

      Of course, what we have here is a classic game theory problem! It's like a Prisoner's Dilemma, but switched around.

      We have two actors in this scenario, and each can make one of two possible choices: camp or pursue. If both camp, neither can kill the other, so no one wins. If both run out into the open, they are on equal footing. If one chooses to camp and the other chooses to pursue/search for the camper, the camper is at an advantage because they should be able to spot the aggressor's approach and kill him.

      This means the optimal solution for the individual is to camp, but the optimal solution for the group is to either camp (if survival is the only goal) or pursue (if the death of one opponent is the only goal.)

  19. Or why we should not build software like houses by Max_W · · Score: 3, Funny

    We all know how much corruption goes on ( allegedly and sometimes) around construction and urban development.

    Good software means much more. It requires honesty, integrity, empathy, even a talent.

    1. Re:Or why we should not build software like houses by Anonymous Coward · · Score: 0

      Corruption is a good explanation for many software phenomena.

    2. Re:Or why we should not build software like houses by Anonymous Coward · · Score: 0

      We all know how much corruption goes on ( allegedly and sometimes) around construction and urban development.

      Not enough! Hurry, goddamnit, get lost in the analogy FASTER! Ignore the point MORE! You've got a valid argument to dismiss! Your fragile cynicism-based ego is at risk! MORE DISPARAGING! FASTER!

    3. Re:Or why we should not build software like houses by Anonymous Coward · · Score: 0

      Do you think house construction doesn't require talent? Talk to the trades who have to work inside a newly framed house and they'll tell you who's good to work with and who isn't. Try drywalling when none of the walls are square. Or working with a contractor who doesn't get the trades doing their job in the proper sequence (always fun to run plumbing *after* the drywall is done). All levels of house construction are affected by the level of skill the person has. Poor skill = a hack job of a house. Great skill = a really well-built home.

  20. never seen one by Anonymous Coward · · Score: 1

    I've never seen one of these "brogrammers" in the wild. The few people I have met that come close to this attitude were definitely outliers and outcasts. To think that they are taking over the industry is laughable. When your argument is based on a Hollywood portrayal of a character, you're really reaching for substance - they're not known for being realistic in their portrayal of things. From war to love, they've managed to get it wrong; why would they be right this time?

  21. Requirements Engineering? by hsmith · · Score: 3, Insightful

    Over my 10 years, I've worked on dozens of projects across quite a few clients.

    "Requirements" are generally vague ideas, which change at the drop of a hat.

    While I love the concept and practice of getting down requirements, personally, I have yet to see the practice really stuck to - even for multiyear, multimillion dollar projects. Great theory, but in practice...

    1. Re:Requirements Engineering? by AwesomeMcgee · · Score: 1

      There's such a huge variety in the industry, I've seen it stuck to at multiple companies I worked at, and then absolutely not at all at others. It just depends, and what works varies just as much. At the end of the day, it's the people who've completed the "Learn to program in 10 years" book that get the job done well regardless of the bullshit surrounding them, so long as they completed the book that is, so many people seem to spend 10 years on chapter 1 and then proclaim "I finished the book!", wrong.

    2. Re:Requirements Engineering? by gorzek · · Score: 1

      So true. You're lucky if you have requirements set down on paper before you begin coding. You're even luckier if they don't change substantially by the end of design, much less construction. And it happens often enough where you're halfway through coding it, and a critical requirement change is slotted in. You just have to roll with it.

  22. "brogramming" = nothing to do with testosterone by Anonymous Coward · · Score: 0

    It's about latent homosexual desire.

    Testosterone is about tissue growth in your body.

    "Brogramming" is about doing everything with your male partners except have sex.

    1. Re:"brogramming" = nothing to do with testosterone by Haxagon · · Score: 1

      Yeah, men enjoying things with men is now gay. Next, testosterone will be oppressive, and castration preferred. Give it a rest.

    2. Re:"brogramming" = nothing to do with testosterone by Anonymous Coward · · Score: 0

      WTF are you talking about?

      Oppressive testosterone? Are you insane?

      That poster was talking about the latent homosexuality in brogramming as in a bromance.

  23. New Rule. by American+AC+in+Paris · · Score: 0, Flamebait

    OK, new rule.

    Every time Slashdot posts an asinine, hit-trolling, golly-gosh-gee-what-if article like this one, they need decrement all red hues by #01 and increment all blue hues by #01.

    This rule will hold until Slashdot reaches a color more appropriate to the caliber of its reporting.

    --

    Obliteracy: Words with explosions

    1. Re:New Rule. by DarwinSurvivor · · Score: 1

      In an RGB pallet, where do you see any red on slashdot?

  24. Steve Jobs was Sober??? by Anonymous Coward · · Score: 0

    Do you think Apple was made by strait-laced, sober people? They are "only and all hippies" and not "nerds".

  25. mythical creature by stenvar · · Score: 1

    divorces "writing software" – free form, creative, inspirational – from "software engineering," its older, more thoughtful and reliable cousin

    When is this mythical creature supposed to have lived?

    1. Re:mythical creature by Haxagon · · Score: 1

      Never. It's obvious this is just linkbait. If Software Engineering came before people actually having a good time and being able to intuit about their code (what they call "brogramming" doesn't really exist, except in code-focused parties and cheap Hollywood flicks), then the vacuum tube predates the abacus. This is absolute bullshit.

      I also have a problem with people using this idea of "brogramming", blaming it on testosterone, and then denouncing both. It's just college kids who are doing this, and I've seen women at those code-oriented parties, too. In some, they outnumber the men. This is conflating being able to intuit your code and having fun with your code, while trying to push the idea that "if you're not a tightass, you're not a good author". Complete bullshit. Some of the most elegant KLOCs I've seen have been because someone's "gotten in the groove", not because they've precisely engineered their code. That's not to say that standards of programming and clean code don't have their place (they do!) but the idea that clean-cut engineering is unequivocally superior to intuitive coding is unfounded.

  26. That's because coding and design are different by sandytaru · · Score: 2

    A designer can come up with workable a software layout without writing a single line of code. A coder, on the other hand, who tries to write a program without that blue print is probably going to miss something vital.

    The superstar programmers are the ones who are adept at both roles, but the run of the mill coder is not a super star. and the run of the mill designer hasn't gone much beyond do-while loops in an introductory Java class. Separate out the analysts from the programmers, treat them like the two roles and two separate skill sets that they are, and you'll produce better software all around.

    --
    Occasionally living proof of the Ballmer peak.
    1. Re:That's because coding and design are different by Anonymous Coward · · Score: 0

      A designer can come up with workable a software layout without writing a single line of code. A coder, on the other hand, who tries to write a program without that blue print is probably going to miss something vital.

      The superstar programmers are the ones who are adept at both roles, but the run of the mill coder is not a super star. and the run of the mill designer hasn't gone much beyond do-while loops in an introductory Java class. Separate out the analysts from the programmers, treat them like the two roles and two separate skill sets that they are, and you'll produce better software all around.

      You are trying to create the same dichotomy there is between architects and laborers, which makes me suspect that you are attempting to position yourself as an architect. An architect needs only very little understanding of how laborers concretely do their jobs. That's because the main skill of a laborer is to do the same couple of things over and over again, so the architect just needs to understand the things that those couple of things produce. The process itself is the challenge to the laborer - how do I get this material from here to there without injuring anyone? The challenge is not in considering the impact on the entire building of the local work - that's what the architect is supposed to do.

      In programming the challenge is not how to manipulate a keyboard into the right position without injuring someone. The challenge is in fitting the design of the system to the complexity of the component currently being worked on. It is never the same thing twice, unless you are duplicating work. If the designer has no understanding of that process he can't design anything because the design must flex to the complexities of each component (or that complexity will spill out) and dealing with those complexities is exactly what programming is!

      A designer who can't code is not like an architect who can't do manual labor, it's like an architect who doesn't know the properties of any materials or how they interact to create something structurally sound. Such people may draw pretty pictures but I wouldn't envy anyone having to build or live in those buildings.

    2. Re:That's because coding and design are different by Anonymous Coward · · Score: 0

      I wish this were true; but I've never seen such a waterfall-like process actually work. Every design document I've ever seen is a description of the code after the fact, and a dry, sleep-inducing description at that. Nobody reads them. Every attempt at "design, then code" I've seen resulted in months of meetings and a few scattered bits of code that hadn't been integrated or implemented well enough to run fast. Month of meetings. Nothing but spinbars while a page loads.

      I have heard one credible story 2nd hand of a guy who had studied process and put it in practice. Allegedly he drove management crazy asking them a lot of detailed questions about their requirements, and documenting that. Then he did the actual working code in a day or two and it just worked.

      Sorry, but I maintain that in almost any environment outside of mission-critical defense systems where you have a TS clearance, you're unlikely to find "designers" or "architects" that are anything other than overpaid middle managers.

      What's the difference between a designer and a "cowboy coder" like myself? My code compiles. Theirs doesn't. I generate more value for the company and get paid less. Go figure.

    3. Re:That's because coding and design are different by sandytaru · · Score: 1

      Just like I don't envy anyone who has to fix code written by a lone cowboy without a second perspective during the design and analysis process. The architect is useless without the builder - all those beautiful blueprints are a waste of time and money for things that they can't build. The builder isn't useless without the architect, but they may not be able to incorporate all the building codes (requirements) as they go along without some sort of guideline, and that's what the architect is supposed to include. College MIS programs have come to this same conclusion, and they're forcing their graduates to grind through several semesters of actual programming classes instead of just letting them float through building Excel spreadsheets.

      --
      Occasionally living proof of the Ballmer peak.
  27. Pure Fiction by stevegee58 · · Score: 1

    So-called "brogramming" is simply a fictional creation made for movies by non-engineers and non-programmers.
    The closest you'd come to seeing this in reality might be a group programming project at a university.

    1. Re:Pure Fiction by Rob+the+Bold · · Score: 1

      So-called "brogramming" is simply a fictional creation made for movies by non-engineers and non-programmers. The closest you'd come to seeing this in reality might be a group programming project at a university.

      I've done some coding in my career. Sometimes it was 100% of my job. And the only time I ever did (or saw) anything that could be remotely termed "brogramming" was as a teenager, when my friends and I traded off creating the most obnoxious version of a BASIC program to print our names over and over on a display model C=64 in the local Venture* store. (I believe the "winner" of that contest was the guy who POKEd in alternating rainbow pattern text and background colors.)

      "Brogramming" bears about as much similarity to the real world as Jack Bauer and the "ticking time bomb". Real crappy code is created in a much more banal and boring fashion.

      *Fun fact about Venture: The probationary "trainee" cashiers got registers with unlabeled ten-key pads, so they had to learn the numbers by touch.

      --
      I am not a crackpot.
  28. To paraphrase an outstanding (literary) author... by Anonymous Coward · · Score: 1

    Code drunk, edit sober.

  29. Somebody's gotta do it by king+neckbeard · · Score: 4, Informative

    obligatory xkcd

    --
    This is my signature. There are many like it, but this one is mine.
  30. Fluff article... by MrNemesis · · Score: 3

    ....that seems to exist solely to either attempt to coin a phrase, or just blindly continue the meme of prepending "bro" to everything.

    Coding has, sadly, always been "testosterone fuelled" simply by having so many more men in the profession than women for the majority of its history, despite the fact that the vast majority of nerds, geeks and just plain computery types are far and away from what I'd see as a "bro" (although as a recalcitrant Brit I might not fully grok the term, is a "bro")
    I've not yet met any programmer (or indeed any slightly competent professional) that hasn't overindulged in various psychoactive substances at some point in time

    The article seems to base it's findings on having watched The Social Network, and seems to think that because a college undergraduate and his mates became hojillionaires after a few beers (yup, it was totally that simple) that this is why software quality is going down the pan. Stupid privacy issues aside, I was under the impression that facebook had a fairly good track record on actual server security because it already had put a large emphasis on engineering standards; even if they don't, they wouldn't be the first company that started out as some frenzied and possibly coding session and later put on a professional hat and cleaned up its act. I wonder if Larry and Sergey had a beer fridge at Stanford?

    The real reason "quality software" is apparently seen to be disappearing is because a) software engineering as a "methodical, engineering-heavy discipline" is both difficult and expensive, not to mention seen as boring by many, so many companies and individuals will skimp and b) because barriers to entry are so low and there's so much *more* software out there now (including just as much good, if not great stuff), it could conceivably give the impression that "good software" is drowning in a sea of mediocrity.

    My 2p.

    --
    Moderation Total: -1 Troll, +3 Goat
    1. Re:Fluff article... by AwesomeMcgee · · Score: 1

      I think possibly the biggest thing people ignore when they hear zuckerburgs story and get stars in their eyes if they're coders imagining their story the same or alternatively non-coders and think any frat kid can write code is that these guys were going to frigging Harvard. These guys were never just some college kids, to begin with they were A) raised well-off with every benefit you could have B) smart enough to be writing code before college C) smart enough to have been accepted to harvard D) smart enough to not even be struggling while they were there.

      I'm sorry, but these dudes were all smarter than most everyone before they became rich, and they became rich because of that. Facebook hardly had anything to do with it, these dudes would have become rich one way or another because that's what happens to people who can meet all 4 of those circumstances, and I mean all people who can meet those 4 criteria. Period. So just stop comparing anything at all about the guys who started Facebook (or classically Bill Gates because he was a drop-out, sorry again; he went to fucking Harvard.) to the rest of anything. You're talking about 0.0001% of people and comparing them to everyone the hell else, just stop, it's stupid.

    2. Re:Fluff article... by Anonymous Coward · · Score: 0

      There is still traditional software engineering done in certain industries like medical devices, aerospace, military, computer and phone manufacturing, etc. however, the typical internet service application tends to be just quick to market stuff where reliability is not significant.

    3. Re:Fluff article... by Anonymous Coward · · Score: 0

      The article is the very height of journ-bro-lism!

    4. Re:Fluff article... by Anonymous Coward · · Score: 0

      All 4 of those will take you a long way. There is a E though, hustle. So you got a foot in the door you need to do something with it and not piss it away. I have seen enough 'rich kids' piss away a golden opportunity because they were to busy being 'bros'.

      Saw one where they were basically given a bar that had been around for 30 years and had a decent mix of clients. They basically chased all the regulars off for college aged kids (who have no money, oh and live on the other side of the city) and tried to turn it into a karaoke bar and ripped out the carpet (bare cement looks so much more 'cool'). Giving away fifths of vodka away to their 'buds' of which there were many. That bar was gone within a year. Then having to sell off the attached liquor store (money mint) to pay off the debts they ran up from the bar. They had 0 clue what it took to run that business. That is just one example of the many I have seen.

      I agree though you are trying to take someone who was setup to succeed. Then comparing them to people who will have to work for it just to get to the point they were at 15 years ago. Its not the same thing. For some of your points though I would substitute 'smart' for 'rich' though. It is possible to buy your way into many things with enough money. You do not necessarily have to be smart.

    5. Re:Fluff article... by Anonymous Coward · · Score: 0

      Slight clarification: "bro" does not just mean "male." Properly translated, it means "Male. Fratboy. Douchebag."

      Therefore, "brogramming" is properly translated as "self-important douchebags writing computer programs."

      I hope this clears things up a bit.

  31. Tubular by RedHackTea · · Score: 5, Funny

    Like dude, that is so totally rad. We should surf the brogramming waves some time. Grab some Java and feel that Ruby sun! We can do that C-walk over to the Perl ravine. Just Go! Remember when we did that Objective-C and got a total Brainfuck! Ah man, and that girl had triple D! But for shame, she had a Lisp. She totally wanted to see my Python. So righteous! I can't wait to Bash this weekend.

    --
    The G
    1. Re:Tubular by Anonymous Coward · · Score: 0

      You know what would be fun? Of course you don't I haven't told you yet. The answer is to know how long is spent on typing up a comment like the above. See if it took you only a few minutes then it's funny but if it took you since this article appeared it's not quite as funny. How can we judge if we don't know? This took me over 5 minutes so it's likely not that funny.

    2. Re:Tubular by RedHackTea · · Score: 1

      It actually took me about 5 min I think, but I wasn't timing it. I don't know why your comment took that long too :P I thought of some better ones later, like "Hang 1010!"

      --
      The G
  32. That's what by conscarcdr · · Score: 1

    Rails Girls is for.

  33. Bad code... survives by Dystopian+Rebel · · Score: 1

    There are many forces apart from incompetence acting upon any non-trivial software project. There are compromises to be made, and risks to be evaluated.

    In short, there are factors that have nothing to do with the code that affect the quality of code.

    The larger the organisation, the greater the tendency towards failure to understand, failure to communicate, and failure to complete. It isn't simply a question of architects, coders, testers, and documenters doing their very best.

    There are some coding projects that are as essential as housing, in the sense that defects might cause death. But the majority of coding done in the world is slapped together and discarded within a five-year cycle.

    What the heck, if it's for revenue recognition, release the prototype and hire e-workers to post favourable comments on some Web sites!

    To paraphrase the Shat, "Bad code... survives."

    --
    Rich And Stupid is not so bad as Working For Rich And Stupid.
  34. Stupid Article by cfulton · · Score: 1

    Stupid Idea. I would like to see them brogram weather prediction or the control system of a jetliner. WFT. I guess we must endure stupid tech writers.

    --
    No sigs in BETA. Beta SUCKS.
    1. Re:Stupid Article by Anonymous Coward · · Score: 0

      So that's what happened to the Boeing Dreamliner..

  35. Agile enough to fail by Anonymous Coward · · Score: 1

    Take away the booze and you get agile the current management darling that does away with pesky things like requirements and design. Seriously though agile, extreme programming, or whatever team coding buzz word you apply to it is nothing but the naked obsession with speed of delivery. It doesn't matter if it solves the right problem, or even if it works. Just delivery it now Now NOW.. NOWNOWNOW!!!!!!!!!!

    Agile is the ultimate realization of the management dreams that "If I don't understand it it must be simple", "What have you done for me today", and the ever popular "Yes damnit with adequate beatings Rome most assuredly could have been built in a day".

    The most dangerous part of this deranged thinking is that to a certain extent it is true. There is no good reason why a static web page needs a month of requirements, layout, design, inspections, and of course a 5 week QA cycle. But like just about everything else in the real world this does not scale. The further you get from "Bob's Blog" and into "Global Enterprise B2B solutions" the bigger fool you make of yourself by demanding "A daily shippable product" and "Major release every 2 weeks"

  36. House-building is a terrible analogy by TheMathemagician · · Score: 1

    The analogy of building a house is a terrible one and Lamport is just plain wrong. You would quite rightly expect disaster if you suddenly decided to add an extra bedroom while in the middle of building a house, or suddenly switch the front and back, or decide to add an extra storey. However analogous changes while developing software are really not a big deal. House-building requires physical objects to be assembled in a very precise way, ordered in time and space. Software is supremely flexible. By all means let's improve software engineering but stop bringing in completely nonsensical analogies.

  37. Judging from the current code quality by DaveV1.0 · · Score: 0

    The "engineering" part of "software enginnering" has been a fantasy. If bridges were made at the same quality level as software, they would randomly collapse without warning for trivial reasons.

    --
    There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
  38. Does not matter for the short time code is useful. by Anonymous Coward · · Score: 0

    Buy the time it is hacked by the found security were on to ver 2 or the next big thing for most stuff think of all the old software you no longer use.
    You must have cd and dvd full of it. and few of those are even the first version.

    I am just saying rock on./ code on the ride has been great so far.

  39. Taking it a tad too seriously. by bimozx · · Score: 3, Interesting

    Seriously, anyone who takes "brogramming" as an epidemic really needs to question themselves. "brogramming" itself is already ridiculous and taking it seriously is even more ludicrous, why should anyone care if someone else define their activity as such. This is exactly the same problem with people perceiving that there are way more people being stupid than the old days. It's not that there is a sudden increase of people being stupid, it is simply because now, there is an outlet (the Internet) for them to be publicly stupid. There have been always, since the beginning, programmer being stupid, it is just recently that they have come to light. And there is no actual proof that "brogramming" actually has anything to do with turning good programmer into a bad one. At the end of the day, all that matters is a working code, does it even matter if the programmer is seemingly a jock or a nerd.

  40. Brogramming more in line with business by scamper_22 · · Score: 1

    Real software engineering takes a lot of time and a lot of resources. The closest I've heard of it is from those older workers who used to work for the old telecom companies back in the day. In my case Nortel in Canada. But even that was pretty far off.

    They simply required a lot of resources in terms of people, time, equipment, and training.

    Contrast that to 'brogramming'. New Idea... bunch of college kids whip out something usuable in a short time... get to market... deal with the rest of the stuff later.

    The only way to protect against 'brogramming' would be to have software as a profession with standards enforced... like doctors, lawyers...

    1. Re:Brogramming more in line with business by Anonymous Coward · · Score: 0

      Source code is free speech. Can't happen, and ethically should not happen.

  41. No by Murdoch5 · · Score: 2

    I completely disagree with this post, I'm from the camp that you don't plan all the requirments before you start. I've done a lot of embedded and desktop programming and at least for me it's a far more productive setup to let the requirments fall out of the code as you work. I know many other programmers who would work better in this enviroment, we can see the requirments in the code and we have no problem seeing the end result as we work.

    However I also know "old" programmers who work better where they want the bulk or all the requirments set before they start anything. Either camp is right, it just depends how you work, much like a great artist, you need to work in the way you best express yourself.

    To sit someone down and plan requirements all out when they don't work that way is a huge waste of time, they aren't really getting much out of it and you've wasted time they could be programming. However on the same page to not plan the requirments out for someone that needs them will just hurt them. Hence I really don't think we need to move back to the view that requirments must be planned out, we need to move to a system where we reconize that some people work better in camp A and some in camp B. The industry needs to evolve with the times and it's in a state now where the young hot shots work differently but the old guys wants to resist change.

  42. Bromancing the Brogrammer by sl4shd0rk · · Score: 4, Funny

    There was once a brogrammer from Slo
    who coded with a bro named mo
    together they flowed, to and fro
    until they were both let go

    --
    Join the Slashcott! Feb 10 thru Feb 17!
    1. Re:Bromancing the Brogrammer by Anonymous Coward · · Score: 0

      You mean San Luis Obispo?

    2. Re:Bromancing the Brogrammer by steelfood · · Score: 1

      until they both let go

      I like that version better.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
  43. Programming is not Software Engineering by sunking2 · · Score: 1

    It's that simple. Thinking they are interchangeable to me tells me the true value of the end product. These wild west environments are allowed because in the end the products aren't all that important other than to generate money. And just like short selling a stock sometimes you win, sometimes you lose, but you understand and are willing to take the chance going in. If you want real Software Engineering practices you need to go to where the code actually matters. Like the auto/aerospace or anything else where there are tangible losses associated with failure.

  44. I don't do a lot of programming by mark_reh · · Score: 2

    but when I do (assembly language, PIC microcontrollers) I always start with diagrams that show the overall flow of the program, then I start making diagrams for the subroutines, etc. I generally have the whole thing diagrammed before I start writing any code and try to make subroutines as generic as I can so they can be reused easily. I thought this was how coding is done -it's how I learned about 30 years ago... are they teaching it different now?

    1. Re:I don't do a lot of programming by Anonymous Coward · · Score: 0

      How you code is dependent on what you are trying to accomplish. For instance, when I was writing graphics applications, I would spend quite a bit of time on focus groups, software design and review before getting started.

      Now that I run Internet startups, I have a very intense need to get something out to the public as quickly as possible. So we start out with a set of mockups or a general idea, then flesh them out in code as we go. We have limited money and limited time. We will most likely not have the right idea out of the gate and focus groups are prone to false information. It is more important to throw something on the wall and see if it sticks. If we are lucky, we can figure out if our idea will get any traction and if not, then do a "pivot" before the money runs out.

      You can't get additional funding rounds without having a working application that shows promise.

    2. Re:I don't do a lot of programming by Anonymous Coward · · Score: 0

      It's all the same today, except that they call the diagrams "UML".

    3. Re:I don't do a lot of programming by phantomfive · · Score: 1

      In any company that does Agile programming, it's rare to have more than a broad overview of the program being created.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:I don't do a lot of programming by Anonymous Coward · · Score: 0

      Yeah, I don't think drunk assembly programming with no initial plan would work out so well.

    5. Re:I don't do a lot of programming by Anonymous Coward · · Score: 0

      With the advent of higher level languages, a lot of coding can be "done correctly" in a few lines, the first time, without diagrams or planning. This is how a lot of people do the majority of the coding: a ten line snippet of Python/Perl/whatever that works grows into a monster library with every added line or function relatively simple (at the time). The compounding, unplanned mess eventually gets left by the competent programmer, who probably (read: because s/he) was not getting paid enough or given sufficient time and resources to do the job correctly. Joe Moron steps in and hacks at the beast, turning it from an unmanageable, functional hack into a marginally functioning nightmare. Then we hear about "brogramming" when what really is going on is poor management and lack of respect for talent inside organizations.

    6. Re:I don't do a lot of programming by Anonymous Coward · · Score: 0

      Yes. Most don't program in assembly. And almost nobody gets the overall flow of the program in advance anymore. They get a vague idea, subject to change seemingly by whim and proxy, but are expected to show progress towards the undefined goal. You need to an add an online multiplayer battle component to the accounting software you've been writing for the last 3 months because the CFO needs it. So they work inefficiently and haphazardly, but by the time the goal is finally set, there is a finished product. Kludged together though it is, with as many design errors that make maintaining it difficult as it has, it's a functioning program, while the perfect system is just starting to be diagrammed. This is just how things work out now.

      I'm exaggerating, of course. But I'd guess most programmers work under conditions way more similar to my scenario than yours.

      Programming microcontrollers is immensely different than programming a PC. If it's not working on a microcontroller, then your code is at fault. If it's not working on a PC, then it could be any one of thousands of causes - device drivers, connection problems, missing DLLs, one slightly different configuration on a single computer, updates, different patches, unrelated software, etc. Microcontrollers are generally specified for a specific, known purpose. PC programs aren't so much - features creep in.

    7. Re:I don't do a lot of programming by drolli · · Score: 1

      I second that. I work in an "agile" team, which is a translation of "power point engineers which are on the team for process reasosns and traditionally would have created a list of re need to get the fundamental principle of the software we create explained again in each sprint and therefore lack any vision over more than 3 Month".

    8. Re:I don't do a lot of programming by Hast · · Score: 1

      I was expecting your post to go "the most interesting programmer in the world" route with that start. Now I'm kind of disappointed. :-)

      Regarding making diagrams and such... I find it depends on what kind of program I'm writing and in what language I'm writing it. If I'm working with low level stuff (like asm, or low level C) then I'd be a lot more inclined to diagram things first with quite a lot of detail. If I'm coding applications for phones I can usually do with making a rough sketch (usually starting with the first UI screens) and work from there quite free form.

      Reuse is something I find I rarely do outright (unless I know that something will be used in multiple places). Modern IDEs make refactoring easy so my experience is that I'm better off doing that work when I need to. (Usually you will still have to adapt the code anyways because your new use will not match perfectly with what the old code did.)

  45. gotta love by Anonymous Coward · · Score: 0

    This shit articles that the hype people love to write, about a trendy subject of the moment....... they suddenly become experts and write no matter the trend topic, and shit is born. Attention whores.

  46. Nope... by dohzer · · Score: 2

    Bad management is killing engineering.
    Next Question.

  47. Not liked by Anonymous Coward · · Score: 0

    I personally didn't like the scene with drinking and programming.. They are looking for great programmers, Ok, I can get with that.. They want someone with personality.. Ok, I can get with that too.. But what if the person doesn't like the taste of beer/alcohol? does that mean they do not want them on the team?? Just sounds dumb. But I guess I just think society is better than that.. and of course.. wrong.

  48. Slashdot: It's like FOX news, but for liberals. by Anonymous Coward · · Score: 0

    Slashdot: It's like FOX news, but for liberals.

  49. Handling management by concealment · · Score: 3, Insightful

    Only to then get a big fat "NO" from management because "it already works fine".

    This is where your department head or intermediate manager needs to raise the following issues:

    * Security
    * Expandability
    * The ability to sell the code to others

    For reasons like the above, I support extending liability to software. If it drops your data, it's an error in the code, and someone should pay. Watch management change their tune after that!

    Also, to the parent comment:

    In the real world, almost everything is a prototype because the demands were too unimportant to be written down in the rush to get something coded that was clickable

    This is why many experienced coders eventually migrate into management. Their job becomes managing their employees' time so that management's demands are met, but also so that behind the scenes, the job can get done right.

  50. Weinberg's observation by DaveAtFraud · · Score: 2

    If builders built houses the way programmers built programs, the first woodpecker to come along would destroy civilization.
    Gerald Weinberg

    Trivia: Gerald Weinberg is the "w" in awk. Sadly, things haven't changed much since back when.

    Cheers,
    Dave

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
    Ben
    1. Re:Weinberg's observation by Anonymous Coward · · Score: 0

      Peter Weinberger is the "w" in awk, not Gerald.

  51. Programming Drunk by jimbolauski · · Score: 1

    What is wrong with programming drunk, at two or three beverages you are considered drunk. On a Friday with a deadline approaching nothing helps calm the nerves like a few beers. I do some masterful work when I have a beer or two in me. It seems like having a beer or three is lumped in with getting frat boy drunk and programming. Shitty code comes from shitty programmers with shitty standards, about the only thing I will do differently when I'm programming while drinking is sneak in a few lewd names for variables (I named the max and min current values c_max and c_min) or add "PC load Letter" and "ID 10 T error" to my error messages.

    --
    Knowledge = Power
    P= W/t
    t=Money
    Money = Work/Knowledge so the less you know the more you make
    1. Re:Programming Drunk by yurtinus · · Score: 2

      I named the max and min current values c_max and c_min

      Oh I love it when you talk dirty

      --
      +1 Disagree
  52. Doesn't matter by Big+Hairy+Ian · · Score: 1

    Have worked in that kind of environment as well as Prince II (waterfall) and Agile/Scrum they all have their strong points. Just let the Team decide which one they want don't force it down their throats. Also I agree with the 1st Post I don't want to hear/read etc the term Brogramming ever again!

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  53. other possible questionable programming paradigms by Anonymous Coward · · Score: 0

    'Hogramming. Amiright fellas?
    Foegramming. Not to be entered into lightly as the stakes are often YOUR LIFE!
    Moegramming. Who let's these Stooges through the doors?

    These jokes write themselves. Stop me. Please.

  54. Be careful what you ask for. by Grand+Facade · · Score: 0

    'Why we should build software like we build houses'

    So the Hispanics are going to take over software development too?

    --
    Rick B.
    1. Re:Be careful what you ask for. by yurtinus · · Score: 1

      If it helps change the sad state of racial equality in the states, then sure.

      --
      +1 Disagree
  55. the wired article was poor journalism by Anonymous Coward · · Score: 0

    The wired story was a rant disguised as news. I find nothing particularly new or useful in it.
    My experiences of professional programming have been entirely different and what he describes.
    I don't work for a game company and I generally don't work with children.
    All the youngsters I've worked with aborted their careers with their bad behavior.
    They don't put up with the stuff he rants about.

  56. Is this forced culture by Ryanrule · · Score: 1

    This terms seems to be being forced upon as to make a space in programming for the useless bschool mbas. FUCK THAT.

  57. worked in both shops by Anonymous Coward · · Score: 0

    Worked for one of the largest IT companies in the world and it was imposble to get anything worthwhile done since it was all process and all tradition. Try to get something changed and people owuld fight you. Was not about the product or ends as much as it was just everyone working within the system.

    Worked for a fast growing start up (30% growth, year after year after year). They are all about the individual hacker. We all shoot from the hip here and those who work the long hour and jump on the latest crazes for unique solutions seem to win. The process is every man for himself. It's imposible to get improvements done here too. People don't want to be told to do it certain ways or to work together.

    Both were extremes and both suck to work for. In both cases on the surface people claim they want to improve the code base, improve the processes, and work together. In reality they just want to keep working the way they have been although for different reasons. The true of the matter is you need a mix of process, wild-west types, civlians, and a good sherrif to regulate it all. Too much leadership, too many who just keep their head down, or too many wild engineers and your product sufffers. Ballance is the key.

  58. Programming and building houses are both simple by Anonymous Coward · · Score: 0

    Both require some understanding of what's going to be done. Both require some experience to perform the actions necessary. Both are subject to failure. Both can be done well...which requires taking the title of this post and erasing it from memory. Building a high quality house is difficult as you need to account for possible additions, room changes, maintenance, etc. The same for software, to do it well you need to account for extension, alteration, and reduction...this is hard to do well. POCs work well to get the $$$ for doing it well. Make it fast, make it pretty, make it AWESOME!

  59. Meter, people, come on... by Anonymous Coward · · Score: 1

    There once was a brogrammer "Mo"
    who coded with his friend from Slo'
    Together they bro-ed, high fives to and fro
    until both of them were let go.

  60. Brogramming by program666 · · Score: 1

    This sounds like a bad thing, thanks god it doesn't fucking exists outside TFA and TFS. Now what does exist is bad a good programmers, just as always.

  61. Re:other possible questionable programming paradig by Anonymous Coward · · Score: 0

    These jokes write themselves. Stop me. Please.

    Stopramming. Don't look further.

  62. Why blame developers? by Anonymous Coward · · Score: 0

    Hey, my first job was in a brogramming environment. This was back in 2003 and it was a little company with young CS majors trying to do their 3 month job university credits, as the Education Ministry passed a "University-Workplaces bridging" directive making every single fucking student work for three months for free as an apprentice in various companies, otherwise you would not have gotten the credits required to publish your thesis. The problem is that the law helped fueling many tiny rubbish companies like that one, trying to sell them in the "widely expanding opensource sector with their e-commerce solutions".

    After that stint I landed a real job for a real company working for the public administration, and no one else was brogramming. They used tons of technical documentation. I had a pile with all the requirements for the user cases I had to develop and to fix too, and I learned two things: first, requirements lie, second requirements lie because clients know jack shit of what they want. And they whine too. And if you catch them contradicting in e-mail instead of fixing your code yesterday, you are soon shown the door. Or rather someone else (not at the first big company but at the second) would go to a guy two desks farther away and make them implement the code that will eventually break the whole flow of application, like you predicted it would showing on the diagram what would happen with a big red marker.

    After these experiences, I never found neither brogrammers nor uml cases, and nobody uses UML diagrams or software engineering practices, because they lead to make the client actually think about their software and their wishes. Behind all of this it's the idea that software development must be a mercenary discipline without the eventual shielding that real gun for hires get from their companies. And nobody in marketing or management wants that because, "what the hell, we have to keep our clients happy and shower them with PhD majors".

    The brogramming environment? It was designed by the management, because they did not want to pay people. The no-uml environments? Software engineering at large failed because it does not scale well within most cultures. If software engineering does not infect your management then nobody will use it. > (Answer: because Office 6 and Windows 95 did not scale and were full of problems and gremlins until Microsoft adopted the engineering practices that they had in place for NT).

    In any case, this is not the first time I've read articles against "developers". This pos of an article was linked by slashdot too: http://www.infoworld.com/d/application-development/6-home-truths-about-rockstar-developers-205098

  63. Don't need to be drunk to have this outcome by tatman · · Score: 1

    I consider those shops where "just get it done", "hurry up", "we don't have time to refactor anything" producing the same results.

    --
    I've always said English was my second language. Had Romeo and Juliet been written in C, I might have understood it.
    1. Re:Don't need to be drunk to have this outcome by jeffc128ca · · Score: 1

      As opposed to the opposite crime where you spend years in requirements and nothing gets done. I worked in one company where the technology group was tasked at building an system to replace an analyst spreadsheet. They said it would take 1 year and a million dollars, it actually took over 5 years and 30 million dollars and the test output still doesn't work. But they passed rigorous technology audits every year with flying colours! They have lots of documentation.

    2. Re:Don't need to be drunk to have this outcome by yurtinus · · Score: 1

      Somebody mod both of these guys up! Tunnel vision is tunnel vision - whether you're focused strictly on what you're coding and to hell with what it needs to do (or whomever needs to maintain it), or you're focused strictly on a process audit and to hell with what you're actually coding - you're not doing anybody any favors.

      --
      +1 Disagree
  64. The analogy works, but... by Anonymous Coward · · Score: 0

    As someone who works in both fields, I think the house-building analogy is pretty good, but the author doesn't understand how houses are built.

        An architect designs for functionality and aesthetics. Stability and safety are neither part of their job nor a significant part of their training. On a big job a structural engineer writes those specs. On a medium-size job the carpenter attempts to interpret the architect's design, while a building inspector has the final say. With smaller jobs or jobs on a budget, there's no place for an engineer or architect. Some building jobs are more aesthetic, others more critical. A bookshelf is not the same challenge as a kitchen. Doesn't the same apply to software? We need to distinguish between best practices and the rules of mere bureaucracy lovers. One doesn't generally hire an architect for a bookshelf.

        So an architect is analgous to a UI designer, not a computer science engineer. Sometimes having a UI designer is important. Sometimes not. But a good house will require that all parties are honest and know what they're doing, whether there are upfront specs or not.

        None of this has anything to do with "testosterone fueled" activity, any more than being supportive is caused by "estrogen poisoning".

  65. moral of the story by slashmydots · · Score: 1

    Facebook was and is designed like crap and it works like crap. Lesson learned.

  66. Let me get this straight by Sloppy · · Score: 1

    I haven't seen the movie in question, but if I understand you correctly, you're saying that if computer-y things worked like they did in the movies, it would be bad.

    Does this mean I should turn off the beep that plays every time a character is displayed? And I should get rid of the "security override" button on my login screens?

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  67. Programs shouldn't NEED to be secure by ka9dgx · · Score: 1

    The job of securing the resources of the computer is that of the Operating System, NOT application programmers. You should NEVER trust code outside of the OS. If you Linux fan boys could get your heads of out your collective ass and see that Linux isn't any better than Windows or Unix in terms of security because of the default permissive environment it's based on, we'd all get over this stupid meme of blaming users, Microsoft, capitalism, etc... and blame ourselves for having not seen the whole picture.

    I hope and pray that Genode gets done enough to use in the next year or two.

    1. Re:Programs shouldn't NEED to be secure by SilverJets · · Score: 1

      Whoa. So much wrong with that statement. You do realize that insecure programs can cause many problems other than just exploiting holes in the OS, right?

      So, yes while there are definitely problems with Linux, Windows, Unix, and Mac OS, programs themselves still need to be secure and application programmers need to be the ones making sure their programs are secure.

    2. Re:Programs shouldn't NEED to be secure by ka9dgx · · Score: 1

      No... if you trust web servers with access to everything, and the web server has a hole, you lose.

      If you trust cat, more, less, or any other tool with access to everything, and it has a hole, you lose.

      Only the kernel of the OS should be trusted, nothing more. Everything else should be run with only the capabilities it requires to do a specific task at run time, and the operating system shouldn't let it do anything else. The OS should NEVER trust an application.

      After all, you don't had your wallet to the clerk at a gas station, and ask them to take what you owe them out of it, do you? You don't need to trust them with your wallet, so you don't. Why do you need to trust all these applications? Because the design of the OS is from a bygone era of simpler days, when you could trust code.

      Go read up on capability based security, the confused deputy problem, and the principle of least privilege. If you're careful, you may change your mind.

    3. Re:Programs shouldn't NEED to be secure by BradleyUffner · · Score: 1

      No... if you trust web servers with access to everything, and the web server has a hole, you lose.

      If you trust cat, more, less, or any other tool with access to everything, and it has a hole, you lose.

      Only the kernel of the OS should be trusted, nothing more. Everything else should be run with only the capabilities it requires to do a specific task at run time, and the operating system shouldn't let it do anything else. The OS should NEVER trust an application.

      After all, you don't had your wallet to the clerk at a gas station, and ask them to take what you owe them out of it, do you? You don't need to trust them with your wallet, so you don't. Why do you need to trust all these applications? Because the design of the OS is from a bygone era of simpler days, when you could trust code.

      Go read up on capability based security, the confused deputy problem, and the principle of least privilege. If you're careful, you may change your mind.

      That isn't going to protect you from everything. You still have to code proactively with security in mind. If I have a website that needs to access a database it may be perfectly locked down so that the program can only touch that database. That doesn't prevent a hacker from finding a bug in my program and exploiting it to get a copy of that database. I'm not talking about things like buffer overflows or other system exploits, I'm talking about simple logic errors. There is nothing the OS can do to protect against things like that.

    4. Re:Programs shouldn't NEED to be secure by zbobet2012 · · Score: 1

      You have apparently never heard of SELinux, to quote wikipedia: "SELinux enforces mandatory access-control policies that confine user programs and system servers to the minimum amount of privilege they require to do their jobs." SELinux basically turns linux into a capabilities based operating system. And its enabled on all major distributions of Linux.

    5. Re:Programs shouldn't NEED to be secure by ka9dgx · · Score: 1

      That isn't going to protect you from everything. You still have to code proactively with security in mind. If I have a website that needs to access a database it may be perfectly locked down so that the program can only touch that database. That doesn't prevent a hacker from finding a bug in my program and exploiting it to get a copy of that database. I'm not talking about things like buffer overflows or other system exploits, I'm talking about simple logic errors. There is nothing the OS can do to protect against things like that.

      True enough, but at least you get to decide what you risk in such a system, instead of the unlimited risk which we all live with now.

    6. Re:Programs shouldn't NEED to be secure by ka9dgx · · Score: 1

      You have apparently never heard of SELinux

      I see how you may have come to that conclusion, but you're wrong. SELinux has you build profiles for applications. It would be like programming your car to only be able to take you to/from work in order to prevent it being stolen. This is why nobody wants to use SELinux.

      Genode offers honest to goodness capabilities on top of a number of microkernels. I'm looking forward to the day I can switch my laptop over to it. I'll not miss all the worry about virii, java bugs, etc.

  68. Testosterone by Bogtha · · Score: 1

    You realise this is the male hormone, just like oestrogen is the female hormone? If it were a woman writing the code, would you be similarly quick to assign blame to her hormones when she fucks up?

    If people code this way, it's not because of testosterone, it's not because they are men ruled by their hormones, it's because they are sloppy coders.

    --
    Bogtha Bogtha Bogtha
    1. Re:Testosterone by yurtinus · · Score: 1

      Shut up, girly man!

      --
      +1 Disagree
  69. I think there's room for both by neurojab · · Score: 1

    Though I hate the term "brogramming" and think it's completely stupid to try to program while drunk, I believe there is room for what used to be called the "heroic" model of software development in certain circumstances. The fact is that the technology world is fast paced, and often the product that becomes dominant (makes the most money) is not the one that's the most well engineered. It is the one that works well enough, has features people like, and makes it to the market first. A few very good coders with good domain knowledge and broad skills working heads down on such a project can absolutely run circles around (iterate faster) a large engineering team of siloed engineers focusing on requirements and architecture.

    That is not to say that proper software engineering is dead... quite the opposite. In most industries and once a product reaches a certain size - quality, security, etc. are expected. You need a combination of good engineers and the right processes in place to make that happen. You cannot substitute processes for good engineers. As for waterfall vs agile... neither is perfect.... but Agile is better when requirements tend to change. It's bad to be dogmatic about either one though.

    1. Re:I think there's room for both by rocket+rancher · · Score: 1

      Though I hate the term "brogramming" and think it's completely stupid to try to program while drunk, I believe there is room for what used to be called the "heroic" model of software development in certain circumstances. The fact is that the technology world is fast paced, and often the product that becomes dominant (makes the most money) is not the one that's the most well engineered. It is the one that works well enough, has features people like, and makes it to the market first. A few very good coders with good domain knowledge and broad skills working heads down on such a project can absolutely run circles around (iterate faster) a large engineering team of siloed engineers focusing on requirements and architecture.

      That is not to say that proper software engineering is dead... quite the opposite. In most industries and once a product reaches a certain size - quality, security, etc. are expected. You need a combination of good engineers and the right processes in place to make that happen. You cannot substitute processes for good engineers. As for waterfall vs agile... neither is perfect.... but Agile is better when requirements tend to change. It's bad to be dogmatic about either one though.

      this. security is a system-level concept, not app-level. apps are insecure because the system allows them to be insecure, period. When it comes to trying to make an app secure when the underlying system may not be, you are *at best* reinventing the wheel, at worst you are tilting at windmills. When it comes to app engineering, focusing on app security is like trying to improve medical care by teaching ambulance drivers how to drive faster.

  70. Conversely by Translation+Error · · Score: 2

    "If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." -Gerald Weinberg

    --
    When someone says, "Any fool can see ..." they're usually exactly right.
  71. Just a movie by Hoi+Polloi · · Score: 1

    Does anyone actually work like this in real life? Any business that has survived that is.

    --
    It is by the juice of the coffee bean that thoughts acquire speed, the teeth acquire stains. The stains become a warning
  72. the real reason houses don't collapse.... by tilante · · Score: 2

    Building software like houses sounds nice, but it overlooks the real reasons that houses don't collapse: (1) How to build them is well-known. We've been doing it for literally thousands of years. (2) The people who build houses have to be licensed. This helps ensure that they know how to build them properly. (3) Mandatory house inspections mean that if someone builds a house without following accepted standards, they'll have to prove that it's actually safe to occupy.

    Most importantly, though, when a house collapses, it's visible. The people living in it complain loudly. The neighbors see it and talk about it. It makes the news. And then, people don't want to hire whoever built that house. They get investigated. There's a good chance they lose their license. That's the big difference - our culture has come to expect broken software. "It's not a bug, it's a feature." "Oh, there's a workaround for that." "Yeah, that doesn't work in the version." "Oh, that crashes all the time. Just restart it."

    If we treated broken software like broken houses - with astonishment, complaints, investigations, and penalties - software developers would do better. They'd have to. Of course, the reason we don't is that the consequences of broken software generally aren't nearly as serious. Sometimes, they are - but generally not.

    1. Re:the real reason houses don't collapse.... by Lumpy · · Score: 1

      You are wrong. Builders that screw up and houses fail, they dont go out of business. they just reform under a new LLC. Hell one of the builders around here blatantly stole from people and he is STILL in business, under a new name. The only people that know the crooks are the ones that work with them. Homeowners are blind sheep that have no clue because they typically only build one home in their lifetime.

      --
      Do not look at laser with remaining good eye.
    2. Re:the real reason houses don't collapse.... by Hast · · Score: 1

      Yes and no.

      I'd point out that modern computer programs are often extremely complicated when compared to other things. It's less like building a house as it is building an entire city at once. It's also worth pointing out that building houses usually has a lot more stable requirements and environments (the laws of physics), software is changed all the time.

      And the final nail in the coffin for me is that we have tried building software like "houses" or other large scale engineering projects. They tend to fail. (See the waterfall method, or "Mythical man month".) Assuming that software engineers are not simply less intelligent than other forms of engineers I think it's safe to conclude that the same methods may not work.

  73. We should *not* build a program like a house by zbobet2012 · · Score: 1

    The reason you spend so much time placing requirements on a house is because a physical thing is hard to change, modify or move. A program is not a physical thing, a new one is a compile or less away. It is also significantly more complex. Using architecture as an example of how we should build programs is terrible because they are completely different things. This also ignores the fact that he is suggesting fixing cost overruns and quality issues of one industry by following the practices of an industry that is infamous for cost overruns and and quality issues.

  74. Yes and no by EmperorOfCanada · · Score: 2

    "Brogramming" (horrible term) and highly engineered programming are both great solutions to different sorts of problems. The key in choosing which is how well mapped out is your destination. If you are building a banking system where customers will engage in known transactions resulting in a known data stored in the database then the backend of this system obviously demands a very carefully engineered solution. But for that same solution the front end should be pretty damn freeform. People should try a bit of this and a bit of that feeling their way to an awesome UI. The back end engineering will dictate what data needs to come in from the UI and what data needs to go out but a great UI comes from a combination of requirements, gut feelings, fiddling, artistic balance, etc.

    Then after the UI is ready for polishing you might go back to a more engineering approach and try AB testing where you watch the speed at which a user uses the system along with other measures such as number of mistakes.

    Personally I find that people who hate the free form programing tend to be those managers who just don't trust their employees. They want to lay everything out in a design document that then locks everyone into a my-way-or-the-highway approach. This is a great way to get your best programmers to find another company to work for. Also my best programming has come from those times that I went down 5 dead ends and the 6th was really cool. But the 6th naturally evolved from what I learned in the first 5. There is no way that it would have ever have been conceived in a design phase.

    There are many things that can cause inertia that are not directly related to the code. A simple example would be unit testing. (I love unit testing) but if you are going to completely redo your system then much of your unit testing goes out the door. Your carefully written documentation is garbage. Your design documents are all garbage, and any work you have done in planning version 2 or more is trashed. This makes drastic alterations much more costly than just the programming. But the reality is that you should never produce a bad product because the paperwork got in the way of switching it to a good or great product. This is sad because often if all that needs alteration is the UI where a well engineered code base should have fairly good UI abstraction and thus a new UI should involve little fundamental/programming work.

    Really which is used and when it is used comes down to great managers. They will focus the freeform programming on organically finding cool ideas while not chasing rainbows and at the same time making sure that the fundamentals are well engineered. Within any team of programmers there are usually those who prefer one or the other anyway.

  75. Re:Weinberg's observation:*Peter* Weinberg did AWK by Anonymous Coward · · Score: 0

    Wrong Weinberg: *Peter* Weinberg did AWK. (See Wikipedia.) *Gerald* Weinberg is an IT consultant, not a hardcore programmer type.

  76. Correction: Peter *Weinberger* (I left off "-er".) by Anonymous Coward · · Score: 0

    Correction: Peter *Weinberger* (I left off "-er".)

  77. Wired needs better writers.... by Lumpy · · Score: 1

    "'Why we should build software like we build houses' "

    Oh good god, if we built software the way houses are built than nothing would work. Houses start with a plan, but then fall apart right after that. you hire the cheapest contractor possible, they cut corners by buying B grade lumber and fudge things here and there. The architect NEVER comes back to make sure that the house is being built right. The plans are rarely followed. Electrician and HVAC just makes it work by cutting corners where they can.

    In the end more attention is paid to the paint, carpet and countertops than the structure and infrastructure of the home. So it looks pretty, but is in fact a ball of hidden mistakes and covered up changes to cut corners.

    Yeah, Wired needs to stop trying to be the Rolling Stone.

    --
    Do not look at laser with remaining good eye.
  78. Peter Weinberger is the W in awk by Anonymous Coward · · Score: 0

    not Gerald Weinberg. Two completely different people.

  79. maybe you missed the point by Anonymous Coward · · Score: 0

    you have the specs, but if you want exceptional code, at some point, you can only get that routine in your mind when youe drunk.
    I have done my best assembly routines and recursions when relaxed, with a few drinks.

    live long and code

  80. Construction, Bad Metaphors, and the "Everyman". by Anonymous Coward · · Score: 0

    "Editor's note: With widespread access to free, online coding courses and tools, “coding” has become the new writing – the everyman’s skill."

    I really want this "anyone can do anything" cancerous ideology to die, as if availability is the cure to all that ails us. Quite frankly, writing is not an "everyman's skill" either, all you have to do to check the validity of that statement is to look at any comment thread. We sure don't see all those folks making a living as journalists, novelists and the like. Why some within the software industry promote "coding" literacy amongst the general public is absolutely beyond me. Doctors, lawyers, engineers don't espouse this, why do we?

    I get where Lamport is going. What I don't like is the analogy (and others like "manufacturing" that get applied to software development, management of said projects, etc.) as, like all analogies, it dumbs everything down.

    From an MBA / CEO perspective, if a) coding is an everyman skill and b) the construction of software is just like building a house (all you need is a blueprint), then it follows that anyone can build it. Sure, companies that follow this will fail, but will they know why? I'm pretty damn sure if your a hospital administrator who hired a doctor whose education amounts to "I stayed a Holiday Inn Express last night" and her patient dies, you have some sort of clue as to why.

    Do we fully understand what we do when we dumb down our occupation with statements and metaphors like those above?

    Don't even get me started on what Massive Online Courses do to us and how they devalue knowledge...

  81. Different than cowboy coding by tooyoung · · Score: 1

    Brogramming is very different from cowboy coding. "Brogrammer" is a pejorative used to label developers that threaten one's ego by coming off as cool and social. In a development environment, many people aren't as focused on being "cool", so the term is necessary to raise yourself above those who do focus on that.

  82. programming as art by Anonymous Coward · · Score: 0

    /. had a post several weeks ago associating the creative programmer with 'foreveralone' syndrome. I argued that the same could be said of artists (who can't maintain a health relationship with a significant other), and to some extent, it's a problem with the ego and creativity.

    Abusing drugs and alcohol can be fun, but can only take you so far, just with artists or performers. You can get that creative "rush" while intoxicated, but as you professionalize, it helps you run the marathon of life. Most successful musicians and visual artists finally clamped down on their vices and disciplined themselves to work and created balance with fun. Those who keep going down the path of the so-called 'brogramming' is guaranteed to burn out. Just as with the other creative types.

  83. So, status quo? by DragonWriter · · Score: 1

    Oh good god, if we built software the way houses are built than nothing would work. Houses start with a plan, but then fall apart right after that. you hire the cheapest contractor possible, they cut corners by buying B grade lumber and fudge things here and there. The architect NEVER comes back to make sure that the house is being built right. The plans are rarely followed. Electrician and HVAC just makes it work by cutting corners where they can.

    In the end more attention is paid to the paint, carpet and countertops than the structure and infrastructure of the home. So it looks pretty, but is in fact a ball of hidden mistakes and covered up changes to cut corners.

    AFAICT, that's a pretty spot-on analogy for how many software projects (particularly, large, contract-built business systems) are built now.

  84. Specs are really expensive by Anonymous Coward · · Score: 0

    I currently work in a mission-critical environment. It's my first spec house and the cost of the software developed is easily 10-100x the previous places. The true problem with specs is that if you spend enough time developing them to be thorough, you've basically written the system in English (or whatever language you are working in). Human languages are incredibly vague and nuanced leading to arbitrary rules on key words and sentence structure. Then of course, if you create a spec, you probably create a design doc. Then the several customer/management driven changes come in and you now must rev one or more specs, a design document, the code and the tests. Given that time is finite, you end up having less time to focus on coding and testing.

    This said, you shouldn't just hack a solution. If the problem is big enough you should spend time thinking about it and thinking about the design. Try a few iterations. Most importantly, find good devs. 1 good dev = 10-100 average devs. 1 bad dev = negative impact. Oh, and if you want to really make your software rock, employ a few more developers than you need. Find a few that are talented and proactive and you won't regret it. But as for specs, only write what you must and be happy with vague notions that are setup to serve as a guide. (I.e., "This system should support ~1,000 concurrent users" vs. "This system should support ~100,000 concurrent users")

  85. F***ingham Palace by Anonymous Coward · · Score: 0

    I prefer "hogramming" personally.

    Hog ramming?! Rather you than me, mate!

    1. Re:F***ingham Palace by Hognoxious · · Score: 1

      Ahem.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  86. I was going to write an intelligent comment.. by sdsucks · · Score: 1

    But I realized this whole story was completely fucking stupid and not worth putting any thought into.

    Seriously, "brogramming"? Just fuck off.

  87. Hopefully the same as Hollywood's war movies! by Anonymous Coward · · Score: 0

    I hope this Hollywood version of programming is as laughable as their war movies.

  88. ...is dumb luck. by Overzeetop · · Score: 1

    Builders may be able to build them, but I can guarantee you they haven't got a fucking clue what actually keeps them from falling down. Interesting, most architects don't know either. I suspect this is also the case when considering heating/cooling, and electrifying them as well, but those are not my specialty.

    If you coded software like we build houses, you would never make an external call and every single routine would be accessed using GOTO.

    --
    Is it just my observation, or are there way too many stupid people in the world?
  89. queer coding by Anonymous Coward · · Score: 0

    Just because everyone doesn't code like a pussy like yourself doesn't mean they aren't as good as you.

  90. Wish Lamport had more experience by Anonymous Coward · · Score: 0

    Lamport is a sharp guy, no question about it.

    Unfortunately he, er, doesn't sound like he's worked in construction. In some/many construction sites. Blueprints are liable to simply not work, the roofers are hungover, and the sheetrockers, well, they got As on their drug tests, if you know what I mean. Change requests from the architecture come in asking for some fruity recolorization all the time, along with whining about how they really didn't want the wotsit in the middle of the room. The engineer is trying to make the architect come down to reality, while the actual workers think both are on poofy-ooffy clouds of unrealism and stupid.

    Software 'engineering' is already like house construction. And that ain't a compliment to either.

  91. Because Hollywood by eyenot · · Score: 1

    I'm SO glad for allll those people who learned everything they know about how to make computers work from watching movies and reading articles like these. Yeah, I agree, IT'S FUCKING DUMB.

    --
    "Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
  92. Brogramming is for junior level by caywen · · Score: 1

    After several years, you can become a true Broftware Engineer. Or, if you're more customer oriented, a Senior Brogram Manager.

  93. wiating for estrogen powered codes by Anonymous Coward · · Score: 0

    still awaiting for sisgrammed estrogen and pink cola powered kinky codes. none available.

  94. Of course the answer is NO by chrismcb · · Score: 1

    "brogramming" will kill programming, the same way DUI's will kill Nascar.

  95. Term For...? by Anonymous Coward · · Score: 0

    Can someone make up a term for one who constantly searches google for the best solution? That's what I am.