

Show HN: UI improvements for Jenkins - kevinburke
https://github.com/kevinburke/doony

======
pbiggar
The skin is really nice. I'm a real jenkins hater (one of the reasons I
started [https://circleci.com](https://circleci.com)) and while I think this
makes Jenkins look really nice, I also think a superficial change like this
doesn't really solve the major usability problems that jenkins has.

There's a huge amount wrong with Jenkins. My major gripe is that the world
today has moved very much to "convention over configuration", also known as
"usability". But Jenkins is firmly stuck behind. It's not wrong to say that
nothing works out of the box, and you have to configure every little thing.
CircleCI customers have told me they've literally spent 2 days configuring a
jenkins box to even get it working, and are glad to be rid of it.

One example of jenkins' backwardness is a post from the Jenkins lead last
week:
[https://news.ycombinator.com/item?id=6434194](https://news.ycombinator.com/item?id=6434194).
Actual quote: "The literate plugin adds an Action to all Free-style projects
that allows exporting these XML configuration snippets in a .zip file for
unpacking into your project's source control."

I don't mean to hate on this, just jenkins. This design is a real improvement,
one that Jenkins has been unable to do in the entire 10 years it's been in
existence.

[disclaimer: obviously I have a massive massive bias against jenkins, as part
of CircleCIs mission is vanquish it and its awful usability]

~~~
mpermar
Fair enough to advocate for your project, which I btw find it very nice.

However, xml configuration is really a weak argument. It is very rare that
anyone needs to touch the XML files. In fact, when someone touches those files
is normally due to either a very extreme case or more commonly lack of
interest in learning how the admin UI works. Jenkins lets you manage
absolutely everything from the UI, from the very beginning, which is pretty
convention-over-configurationish. Also Jenkins' changes control system lets
you track and diff every change very quickly.

~~~
echohack
You can track changes in Jenkins configurations?

~~~
mpermar
Actually I was wrong on that one. I took for granted that you could track
changes because we have a nice "Job Config History" menu option. But that is
actually the job config history plugin ( [https://wiki.jenkins-
ci.org/display/JENKINS/JobConfigHistory...](https://wiki.jenkins-
ci.org/display/JENKINS/JobConfigHistory+Plugin) )

So, I step back on saying Jenkins lets you track main changes history. That
has to be done manually I guess.

~~~
echohack
This plugin is actually really nice.

Thanks, this will help. :)

------
thejosh
Jenkins and many other tools are designed by developers, there needs to be a
word for that... we just call it "developer design" \- functional but ugly.

~~~
markkanof
In a lot of cases it's only functional in the sense that it performs a
function. To me functional but ugly implies a certain sort of delusion that
while it might look ugly, it is really efficient to interact with, so
therefore, it doesn't need to look nice. This is often not the case though. A
lot of these developer designed interfaces end up being confusing, hard to
navigate, and ugly.

------
Shish2k
> Removes a lot of the useless icons

The screenshot implies that it's removed _all_ the icons - are icons
universally considered useless now? I know I'm a sample of one, but I've
always found the console icon to get "console output", the big red button for
"delete", etc to be useful and unobtrusive...

> The fonts are bigger. Way bigger. > More spacing in between list items. >
> Text inputs are friendlier, bigger

For people using jenkins on their phones? :S I'm using it on a 1080p monitor,
and even then I sometimes use my browser's zoom feature to zoom _out_ so that
I can fit more information on screen...

I'm all for UI improvements, but this just seems like "replace things with
bootstrap, because everything has to be like bootstrap now" :(

~~~
kevinburke
11px is a pretty small default, below the recommended size. For links it also
means a small target to click on.

There's some context about icons here:
[http://jonoscript.wordpress.com/2012/04/26/gmail-designer-
ar...](http://jonoscript.wordpress.com/2012/04/26/gmail-designer-arrogance-
and-the-cult-of-minimalism/)

If they are universally acknowledgeable (a big red X, a red dot, a green dot)
then yeah they make sense, otherwise they just lead to confusion about what
they do. In this case I didn't think they were adding anything to the left
hand marker so I removed them.

~~~
LaurentVB
Thanks for starting this. As a daily Jenkins user, I'm convinced there's a
huge room for improvement re: UX. However, I think the icon removal is
misguided. Default Jenkins icons are dated and probably too bold, but we
shouldn't get rid of icons entirely. Menus change a lot in Jenkins (depending
on context and rights). Having icons next to links makes it easier to spot the
right action or menu item by scanning, instead of having to read it all. In my
opinion, the link you cite does not at all justify removing icons. It says
that having _only_ icons (additionally, unclear ones) is an issue, with which
I couldn't agree more.

To add more feedback: \- I love the new console output. \- I think the font-
size is better. \- I like the more-roomy build history better. \- I think you
could replace the dated build-status and build-weather-report icons to
something more modern and better-looking

------
mullr
There's a lot of hate bouncing around here for Jenkins. Can we stop for a
moment and remember what it meant to set up a build system _before_ Jenkins
was around? Sure, it's not rocket science, but Jenkins made things quite a lot
easier and made continue integration actually possible to think about for many
shops. It's no small feat that they managed to do this for n revision control
systems * m languages with associated build systems and testing frameworks * q
random options and make it still mostly work.

Jenkins moved the minimum acceptable level of automation, for the industry, up
quite a lot farther than it used to be. Say what you will but remember its
impact, and that the guy who made it is quite possibly reading this thread.

------
FreshCode
I opted to use TeamCity for all my CI exactly because of the UI. It's not
perfect either, but I think it is vastly superior. Bigger install, though and
relies on a JVM.

~~~
borplk
is it free?

~~~
falsedan
The Professional license is free and gives 20 active build configurations & 3
simultaneous builds. I install extra instances if I need more.

------
forgottenpass
I see that you've got green orbs. Or, more specifically, I don't. I saw a
build history with yellow and red orbs but had a hunch and used assistive
software to discover that they were actually green.

I don't really mind because I'll never put this on my boxes (I've never really
minded that the jenkins UI is years behind design trends), but you may want to
be aware of colorblindness when toting "UI improvements".

------
publicfig
So thankful for the Chrome extension. Even more thankful to see some UI
projects happening through Github. We use Jenkins every day around the office
and I can't count the amount of times someone mentions just how... not
pretty... or, worse, confusing the interface can be, especially moving out of
jobs you normally focus in. It's a bunch of elements that make sense after a
while of using it, but initially it's a bit much.

------
matlock
Jenkins has done a great job in getting continuous integration as a workflow
into the hands of many developers.

But their usability is completely out of date and their current user base
doesn't let them evolve to where they would need to be. Especially integration
with PaaS services like Heroku should just be there from the start, but has
never been a focus for the Jenkins community which still seems to be very on-
premise based with all of their infrastructure.

More and more developers seem to be jumping on hosted solutions now (e.g.
[https://www.codeship.io](https://www.codeship.io) where I am one of the
founders)

~~~
eulerphi
Good job on having the typical non-biased flak-attack and also spamming your
startup.

------
michaelmior
Somewhat off-topic, but if you're looking for a good OSS CI solution, you may
want to check out Strider[1]. It has far fewer features then Jenkins, but it
looks nice and is incredibly easy to deploy. If you want, you can just push
straight to Heroku. Of course this leaves you somewhat restricted in what
tools are available, but has worked well for me for simple Python and Node.js
projects.

[1] [https://github.com/Strider-CD/strider/](https://github.com/Strider-
CD/strider/)

------
drdaeman
As for my personal tastes - and judging only by provided screenshots - I think
the original looks better than redesign. Except for Courier New replacement to
Consolas and console part, which, indeed, has to be white on black (or,
better, light gray on black, white is for highlights), not the other way
around. Probably that's the lack of primary navigation menu icons that I
dislike the most.

------
cih
This looks nice, a friend of mine made a nice simple dashboard showing jenkins
build status if anyone is interested [https://github.com/jackbot/jenkins-
dashboard#screenshot](https://github.com/jackbot/jenkins-dashboard#screenshot)

------
msoad
Chrome extension is awesome! Our grumpy sys admin will no bother updating our
Jenkins.

------
zmmmmm
Looks nice. But then Jenkins is an extremely low bar to jump. I've always
considered it kind of hilariously bad and at this point it would be kind of
sad to see it improve ... it just wouldn't feel like Jenkins any more!

~~~
taspeotis
> Jenkins is an extremely low bar to jump.

I'm pretty fond of Bamboo's default (only?) theme [1].

Although the focus on building Java software is undeniable, we build a bunch
of C# projects on it just fine (with its built-in MSBuild and MSTest tasks).

Bamboo 5 brings "deployment projects" [2] which makes CI just that little bit
easier.

I've also used Hudson (ages ago: prior to it being forked) and although it's
not a fair comparison, Bamboo is miles ahead.

[1]
[https://www.atlassian.com/en/software/bamboo/overviewHero/im...](https://www.atlassian.com/en/software/bamboo/overviewHero/imageBinary/build-
results.png)

[2]
[https://confluence.atlassian.com/download/attachments/365658...](https://confluence.atlassian.com/download/attachments/365658897/VersNam.png?version=1&modificationDate=1373345903342&api=v2&effects=border-
simple,blur-border)

------
echohack
This looks really awesome. We use Jenkins heavily for deploying applications
from build all the way through production.

I'll look into this and see what I can get out of it.

------
dwwoelfel
I'm curious why you would want a "build now" button on every page. Isn't it
easy to configure Jenkins to build on every post-push webhook from GitHub?

~~~
benpink
That might be so. But not everyone uses GitHub, y'know?

~~~
drunkenfly
But everyone uses some other version control system, isn't it? Set Jenkins job
to poll you source code repository...

~~~
falsedan
Sometimes I'm trying to improve a step, and want to test a quick change. Going
from Build Configuration up to Build Overview to click on Run Build is slow
and easy to forget, and I don't want to check something in just o trigger a
build.

Plus, TeamCity has 'Run Now' on every build-related page.

------
markkanof
Great work. I've thought about doing this before, but good for you for putting
in the effort to make it work, instead of just thinking about it like I did.

------
toomuchtodo
Very nice!! I intend to implement this on our Jenkins instance this week.

------
pestaa
Repo was starred in a heartbeat.

------
general_failure
Screenshots?

------
ing33k
will install this ASAP ..

