DevOps Grows Up: Two Maturity Indicators From Jenkins World 2016
Deliver software faster, at higher quality, with less stress, where every engineer does exactly what they love? Well of course. Is that 'DevOps' today? Getting closer.
Join the DZone community and get the full member experience.Join For Free
Nobody doesn't like the idea of continuous delivery...as opposed to discontinuous, erratic delivery, I guess? And nobody in the software industry really thinks that we could make better software just by mastering Kleene on recursion and Shannon on information and that Turing paper and everything Alonzo Church wrote...as opposed to actually helping users do something better? Software engineering is science and craft together, theory-building and problem-solving at once. We create previously uncreated structures and then make them work.
So of course the dev/creators and the ops/preservers should work together. Why don't they? No reason except the usual stuff about how the world is imperfect, kaizen, etc.. If we approach software value creation only asymptotically, then success isn't perfection but rather critical mass. The world is DevOps-ing when enough of the world is in love with novelty and quality together.
This year at Jenkins World -- the first global conference on the most popular CI server -- I'm getting some of those tipping point vibes. (I make no promises about the influence on that judgment of the perfect weather, the actually-very-decent conference wifi, and the live band that's currently playing the expo floor. But really it wasn't much...)
Here are two announcements, made at the first Jenkins World keynote, that (to me) indicate this level of maturity.
Maturity Indicator 1: Developer Experience Is Becoming Less Terrible
When I told a friend I was going to attend Jenkins World, he said: "Why?? Ugh! I hate Jenkins." Obvious comeback: "Well, I'm sorry you you feel that way, but clearly enough people must feel differently that they're renting out a large chunk of the Santa Clara Convention Center for a conference about just this one tool." Proof by majority spending decisions.
But in fact CI servers, Jenkins unexcepted, currently fall into that 'lovely once you know how to use it, but kinda impenetrable beforehand'. (I freely, if shamefacedly, admit that this is my feeling about emacs. In some distant future I can feel the godlike power a Lisp interpreter turned text editor might confer on me. But meanwhile I just don't know what comes after
Worth it? Maybe, but 'in the long run' isn't enough to overcome the short-term unpleasantness. The vi lovers in the audience will agree: some good Dev[eloper]Ex[perience] needs to lower that activation energy. And the devs who let Visual Studio lead them to check out C# (sssshhhh, there are plenty of us) will know: the vast and intoxicating mental state-space required by serious programming means that, honestly, what information the coding tool conveys at a quick glance can sometimes make the difference between 'sweet, gonna use this again' and 'now my house-of-cards brain register set has collapsed and I'm never using that tool again'.
So a UI change in a developer tool can be silly pretty-washing or the catalyst that makes a tool worth adopting for its real benefits, now that the cognitive cost of using it has gone significantly down.
Today the Jenkins community announced what looks to me like the good kind of developer UX improvement, the kind that takes Jenkins out of 'I'm a Jenkins expert so I use Jenkins' territory and into the 'okay this makes sense and I don't even have to think about it: the public beta of Blue Ocean, a new (finally-legit-Ajaxy) UI for Jenkins. You can visualize actual build (Jenkins 2) pipelines as, like, actual pipelines:
..and click through a fail indicator directly to an anchor in the log precisely where the build failed. And personalize which builds appear in your personal dashboard ("so you know whether it's safe to go home"). And customize the UI as much as you like. (More here.)
Technology is more mature when it doesn't suck to use.
Maturity Indicator 2: There's a RHEL-like Enterprisey Version But the OSS is Still Going Strong
OSS rocket-nozzles the creative fire of actual users' love/hate to drive faster innovation, better mapping to real-world needs, and all those other values of freedom and untrammeling that make Richard Stallman's Lispy and free-softwarey sides make sense together. But rockets are easier to fly than to not-explode, and the insane speed of open-source software is sometimes too fast to let lives (or billions of dollars) ride on it.
So you don't cancel the rocket progam. You do waaaaaaay too many tests to feel really agile. Then you reach the moon and nobody dies.
And you don't stop using open-source. You let the mad committers run free..but also make a safe version for work that's sufficiently mission-critical.
Cloudbees is now doing this for Jenkins and its plugin ecosystem: pick the most stable projects, hard-core test (unit, integration, everything across a set of complete enterprise-style use-cases) for reliability and interoperability, and package as a still-fully-open-source Jenkins distribution called Cloudbees Jenkins Enterprise.
A tool is more mature when it has a bleeding-edge version and a rock-solid version at the same time.
More news from Jenkins World soon, including another maturity indicator: a plugin site with more accessible metadata than a DMOZ index..and a really cool name.
Opinions expressed by DZone contributors are their own.