Tuesday, April 08, 2008

Start playing the Continuous Integration game for real

I read "The Continuous Integration Build Game" 6 months ago, just when I had found Hudson. The idea behind the game seemed so simple and at that time we had problems with people comitting code that broke the build and failed the (very few) unit tests. I thought that the game could help out, as people like competitions and they would try to "win" the game. To win the game the developers have to commit code that is compiling and add unit tests.

The rules of the game are:
* -10 for breaking a build
* +1 for doing a build with no failures
* -1 for each new test failures
* +1 for each new test that passes

The plugin is more a proof of concept than a real full fledged plugin that will suit everyone. Thus the points for each rule are hard coded and can not be changed in this release. So if you are finding this plugin useful let me know.

For each build you will get a summary stating how many points the build was worth, and if you want you can see what rules that were involved.

The plugin installs a leader board on the front page, which shows who are on top.

44 comments:

Dan said...

Nice plug-in.

What happens if 2 people commit between builds? Who gets the points?

I can see lots of opportunities for tweaking the rules. Maybe -1 for a coverage regression, etc.

Alex said...

This is very cool and creative idea.

redsolo said...

@dan - the points are given out on build basis, so if 2 persons have committed code for one build then both will get the points for it. This is a side effect on having long builds. There is no way to separate the two persons in a build.

And yes, as Hudson has many quality plugins Im thinking of adding support for PMD, Coverage, Findbugs, checkstyle, etc. But that requires that anyone actually use the plugin :)

@alex - I cant take the credit for the creative idea as it was thought up by Clint Shank. (But I will take credit for implementing it ;)

James said...

Very interesting. This would be really good to get up onto JavaLobby. Would you be ok with us reposting this? Let me know if you're interested -

alex said...

Redsolo,

We are using your plugin. One feature that would be nice would be to expire points. In SCRUM, that could be a 2 week period, or maybe doing 30 days. This way the points level off, and prevent people from building up a lead and not doing anything. I also really like the idea of supporting the other plugins.

Anonymous said...

Nice plugin :-)

As for the expiring points, I think this would also be fairer to people who join your team at a later time.

I was thinking you could keep a day-by-day total for each user, then add up N days worth of points for each user to arrive at the user's total score (where N can be configured).

Also, a "points per day average" might be nice, as well as a graph showing the score trends...

Alex said...

I see Clint Shank already thought about expiring points.

redsolo said...

@all - Ive updated the plugin now, as there was a problem if the previous build failed then the next submitter would get loads of "new passing tests" points which was incorrect.


@james - Sure, that would not be a problem.


@alex, anon - expiring points is a good idea. I will look into it in a few days. First Im going to test supporting other plugins.

Tash said...

I just installed this last week, and it's already interesting looking at the results.

A few things which would improve the usage in our team:

- Possibility to remove people from the list. We've had a number of developers leave recently, but they show in our leader board still. Our build manager is currently ahead on points as he checks in the build.properties files for all projects. I prefer to exclude him from the list.
- Possibility to manually assign/amend points. For example, last night a build failed in one project because of a change to an interface in another project. The developer who checked in the change didn't get penalised as the project he changed still compiled.

pelegri said...

Hi Redsolo. Have you checked the GAP awards program? Hudson plugins would qualify. Perhaps you could submit the plugin? - eduard/o

William James said...

redsolo, in regards to your comment I found on Dan Fernandez's blog:
"but i guess Express is not for real developers"!
I am rather annoyed when people that have no clue what they're talking about try to say Express is not for real developers!!

Of course it's for real developers they're not going to offer you every single benefit that's in their VS IDE when they in fact WANT you to buy VS Standard, Pro, and the works...of course it's more of a tool to target those not willing to purchase the full version therefore it's possible that a lot of the people getting Express flavors are not REAL developers as you define it...but it is FOR REAL DEVELOPERS the compiler is no different either I'm sure you knew this just like I'm sure you made that rude comment of yours as a fruitless attempt to put yourself on a tiny little pedestal so you can feel like you're so much better than the rest or to try and coax Microsoft into giving you everything for FREE!

There is plenty of support for unit testing, performance testing and the works however there is no built in support never will be as far as we know! As there are no add-ins allowed in the Express Editions but there is work-around! You, being the elite developer that you act like, should be well capable of using Google to figure this all out instead of being a lazy-azz-wanna-be-code-monkey!

So in layman's, just for you, you suck as a person and you should try harder in life because you do suck being on the current lazy arse path you chose to be on!

William James said...

I also happen to be on the developer team working directly with the whole Express line-up! So try to be nicer in making such an in experienced comment like yours next time, OK Mr.Careless?

I also expect no less of you than to delete these comments I have made because you are coming across to me as quite the fake individual in reading your comments all over the Internet...

So I'll be sure to speak this over with the Team and we'll be keeping a close eye on how people such as yourself being ill-informed and all try to spread the word that it's not for ''Real-Developers''!

Have yourself a fine evening and for crying out loud man, Google something!

redsolo said...

Thanks for trying out the plugin, hope that you are still using it :)

@alex - Im currently adding other plugins to the game, and after that I will start looking into expiring points after a while. https://hudson.dev.java.net/issues/show_bug.cgi?id=1607


@tash - Excluding people from the game, shouldnt be a problem. https://hudson.dev.java.net/issues/show_bug.cgi?id=1608


@pelegri - Yes, Ive thought of sending it in when it has some more features. (Besides GAP submission isnt closed until june)

redsolo said...

@William James
Thanks for stopping by my blog and making personal attacks on a total unrelated post. I had no intention on attacking you as a person when I wrote that comment, but I must really have touched a tense nerve. It's interesting to read personal attacks directed at me and at the same time read that I should write nicer comments.

I still don't see that Express is for "real" developers, as it does not have the tools that developers need to do their daily work. I think unit testing is a core task for a software developer and it is essential on making quality software and survive as a developer. And if the tool can't give me that, I dont see any use for it for "real" develoeprs. I know that there are some cumbersome workarounds to get unit testing into Express, but that is not the point. The point is that Express does not support unit testing out of the box.

I feel for Jamie Cansdale, and hope he didnt get to much trouble on adding TestDriven to Express. That whole affair really shows that the Express is not for creating real products, but getting people to take the MS track. The Express line is more like crippled demos of the full versions without a time expiration. That's fine, but they should say that upfront instead of "Visual C# 2008 Express Edition is the ideal tool for productively building object-oriented applications for Windows on the .NET Framework."

I read a good comment that nailed my feeling about Express.
"Express targets learners and hobbyist. Very few beginners learn about unit tests until long after becoming proficient. This is backwards. It needs to be learned and integrated in the coding style at the very beginning.

Of course there are alternatives. However, many, especially beginners, will not use them if they are not already available. Some of this is probably due to lack of awareness; some of it is probably due to lack of integration."


Please mention my complaints to the Express team, and perhaps they can add support for unit testing (many would benefit from it). You are also welcome to "keep a close eye on me" (my blog has a rss feed), you might even learn something new or a different view on things.

And as you might have noticed, anyone can comment on my posts, they are not moderated in any sense. I don't believe in censoring other people's opinion, as everyone are entitled to having opinions. I have no intention on deleting your comments, as I find them some what funny. I might even use them in a future blog entry.

I dont I suck nor am a fake individual, Im a real person and a real developer and still wondering what I should google.

jacobson said...

I'm in the process of migrating from CruiseControl to Hudson. One of the selling points for Hudson is the CI Game!! I love the plugin, and so does my team... The want to win so much that they are complaining they aren't getting enough points! I'm curious how the +1 per new passing test is supposed to work because it seems like it isn't. The test results from one build to the next show +9 tests but the build was only worth 1 point. How can we get full credit for new tests?

redsolo said...

@jacobson

Glad to hear that you are making the switch to Hudson, there are many other nice plugins besides the ci-game. I guess being competive lies really deep in the human genome :)

Ive created https://hudson.dev.java.net/issues/show_bug.cgi?id=1721 for the problem with points for unit tests. I will look into the problem this week, and hopefully have a solution out soon.

Anonymous said...

You should add/remove points for findbugs/pmd/checkstyle changes, etc, as well.

redsolo said...

@anon - The latest versions of the plugin supports the mentioned plugins.

zdsbs said...

hey redsolo, thanks for stopping by my blog.

We're still using the plug-in, and still enjoying it. I often keep two leader boards open on different tabs + turn off auto refresh. So I can have a history of how everyone's points fluctuated during the day. A co-worker had the idea of having a point total by time graph. I think that would be pretty cool if you're still looking for more features to implement.

anyway, thanks for the plugin

-ZDS

JanT said...

I like your plug-in. Thanks for that.

What I am searching for is a possibility to configure (deactivating) the activated rules? I don't like the task rule, therefore I would like to remove it. Is it somehow possible?

redsolo said...

@JanT - Sorry no, the initial plugin was just a test to see if it would actually work in a real environment. I have been wanting to do this for a while, but not got around to actually do it.

The only way is to download the source, disable/comment out the rules, build it and use it in your server.

buy Cialis said...

Nice information, many thanks to the author. It is incomprehensible to me now, but in general, the usefulness and significance is overwhelming. Thanks again and good luck with the next blog, anyway I know you don't need it, because you are so smart.

Generic Cialis said...

Nice information, many thanks to the author. It is incomprehensible to me now, but in general, the usefulness and significance is overwhelming. Thanks again and good luck!!!

ズファジラン said...

Hola,Ha hecho un trabajo muy bueno. Hay muchas personas en busca de eso ahora van a encontrar suficientes fuentes por tus consejos.espera para obtener más consejos acerca de que

Penis Enlargement Pills said...

Really you have done great job,There are may person searching about that now they will find enough resources by your post.I like this blog..

Viagra on line pharmacy said...

What a great game ? I wonder if you have all the cheat codes for it! thanks for this review.

Generic Viagra said...

I think you are right when you say this. Hats off man, what a superlative knowledge you have on this subject…hope to see more work of yours.

iPhone Application Developers said...

Great post I must say.. Simple but yet interesting and engaging.. Keep up the awesome work!

Generic Tadalafil said...

Ola idea, Niza,
cousas boas, hai moita xente buscando sobre iso, agora van atopar fontes bastante polo seu post.
Estamos ansiosos para obter máis detalles sobre isto

Generic Viagra said...

I wonder how you got so good. This is really a fascinating blog, lots of stuff that I can get into. One thing I just want to say is that your Blog is so perfect!

Allegra said...

m lieta questa pagina straordinaria carità, questa è una forma di materia che sostengo, ma vede day.We out 'era spesso sentito ultimamente di voler sul vostro sito web a destra subito dopoHey,

sexshoptienda.blogspot.com said...

The chap is completely right, and there's no skepticism.

Penegra said...

I wonder how you got so good. This is really a fascinating blog, lots of stuff that I can get into. One thing I just want to say is that your Blog is so perfect!

tablet pc tienda said...

This won't really have success, I consider like this.

Generic Viagra said...

Great information you got here. I've been reading about this topic for one week now for my papers in school and thank God I found it here in your blog. I had a great time reading this.

hcg said...

One moment, I'll post mine soon. just wanted to say I love your new site!

saim said...

That is very good comment you shared.Thank you so much that for you shared those things with us.Im wishing you to carry on with ur achivments.All the best.



natural minerals
best naturals
buy curcumin

cleveland heights hotel said...

You got a really useful blog. I find it very interesting and entertaining! Thanks for the posting.

Bandar Bola said...

Thank you for posting such a useful website. Your weblog happens to be not just informative but also very stimulating too. There are a limited number of people who are capable of write technical articles that creatively. we are on the lookout for information regarding this topic. We ourselves went through several websites to find knowledge with regard to this.I will keep coming back !!Agen Bola Sbobet Agen Bola Online

Bandar Bola said...

Thank you for posting such a useful website. Your weblog happens to be not just informative but also very stimulating too. There are a limited number of people who are capable of write technical articles that creatively. we are on the lookout for information regarding this topic. We ourselves went through several websites to find knowledge with regard to this.I will keep coming back !! Judi Bola Ibcbet

Agen Bola said...

Hrmm that was weird, my comment got eaten. Anyway I wanted to say that it's nice to know that someone else also mentioned this as I had trouble finding the same info elsewhere. This was the first place that told me the answer. Thanks. Sbobet Casino Online

Anonymous said...

I have seen your Cara mengecilkan perut consciousness about this theme Makanan sehat untuk diet if you post it and it really gives an informational Cara mengecilkan paha dan bongkong message to us readers. I'm hoping that you will proceed writing this kind of blog. Cara diet alami Thanks for sharing this information.

Ibcbet Casino said...

This is a fantastic website and I can not recommend you guys enough. Full of useful resource and great layout very easy on the eyes. Sbobet Asia

banjo pitogo said...


I’m amazed, I have to admit. Rarely do I come across a blog that’s equally educative and amusing, and without a doubt, you've hit the nail on the head. The issue is something too few folks are speaking intelligently about. I am very happy I found this in my hunt for something regarding this.
I’m amazed, I have to admit. Rarely do I come across a blog that’s equally educative and amusing, and without a doubt, you've hit the nail on the head. The issue is something too few folks are speaking intelligently about. I am very happy I found this in my hunt for something regarding this.sbobet casino