back to article How one programmer's efforts to stop checking in buggy code changed the DevOps world

The father of popular code pipeline Jenkins has big plans for its future while admitting that it owes its existence to his habit of introducing bugs to code. After delivering a keynote to a crowd of excitable DevOps fans, creator of the Jenkins project (and now chief technology officer at CloudBees) Kohsuke Kawaguchi took some …

  1. macjules

    Fantastic software, but ...

    Jenkins has not really had an update for many years. It is still a total nightmare to configure it, to create projects and to administrate. We do most of our CI within Bitbucket or GitLab pipes and just use Jenkins where there is a need for multiple repos to be integrated, or where there is a need for remote SSH on a production server, for example.

    1. Anonymous Coward
      Anonymous Coward

      Re: Fantastic software, but ...

      I never understood the success of Hudson/Jenkins - and CI was well understood and used before. Maybe because it came with a GUI interface and point&click setup, despite all those claims from Linux developers of being masters of the command line. Still, a badly designed GUI especially when a project build is complex and requires many steps.

      Pipelines are a step in a wholly different direction, actually the created a new product much more closer to CruiseControl than it was previously. While it still relies too much on a large number of plugins, because extending it if you aren't a Java developer isn't easy, and still managing Jenkins can take a lot of time to put all the pieces together and make them work.

  2. Anonymous Coward
    Anonymous Coward

    Jenkins?

    " The father of popular code pipeline Jenkins "

    I've never heard of it and I like to think I'm reasonably up to date with all the latest fads even if I never use them. Still it is Java, you only have to wait 10 minutes and a new framework, API or dev enviroment will be along claiming to be the One True Way.

    Also someone who had colleagues constantly ringing him up with what were apparently quite obvious bugs in his checked in code doesn't exactly strike me as the sort of coder who should be trusted to write something like this.

    1. Anonymous Coward
      Anonymous Coward

      Re: Jenkins?

      The fact that I've already got 4 thumbs down just confirms what most experienced people know about the calibre of current "programmers". I use the term advisedly since most of them would have trouble hacking their way out of a wet paper bag.

      1. Davidmb

        Re: Jenkins?

        I think the downvotes are coming because you read an entire article about Jenkins, a popular CI tool, and rather than acknowledge a gap in your own expertise and move on you decided to go to the effort of making a Victor Meldrew-style rant forum post. Two, in fact. The article was hardly controversial.

        Of course, I've hardly helped by getting irritated by it. And I'm not even a Java developer, or a user of Jenkins. I just prefer my angry rants to be better targeted.

        1. Anonymous Coward
          Anonymous Coward

          Re: Jenkins?

          "decided to go to the effort of making a Victor Meldrew-style rant forum post."

          If you think saying someone who by his own admission writes seriously buggy untested code shouldn't be working on an important system like this is being a victor meldrew then god help us. You epitomise the clueless sort of gimp that works in dev these days who needs half a dozen frameworks and a browser permanently open on slackoverlflow.com just to write a Hello World program.

          1. steelpillow Silver badge
            Angel

            Re: Jenkins?

            "someone who by his own admission writes seriously buggy untested code"

            @boltar: It is old-fashioned politeness to deprecate one's professional expertise in a mildly humorous way. What you should draw from this is not that Kawaguchi is a bad coder but that he has an old-world charm and good manners that you appear to lack.

            1. Anonymous Coward
              Anonymous Coward

              Re: Jenkins?

              You read it that way if it makes you feel better.

              1. Throatwarbler Mangrove Silver badge
                Holmes

                Re: Jenkins?

                Steelpillow's assessment of you is consistent with, you know, everything you've ever posted on this site.

              2. Anonymous Coward
                Anonymous Coward

                Re: Jenkins?

                I'd also point out that jenkins is not just testing "does it compile". We run it many times a day to run tens of thousands of tests in parallel on our big iron server, something we couldn't do easily locally. In fact it's changed the workflow from "ad hoc test as best as you can, check in rarely" to "check in early, test, repeat, merge". In my experience this is an improvement (and the first time I used source control was SCCS, back in 1993).

                I would also point out the alternative to not checking in code with bugs is writing perfect code every time. Software engineering is necessarily an iterative process. Boltars apparent lack of awareness of this makes me question his or her competence as well as their manners.

                1. doublelayer Silver badge

                  Re: Jenkins?

                  Having never used it, I find your explanation logical. This sounds like it would be a useful tool for parallel testing. However, I would contest your point that "the alternative to not checking in code with bugs is writing perfect code every time". I would argue that the best alternative to checking in code with bugs is to test it on all available test cases and possibly new ones *before* it is checked in. This won't be perfect, but it will be much less of a hassle for other members of the team. I doubt the developer is really bad at writing and testing code, but I don't think his style of self-deprecation did him any favors there.

            2. bombastic bob Silver badge
              Devil

              Re: Jenkins?

              who hasn't, at one time in his career, written buggy code and then checked it into source control [or committed to production] and then later on had some disaster come about that's "totally YOUR fault" and had to either come in after hours or have everyone breathing down your neck while you fix it...

              I only really did that once, an oversight in a late afternoon transaction processing batch job that locked up the database for 20 minutes, causing angry accountants to complain about not being able to do their job, etc.. Yeah, I was USUALLY careful, except that ONE time. Oops. Heh. [and my supervisor scanned over my code before I ran it, too]

              I've never actually used Jenkins, but it's beginning to sound a lot like something I'd want to avoid if I were not trying to manage a very very large project written mostly by junior coders. People at my level are usually the ones who HAVE to Q.A. their own work, because there's nobody above you who's capable of it. So in a 'Linus'-like position, you think in those terms all of the time. But the people below you who are part of a managed sub-project, they might not know enough about "the whole system" to make those assessments, and so yeah, some kind of management tool exists.

              And so I suppose I should have a close look at Jenkins, in case I'm in "that position" again, not just self-managing some ginormous project that, when done by 1 person, doesn't have "that kind of problem".

              (The one-man-band consulting gig works great when you are "the guy" making the prototype and initial production run, gets it all done faster and at lower cost, before the feature creep and one-size-fits-all marketing-driven development begins - that latter part requires a bureaucracy - heh)

              1. EarthDog

                Re: Jenkins?

                Having done QA, QAing your own work is really not QAing it. IMO.

                1. FrankAlphaXII

                  Re: Jenkins?

                  I've done volunteer QA on a number of FOSS projects and I'd have to agree, but its still something to be encouraged to the development teams.

                  No, looking over your own code is not really QAing it, but it does help us out if the developer takes a few minutes to have a look at their work before we get it so any obvious issues get fixed and we don't have to waste our time on them.

                  It doesn't always work out that way (especially with some developers who behave as if they shit excellence and piss greatness, and act like finding a bug and suggesting a fix is a personal attack on their character) but it is helpful and can save a lot of time.

        2. This post has been deleted by its author

    2. Anonymous Coward
      Thumb Up

      Re: Jenkins?

      Totally agree. Upvote incoming.

      That's 6+ professionally outraged Java developers who've taken time out from writing their latest bloated shim proxy factory injected framework masterpiece to downvote you... Their downvotes are the most productive thing they'll do all day. All year, probably.

    3. northernrex

      Re: Jenkins?

      @boltar:

      "I've never heard of it.."

      Thanks for getting on here quick sharp to let us know. Looking forward to a fabulously informed and reasoned comment now. (Pipe down with the laughter at the back there - I know this is The Reg.)

      "I like to think I'm reasonably up to date with all the latest fads"

      You might want to revise your assesment of your skills on that front then. (Dunning-Kruger and all that)

      "Still it is Java, you only have to wait 10 minutes and a new framework, API or dev enviroment will be along"

      You missed the bit about Jenkins having been a thing for approaching a decade, and a thing under a different name for significantly longer? Sure there is plenty of stuff that has been around longer, but equally it is no new kid on the block.

      And whilst it is written in Java, it can be used with a wide range of technologies, hence it being a *popular tool.

      "Also someone who had colleagues constantly ringing him up with what were apparently quite obvious bugs in his checked in code..."

      As already mentioned, I suspect there is at least a smidge of humble, self deprecation going on there, often a preciously short commodity in this industry.

      "doesn't exactly strike me as the sort of coder who should be trusted to write something like this"

      And yet Jenkins has been a thing for approaching a decade, a thing under a different name for significantly longer, and an indespensible tool for a lot of companies and orgs.

      Other than them odds and ends, a cracking comment! Right on the money.

      P.S. I am not a Java Dev.

      * Popular is not necessarily the right word, as I, like the original commenter very much have a love/hate relationship with Jenkins, largely for the reasons they cited.

    4. Anonymous Coward
      Anonymous Coward

      Re: Jenkins?

      CI is not a fad and the tools supporting it aren't.

      All successful languages have vibrant communities who produce new frameworks and tools. It's an evolutionary thing - without this we would all still be using obsolete tools and techniques.

      At what point do you think people should stop trying to write a better framework? Who should the arbiter of that be? Personally, I hope that I am experienced enough that I can evaluate new ideas, techniques and tools and choose the ones that I think are robust enough, well documented enough and have a sufficient support network for me to trust it.

      Hudson/Jenkins have been around for years, there are multiple books on them and they are robust enough to be trusted by a lot of developers. I have yet to meet a Java dev that hasn't heard of it and most of them have used it.

      Successful FOSS projects get that way by multiple people reviewing and fixing code - they are not dependent on one person.

      1. Bronek Kozicki
        Joke

        Re: Jenkins?

        Bah! Some people do not need FOSS projects or such fads as CI/CD, as every single line of their own code is perfectly correct. Here is an example of such entirely correct code:

        int main() {}

        1. fortyrunner

          Re: Jenkins?

          Shouldn't you return an int value?

          1. swm

            Re: Jenkins?

            The standard C or C++ makes an exception for the main procedure - it doesn't have to have a return statement.

        2. Anonymous Coward
          IT Angle

          Here is an example of such entirely correct code - what did I do wrong?

          File "/home/spongei/completely_correct_code/example.py", line 1

          int main() {}

          ^

          SyntaxError: invalid syntax

          Process finished with exit code 1

    5. Anonymous Coward
      Anonymous Coward

      Re: Jenkins?

      "I've never heard of it and I like to think I'm reasonably up to date with all the latest fads even if I never use them."

      This is a bit like saying you've never heard of git. Somewhat invalidates any subsequent claims of competence.

      1. bombastic bob Silver badge
        Devil

        Re: Jenkins?

        "This is a bit like saying you've never heard of git. Somewhat invalidates any subsequent claims of competence."

        Not really. It mostly invalidates any claim of knowing EVERYTHING. You can survive your entire career without knowing a THING about git. It all depends on whether or not you've ever needed it, or something like it. Some of us just don't need to chase the bleeding edge all of the time, would rather just work with what we have and get stuff done [which makes bosses+clients happy and higher pay scale, usually].

        I'd only heard 'Jenkins' mentioned before, and after reading the article, I'll probably look into it more closely. The truth is, I've never needed anything like it. I don't work in large teams [normally could do the work of a relatively large team on my own, heh, by approaching things efficiently and generally being left alone, no meetings, no pairing up, etc.].

        Funniest (or saddest) example of this: at a used-to-company, developed initial prototype in 3 weeks for something that was worked on FOR A YEAR by one manager, one senior coder, and one junior coder, with daily closed door meetings, etc. at the frustration of the senior coder. They used my prototype [which I'd maybe spent a weeks' additional time patching and tweeking] to demonstrate the concept to potential customers SEVERAL times, while still working on the "real" version. At the end of that year-long period, they asked me to step in to help them finish up. The junior guy got laid off, and the senior guy and I finished it up and fixed it. Took about a month to fix it, though. Go fig. I think the design concepts being used in the "real" version were flawed and inefficient to code around and that became the biggest problem.

        Anyway, "that" happens, too.

        [I suspect that Jenkins would make "doing it the wrong way" more efficient?]

        1. Adrian 4

          Re: Jenkins?

          ". The junior guy got laid off, and the senior guy and I finished it up and fixed it. Took about a month to fix it, though. "

          Unsurprising. Having a junior person on hand just slows the senior down. The manager adds meetings and wants updates, further slowing things. And finally, having the project 90% finished means there's 90% left to do - dealing with all the error paths and corner cases.

  3. AMBxx Silver badge
    Thumb Up

    'Unimpressed by Oracle'

    Not sure if he's being incredibly diplomatic, sarcastic or master of the understatement!

    1. amanfromMars 1 Silver badge

      Re: 'Unimpressed by Oracle'

      Not sure if he's being incredibly diplomatic, sarcastic or master of the understatement! .... AMBxx

      When all three, AMBxx, is Oracle as a Zombie Market Entity? One of those Needy Sponges Searching in Greeds for Needs to Seed and Feed.

      Although methinks, to be so, does Oracle Aspire to be One Almighty Trojan ‽ .

      1. FrankAlphaXII

        Re: 'Unimpressed by Oracle'

        I think that Oracle just has more money than sense, which isn't an uncommon condition around tech companies.

        Plus they leave a lot to be desired when it comes to management and stewardship of most, if not all, of their non-proprietary projects. It certainly seems like everything they touch that wasn't invented by them they lead to ruin, or they make things so difficult for developers and users to deal with that it winds up killing whatever project or product. At least with FOSS, you can usually fork it.

        About the only exceptions I can think of are Java and ZFS, and even that's complicated.

  4. DJV Silver badge

    Oracle

    "Hudson, alas, foundered under the control of Oracle"

    For some reason, I am failing to be surprised.

    1. Anonymous Coward
      Anonymous Coward

      Re: Oracle

      Did Oracle ever make an acquisition it didn’t subsequently ruin?

      1. FozzyBear
        Unhappy

        Re: Oracle

        I know this was a rhetorical question, but than I started thinking have they ever? Is there just one acquisition they made that they improved upon that could redeem Oracle. After much contemplation I concluded that sadly there isn't. Not one.

        Same for the likes of Microsoft and IBM. Not one. Great ideas and applications, acquired and then bastardised and nerfed in the pursuit of profits not function.

        Fucking depressing really!

      2. timrowledge

        Re: Oracle

        Did Oracle ever make *anything* it didn’t subsequently ruin?

  5. Anonymous Coward
    Anonymous Coward

    Lemons to lemonade ...

    Wow, talk about making lemonade out of lemons! Wish I had that guy's big ones ... (This looks like the secret history of why Sun failed.)

  6. Anonymous Coward
    Anonymous Coward

    Java is just COBOL with braces.

  7. John Smith 19 Gold badge
    Unhappy

    " he is most interested..the vast data sets generated by..successes and failures of

    past executions to work out which subset of the test suite to run first."

    Oh really.

    Developing minimum test cases for maximum fault coverage.

    Wow.

    4 decades on people rediscover the work of Glenform Myers.

    How exciting.

    1. bombastic bob Silver badge
      Meh

      Re: " he is most interested..the vast data sets generated by..successes and failures of

      designing a test that covers the largest amount of code in the smallest amount of time is never a bad thing...

      unless you define "test" as 'unit testing EVERY possible trivial thing INCLUDING functions that return trivial answers like 1+1 = 2, making sure they STILL return 2, years after being written, without any modifications being done to them'.

      /me seen that last part, to some extent. won't go there. waste of time. if you need THAT, test "the library" separately, and only when you CHANGE it.

      in any case, there's also "data overload". The solution is to turn data into 'information' rather than 'a bunch of meaningless, uh, data'. then you present the information, executive summary first, with drill-down capability for those who really want that.

    2. John Smith 19 Gold badge

      "4 decades on people rediscover the work of Glenform Myers."

      That should of course be Glenford Myers

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like