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

34 of 432 comments (clear)

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

    3. 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.
    4. Re:Brogramming??? by Anonymous Coward · · Score: 5, Funny

      If houses are code, I think I found Perl.

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

    6. 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.
    7. 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!

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

    9. 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
    10. Re:Brogramming??? by NotBorg · · Score: 4, Funny

      Stay out of this, plumber!

      --
      I want this account deleted.
    11. 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
    12. 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.
    13. 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.

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

  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.

  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.

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

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

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

  9. 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.
  10. 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.
  11. 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
  12. 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
  13. 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.

  14. 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?
  15. 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!
  16. 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.

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