Is 'Brogramming' Killing Requirements Engineering? 432
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 Network — spells 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!"
Prototyping (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"
Re:Brogramming??? (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).
Taking it a tad too seriously. (Score:3, Interesting)
Re:he doesn't know the history (Score:5, Interesting)
Take a look at his biography [veracode.com]. His experience starts mid-90s in large corporations. Maybe he thinks computing started then?
Re:Brogramming??? (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.