Posts Tagged ‘CI’

MonkeyCI: Super light-weight Continuous Integration for small teams

Posted Wednesday, May 20th, 2009 by Eric Pugh

At OSC, we have a well developed methodology that we apply to our client work, and one of the core tenets is using Continuous Integration to ensure our code behaves the way we intend it to.

However, recently we’ve had two projects were the usual CI solutions such as CruiseControl etc haven’t worked out well, and we had to develop our own internal CI tool that we are ready to publish to the world called MonkeyCI.

On the first project, which was a PHP based application with 5 full time developers, we used CruiseControl with the phpUnderControl addon. However, we were running CruiseControl on what turned out to be an underpowered hosted Windows server, and we kept getting build failure errors related to environmental difficulties. Now, if you’ve seen my talk about CI, you know how big I am on speccing a beefy server for CI, and this experience reinforced that lesson. We decided that migrating the CI environment to a bigger server was something that we felt was in the “nice to have” category, and that it could wait till the next iteration. But we needed something immediate. Enter MonkeyCI.

The heart of CI is all about building the code, running the tests, and publishing the results frequently. Everything else, the reports, the red/green lava lamps, the pretty JavaDocs etc are all gravy. To meet the needs of your developers, you need to know if the “bar is green”. So MonkeyCI does that in a decidedly low tech way:
MonkeyCI

Everytime someone runs the full suite of unit tests they record the day and time, and put their initials. If the build is failing then they immediately fixed it. We’ve played with writing the results in red for failing builds and green for successful builds as well. Then, each day at the standup someone highlights how the CI is doing, and verifies that multiple folks are initialing, which means that the tests are running on multiple systems successfully.

While this does mean you have an additional manual process, it’s also really easy to do, requiring just a whiteboard! And for small project teams, the overhead of maintaining a reliable CI system is too much.

We’re doing another two developer project right now, and at least so far MonkeyCI has been great. We haven’t seen integration issues yet such as database scripts that don’t run, or busted code being checked in. I’ll post a picture of our whiteboard once we have a bunch of checkoffs recorded!

We call this simple low tech process MonkeyCI because typically we refer to anything manual, such as testing by pounding keyboards as Monkey testing. Also, somewhat of a reference to the great developers at the Primate Programming Institute who I am sure would use this approach to CI!:

Primate Programming Inc: The Evolution of Java and .NET Training


Richmond SPIN on Continuous Integration

Posted Wednesday, May 6th, 2009 by Eric Pugh

I have the honor of speaking to the Richmond SPIN group on Continous Integration next week Wednesday, May 13. SPIN is the Software and Systems Process Improvement Network, and are the local groups sponsored by Carnegie Mellon University’s Software Engineering Institute.

My presentation is going to be a bit different from some of the previous topics that have talked about process improvement, whereas I am talking about a specific improvement that enhances your process. A CI system can provide the base framework for layering on much more then just the basic automatic code/compile/test cycle, and we’ll talk about what else it can be.

More information and registration is available at http://www.richmondspin.org/home22332.

I’m looking forward to a good crowd, lots of questions, and drinks afterwords!

Recap of CI presentation at CVREG

Posted Wednesday, January 14th, 2009 by Eric Pugh

Last night I had the privilege of talking about Continous Integration (CI) to the fine folks of CVREG, and had a wonderful time. CVREG had good turnout, and it was a great discussion of CI, and how CI can be part of a virtuous circle of becoming better software developers.

I mentioned that I would publish my slides, and if anyone has questions, please let me know at epugh@opensourceconnections.com.

The slides are online at http://www.slideshare.net/o19s/ci-presentacion-presentation/.

Also, a couple people pinged me about beCamp, and I’ll be getting started on it! Any volunteers to setup the 2009 wiki page? ;-)

.

Continuous Integration at CVREG

Posted Tuesday, December 2nd, 2008 by Eric Pugh

Missed my presentation on CI in Spain? Fortunately I’ll be in our backyard, Richmond, next month to talk about CI with a Ruby flavor to CVREG: Central Virginia Ruby Enthusiasts Group.

Come to the CVREG presentation at Strategy Cafe on January 13th. More information, and a map, is available on CVREG’s upcoming events page.

ExpoQA Integracion Continua Wrap Up

Posted Monday, December 1st, 2008 by Eric Pugh




Last Friday I had the huge honor of presenting at ExpoQA 2008 in Madrid on the topic of Continuous Integration, or maybe I should say Integracion Continua since I gave it in Spanish!

I’ve posted the slides along with the transcription of the talk in Spanish on SlideShare:

Integracion Continua
View SlideShare document or Upload your own. (tags: expoqa2008 espanol)


A huge round of thanks needs to go out to Raynald Korchia and the rest of the Sogeti crew for putting together this conference. It was wonderful to see such a large and diverse testing community in Spain, with what I guessed as around 250 people attending the conference, and a great set of vendors as well.

I really enjoyed spending time with the attendees and speakers, I learned a lot from your individual experiences in the fields of testing. I’m looking forward to getting more plugged into the world of software testing in Europe, and especially some of the upcoming conferences in Spain that people mentioned.

And lastly, a huge amount of thanks needs to go to my wife Kate, with whom I spent hours and hours over bottles of Riojan wine transcribing my badly formed thoughts in Spanish into proper Castellano, and generally making sure my presentation was a success!