Forgot your password?
typodupeerror
Programming

Symbolic Violence Beats Lava Lamps All To Pieces 128

cdance writes "Traditional Lava Lamps, and of course email, are the tools of choice to notify your dev team that the build in your continuous integration system is broken. However, lava lamps, just like pink curtains and shag pile, don't really fit into the culture of many modern development teams. There is now a solution. Retaliation is a new Jenkins CI build monitor that automatically coordinates a foam missile counter-attack against the developer who breaks the build. It does this by playing a pre-programmed control sequence to a USB Foam Missile Launcher to target the offending code monkey."
This discussion has been archived. No new comments can be posted.

Symbolic Violence Beats Lava Lamps All To Pieces

Comments Filter:
  • The 90's called (Score:5, Insightful)

    by Anonymous Coward on Monday August 22, 2011 @05:17PM (#37171804)

    They want their dot.com bubble era development culture back.

    • by Anonymous Coward on Monday August 22, 2011 @05:18PM (#37171818)

      Sigh. I hate you because it's true.

    • by Kid Zero ( 4866 ) on Monday August 22, 2011 @05:20PM (#37171854) Homepage Journal

      I'll glady donate someone else's Kingdom for a +1 there. Bravo.

    • by Co0Ps ( 1539395 ) on Monday August 22, 2011 @05:46PM (#37172180)
      You didn't warn them?? YOU MONSTER!
    • Re:The 90's called (Score:4, Insightful)

      by plover ( 150551 ) * on Monday August 22, 2011 @05:53PM (#37172256) Homepage Journal

      They want their dot.com bubble era development culture back.

      No, that was me calling. I wanted to go back to the 90s era development culture, as we seemed to get a lot more done back then.

      • Re:The 90's called (Score:4, Insightful)

        by Anonymous Coward on Monday August 22, 2011 @06:21PM (#37172534)

        Let me guess, you were born sometime after 1990, weren't you?

        In the 1990s and the very early 2000s, this kind of behavior never happened at places making real profit. Why? Because developers at a place like that are too fucking busy making money. They are also talented enough to not fuck up constantly, and don't need goddamn build failure lights or co-workers hitting them in the genitals with foam sports equipment.

        We only ever saw this nonsense at places made up of fools. You know, the sorts of places where they hired people with useless Sociology degrees to be programmers because they once turned on a Commodore 64 in their youth. When you put enough of these idiots together, especially doing work they have absolutely no clue how to do, and you end up with people throwing beach balls around the office rather than getting work done and making money. Oddly enough, these places end up going under! But the work environment was so much fun, the former employees would say. For the six months it lasted before the funding ran out, it was a great time!

        The same thing is happening today. The Web 2.0 bubble is about to burst. We've got many Ruby on Rails "developers" and NoSQL "DBAs" all over the place working on unprofitable applications. They often waste time playing cubicle games instead of working. When the bubble bursts, they'll be out on their asses. Nobody will touch them, thanks to the terrible reputation that Rails and NoSQL are getting these days.

      • by Anonymous Coward on Monday August 22, 2011 @06:32PM (#37172636)

        Yeah money and taking care of your employees ... good times... good times...

    • by Anonymous Coward on Monday August 22, 2011 @06:09PM (#37172406)
      Tell that to Google, Facebook, et al.

      People want life to suck a little less... is that really so much to ask?
    • by Anonymous Coward on Monday August 22, 2011 @06:36PM (#37172672)

      Does this mean maliciously change production code?

      Does it mean I commit a change that fails unit tests and that someone merges to the master branch?

      Does it mean I push changes that prevent compilation repository?

      Seriously, if build breaking commits are bad enough that you need to consider ways to stop them, and are small fry enough for this to sound cool....change your shit up so that build breaking commits are not blockers and never going to make it to production.

      The lava lamp thing's pretty cool though.

      • by slim ( 1652 ) <john@@@hartnup...net> on Tuesday August 23, 2011 @05:56AM (#37176036) Homepage

        Yeah, it means something gets committed to the master branch, which either prevents compilation, breaks a unit test, or breaks an integration test.

        It's serious because the rest of your team is relying on that master branch being good, so they can test their own changes against it.

        In theory it should almost never happen, for the reasons you're hinting at; you don't merge into the branch until you've run unit tests elsewhere.

        In practice, real life gets in the way. Your unit tests weren't complete, or made some dud assumption about an interface, or whatever. CI builds your code, runs tests, alerts everyone that something's broken. You fix it. Everything's back on track.

        The lava lamps / etc. are just a way to get some (hopefully good natured) taboo around merging code that breaks the build. It should motivate developers to be more careful with their tests before committing/merging.

    • How about the 201x era where we throw molten lead?

  • by Anonymous Coward on Monday August 22, 2011 @05:19PM (#37171836)

    My job uses approximately the same tactics, although instead of a python script we have Dave the Project Manager, and instead of a foam missile launcher, Dave has a baseball bat. You see, unlike traditional product managers who have a background in, well, project management, Dave has a background in being a large and terrifying individual. So, our code builds every damn time.

  • by smoothnorman ( 1670542 ) on Monday August 22, 2011 @05:19PM (#37171844)
    Is this posting a sign that Slashdot has been hacked? Or perhaps it is sending apparently random information to sleeper cells? Letsee... if i try every third word... nope. hmh.
    • by Anonymous Coward on Monday August 22, 2011 @05:33PM (#37172026)

      Read it a second time, and it makes more sense.

      • by smoothnorman ( 1670542 ) on Monday August 22, 2011 @05:38PM (#37172090)
        I've now read it 3.7 times and it still makes no sense. I think the key to understanding would be either to doggedly follow the links (which somehow i feel it's a fail if i have to follow the links to begin to understand a posting of "News") or if i was in on the necessary "darmok/his arms wide" patois. Anyway, i'm not the target customer, apparently. So... nothing to see here move along...
        • by Samantha Wright ( 1324923 ) on Monday August 22, 2011 @06:27PM (#37172586) Homepage Journal

          In larger software development environments, it is common for many contributing programmers to work on a single copy of the project's source code at the same time (typically through a mechanism called source control.) As a matter of etiquette, developers are expected to test their code before contributing it back to the master copy. If the master copy fails to compile, typically due to an error in coding, then it is said that the build has been broken, and that the developer who contributed the bad code broke the build.

          An article posted on Slashdot in 2004 suggested that software teams keep a red lava lamp in their server room, and have it turn on whenever a broken build is discovered. The reason for picking a lava lamp in particular is because it can take several minutes for the wax to warm up enough for the bubbles to reach the top of the oil: the article's authors proposed using this delay as a period in which the build could be fixed without inspiring a greater breach of decorum, and hence invoking the ire of the rest of the development team.

          This summary, by contrast, is a slashvertisement for a different solution to the same problem, wherein foam projectiles are launched at the offending developer. It attempts to conceal its absurd premises by referencing a past incident in which a similar idea was suggested, thereby hoping to capitalise on an in-joke as a means of creating something more acceptable as a cultural object of Slashdot's community; however, the submitter most likely just did a search for something he or she could exploit to provide padding.

          That all being said, you should probably get used to being expected to read embedded links in order to garner a cohesive understanding of the relevant context for something written on the Web. Most people don't have the communication skills necessary to clearly and accurately introduce context in a compact space, and in lieu of this ability, it is highly preferable to have a reference to the original subject matter (or at least a more primary resource) than to be left with mere hearsay or no context whatsoever. This is one of the greatest ways the Internet has changed how people communicate, and while it has its annoying side effects at times (especially dead links) it does more good than harm.

          • by smoothnorman ( 1670542 ) on Monday August 22, 2011 @06:42PM (#37172722)
            If i had moderation points, you would get them, Thank you for the highly cogent, and link-less, summary ((s'funny, i used to have moderation points too where did they go?))
          • by Anonymous Coward on Monday August 22, 2011 @07:13PM (#37173032)
            I love you, and want you to have my children.

            Seriously, take them. They're nothing but a drain on my resources.

            You can even re-name them if you like.
          • by Anonymous Coward on Monday August 22, 2011 @07:13PM (#37173034)
            Your writing style is pretty good for the most part, but you should try to not split infinitives.
            • I encourage you not to split infinitives, as well, even if Microsoft insists that a single word is acceptable. However, I think that particular piece of linguistic style is best considered deprecated at this point. Personally, I find that placing adverbs (or adverbial clauses) after the "to" helps tie the structure together, and that not doing so often feel stilted; though I suppose, in longer constructs, it can complicate easy comprehension by leaving the reader hanging and potentially creating the dreaded "garden path" sentence. Such is life.
            • by wilgibson ( 933961 ) on Tuesday August 23, 2011 @12:23AM (#37174722)

              you should try to not split infinitives.

              AUX -> { {(T)(M)(to)} (perf)(prog)(pass)}

              An auxilliary can be a tense, modal, or to along with the combinations of the perfect, progressive, passive aspects. This rule comes from The Grammar Book (which I have sitting on my desk because I am a TESOL instructor), chapter 31, page 645. The use of to to make the infinitive in English is accepted by most linguists to act as any other auxilliary and conform to the rules of how adverbials interact with auxilliaries.

              The idea of not splitting infinitives was concieved in the 19th century when linguist tried to push Latin grammar onto the English language with the Latin infinitive being an inflection of the verb rather than an aspect of the verb as it has been since English pushed towards the analytic side of the language spectrum.

          • by YenTheFirst ( 1056960 ) on Tuesday August 23, 2011 @12:17AM (#37174692) Journal

            I was under the impression that the term 'slashvertisement' referred to:

            1. a slashdot story
            2. linking to a singular post from a company or interest group
            3. which is written primarily to be persuasive on a certain matter
            4. especially for the sale of product or services from that company/interest group

            Alternatively, it could refer to a vague, sensational story, meant to drive traffic to a blog.

            In either case, the story was submitted by the owner of the landing page, with intent of some sort of personal gain

            the link points to a free, open-source project(*), which has a parody of advertisement encouraging its use. The only product one would need to purchase, if convinced either by said 'advertisement' or the slashdot posting, is a certain toy rocket-launcher, unassociated with the company behind the FOSS project.

            how is this a slashvertisement?

            (*) All the source code is freely available online, there is no indication of desire to charge for or limit use of the code, and it's built as an extension to the FOSS project 'Jenkins'. That said, no license is explicitly given. I could be incorrect about the project being FOSS

            • It's Slashvertisement Lite, wherein the primary developer (Chris Dance, I believe) of an open source project tries to conceal the fact that he or she is trying to get attention for their work. This usage has cropped up once or twice before. This is comparable to many modern television advertisements, which have a dreadfully low chance of actually getting you to buy anything, and are much more focused on playing the longer, deeper game of making you remember the name. (Which, in this case, is PaperCut [papercut.com].) It's there, just not quite as obvious.
            • by cdance ( 516169 ) on Wednesday August 24, 2011 @09:12AM (#37190190)

              (*) All the source code is freely available online, there is no indication of desire to charge for or limit use of the code, and it's built as an extension to the FOSS project 'Jenkins'. That said, no license is explicitly given. I could be incorrect about the project being FOSS

              The code is under the Apache license (personal favourite :-)

          • by Ocker3 ( 1232550 ) on Tuesday August 23, 2011 @01:03AM (#37174902)
            This. After watching the video, I think they need to use a larger turret, ideally one linked up to a speaker which plays "You Bastard" each time it fires.
          • by Aighearach ( 97333 ) on Tuesday August 23, 2011 @03:17AM (#37175476)

            And even tiny shops, too!

            I don't expect them to read any links, I just expect them to continually integrate nerd culture.

            I don't like the nerf missiles, spilled coffee is the last thing a broken build needs. I suggest disco lights.

          • by cdance ( 516169 ) on Wednesday August 24, 2011 @09:05AM (#37190122)
            Fantastic analysis. Hyperlinks were invented for a reason! As the poster, I like this response as it makes me look really smart and contriving. The reality is however that the whole project is motivated out of humor . Breaking the build can be quite negative and we've found that humor is a great way to brake the ice when these things happy. Slashdot is a great way to spend the word and bring a few more smiles to the faces of developers everywhere. (Reading the comments of course is also a good way to bring a few smiles :-)
        • And before I forget: Sokath, his eyes uncovered.
        • Darmok and Jalad at Tanagra!

  • by Animats ( 122034 ) on Monday August 22, 2011 @05:21PM (#37171876) Homepage

    If you have a giant build, your design is not modular enough. Above some size, it's time to go to multiple intercommunicating programs.

  • by dotbot ( 2030980 ) on Monday August 22, 2011 @05:30PM (#37171988)
    We'd all have to wear plastic safety specs too...
  • by OzPeter ( 195038 ) on Monday August 22, 2011 @05:35PM (#37172062)
    Because I find things like this to be juvenile.
    • by Anonymous Coward on Monday August 22, 2011 @05:43PM (#37172150)

      a sense of humor?

    • by Tasha26 ( 1613349 ) on Monday August 22, 2011 @09:10PM (#37173800) Homepage
      My thoughts exactly. Am sorry but what is that suppose to mean "a foam missile counter-attack?!" I remember friends picking PhD title by using a simple Combination function on the set {statistical, genetic algorithm, bayesian, theoretical, neural network, logic, reasoning, inductive, design, probabilistic, integrating, non-linear, optimization ...} Is life totally meaningless now?
      • by slim ( 1652 ) <john@@@hartnup...net> on Tuesday August 23, 2011 @06:50AM (#37176254) Homepage

        Am sorry but what is that suppose to mean "a foam missile counter-attack?!"

        Er, what's difficult about that?

        You know what foam is. You know what a missile is. You can probably imagine what a "foam missile" is, and if you've been to a toy shop in the last 20 years, you've seen one. So that bit's easy.

        Now then. "Counter-attack". Is that the difficult bit? The commit that broke the build is the "attack". Launching the foam missiles at the culprit is the "counter-attack".

        I remember friends picking PhD title by using a simple Combination function on the set {statistical, genetic algorithm, bayesian, theoretical, neural network, logic, reasoning, inductive, design, probabilistic, integrating, non-linear, optimization ...} Is life totally meaningless now?

        All those words have fairly precise meanings. I do hope your friends failed their PhD if their thesis didn't match the words in the title.

    • by PintoPiman ( 648009 ) on Tuesday August 23, 2011 @02:53PM (#37182396)

      Because I find things like this to be juvenile.

      I find the attitude that being a grown-up has to be boring... juvenile.

  • by Anonymous Coward on Monday August 22, 2011 @05:35PM (#37172064)

    Did I just get laid?

  • by Anonymous Coward on Monday August 22, 2011 @05:42PM (#37172132)
    Balmer set up a similar system at MS when I worked there. Only every time you broke the build, you had to take a drink. I'm posting anonymously just in case this was in the NDA...
  • by Anonymous Coward on Monday August 22, 2011 @05:44PM (#37172162)

    Arnie says 'Girlie men'

  • by Anonymous Coward on Monday August 22, 2011 @05:46PM (#37172190)

    ..most people will break the build to play with the toy. ..some people would adjust scm credentials and make it look like someone else did it and got hit:)

  • Since everybody in the group already has a networked computer, a general-purpose system capable of inflicting considerable suffering, why not take advantage of that?

    A few days of being stuck using the "Penal Image"(WinME, Incredimail, Bonzibuddy, 800x600), they'll be begging for a chance to redeem themselves.
  • Demeaning != Fun (Score:3, Insightful)

    by Anonymous Coward on Monday August 22, 2011 @06:00PM (#37172322)

    That launcher just looks like another small way to degrade people.

    If I worked in an office that did that, I would ensure the launcher kept on having mysterious accidents that rendered it inoperable. Like somehow falling 10 stories out of an open window.

  • Sigh (Score:2, Insightful)

    by Anonymous Coward on Monday August 22, 2011 @06:04PM (#37172366)

    So we've got two different ways of handling errors here. Say I made a serious mistake like breaking the build that 1000 people have to work on. Company A looks into how the mistake happened and exactly what needs to be done to avoid the mistake happening again, be that changing the procedure I used (e.g. running tests), training of me and coworkers to make sure we know to follow the procedure or automating the failed step so that we can't do it wrong (e.g. have the build server run tests before checking something in). Perhaps something can be done to mitigate the seriousness if such a mistake happens in the future, such as an automatic roll-back on the server. Company B's solution, on the other hand, is to humiliate me so spectacularly that I'll try my best not to cause a problem again.
     
      What'll really happen is that I'll try my best to ditch company B in favor of a professional setup like company A. So company B ends up with the people who can't get to a better place. Don't manage errors by humiliating whomever you think is responsible, have the whole company learn from the error instead. If one guy could make a mistake, we could ALL make that mistake on a bad day. Blaming one guy doesn't solve that, learning and preventing the mistake from happening again does.

    • by Anonymous Coward on Monday August 22, 2011 @06:25PM (#37172572)

      no all learning in the work will make lazy people think before committing a broken solution. also, mistake do happens, no training in the world will help me if I forgot to attach a file to the changeset. and no course ever will allow me to avoid breaking the build if the system is badly configured, like having a change spanning on multiple modules on different scm.

      the morale is: sometimes the solution is just to fire bad developers.

      • by Anonymous Coward on Monday August 22, 2011 @06:59PM (#37172904)

        You're clearly on crack, because over here in the CS department (where we're on weed instead), it's perfectly obvious that the build-breakage of any commit is deterministic, so it's possible to check all commits before permitting them, and then if you forget to attach a file, the check will fail and the commit will be rejected.

        A naive approach would be to run a local build, but that's silly, since we don't care about the compiler output, merely the syntactic (which is a solved problem we won't treat here) and relational correctness needed to guarantee compiler success. With this in mind, a more enlightened approach is to parse each file and generate a dependency index for each file, preferably in XML, allowing us to mathematically prove that the build is broken or not broken.

      • by dzfoo ( 772245 ) on Tuesday August 23, 2011 @05:00AM (#37175836)

        >> no training in the world will help me if I forgot to attach a file to the changeset. and no course ever will allow me to avoid breaking the build if the system is badly configured, like having a change spanning on multiple modules on different scm.

        I'll go further and say that no toy missile will ever prevent you from doing something stupid.

        You just like being hit in the balls with foam in a public manner, do you?

                  -dZ.

    • by toxonix ( 1793960 ) on Tuesday August 23, 2011 @02:06PM (#37181536)
      You must be one of those 'process' people. Rather than making someone feel slightly ashamed for a short period, you'd rather have a committee meet for 4 weeks offsite in order to make recommendations to management about how to develop software. See, in the real world before software was invented, breaking the build meant everyone in the factory stopped working until management found the culprit, who was swiftly beaten and dumped off a pier. Everyone got back to work and nobody made any little mistakes that hindered the other workers again, unless that mistake involved losing a limb dramatically.
  • by Anonymous Coward on Monday August 22, 2011 @06:05PM (#37172370)

    Is it just me or did the article actually mean something? Lava lamps, dev team, missile counter-attack, USB Foam Missile, code monkey... what the fuck am I reading?

  • Comment removed (Score:5, Insightful)

    by account_deleted ( 4530225 ) on Monday August 22, 2011 @06:15PM (#37172478)
    Comment removed based on user account deletion
  • by NicknamesAreStupid ( 1040118 ) on Monday August 22, 2011 @06:55PM (#37172854)
    This solution clearly was impossible in the "good old days." First of all, programmers once had offices with four walls and a real door. Back then, the favorite correctional action was a skunk in the desk's file drawer (yes, they had real desks, too!). Even during the era of cubicles, it would have been impractical to fire over the partitions blindly. Lastly, robotic armaments have come along way toward making corrective actions more selectively punitive.

    However, this seems like a Disney version of management. Instead of foam missiles, wiring their chairs with remote controlled tasers would be far more effective. It might even become the basis for a new form of Agile programming. You will laugh at the suggestion until you read that it has been standard practice in China and India.
  • by Anonymous Coward on Monday August 22, 2011 @06:59PM (#37172912)
    Unless you work for a place like SparkFun or ThinkGeek this sort of thing just isn't acceptable in today's corporate culture and frankly I'm not exactly weeping about it, it got annoying quickly and untalented people soon became untalented and unproductive. I'm not here to play with toys, I'm here to do a job that I get paid to do so STFU and stop shooting foam crap at me because I'm armed with administrator privileges and an open shell and I'm not afraid to fuck your day up by forcing you onto a whitelist in squid.
  • by Greyfox ( 87712 ) on Monday August 22, 2011 @07:38PM (#37173246) Homepage Journal
    At least that's what my hippy educators in the 70s liked to tell me. Though to render everything they told me false and irrelevant, I just need to find one example where it did. Hmm... Ah! World War 2! Suck on that, hippy educators! Perhaps you just didn't use enough violence in your solution!
  • by rpopescu ( 1563191 ) on Wednesday August 24, 2011 @04:36AM (#37188742)
    Don't fucking call random people code monkeys. Mind your fucking manners, sir.

No line available at 300 baud.

Working...