donderdag 3 januari 2008


Over Christmas I created a small program called rbuilder.
I needed a continuous build system that was simple enough, kind of like build-o-matic style of autobuilder but with a gtk interface.

Here's the problem. We (Willem van den Ende) and I do a training course on agile development with a lot of hands on development. So we bring laptops, setup a network and a build server and need to a build console on a beamer. Using a web interface would interfere with the firewatir test that we sometimes run so we want a gtk interface. Moreover i the network fails (it sometimes does) we want a plan-b that let trainee-pairs to run a continuous build and a software archive to run locally on their laptops. A nice little system tray icon should then show the build status.
Vera Peeters, Pascal van Cauwenberghe and me, needed the same thing for some other course as well.

Well here it is - a simple gtk - build server that can monitor multiple archives simultaneously. It written in ruby and installable as a gem. Have a look at the screen cast (soundless) to get an impression and download it to try it out yourself.

Download rbuilder gem: rbuilder-0.0.1.gem

dinsdag 30 oktober 2007

It's people!

I am a programmer, a software developer, an amature plumber, an electrician, a husband, a dad, a son a brother (twice) and a really bad guitar player.
Sometimes i am a software architect, a team lead, a scrum master, a trainer, a coach or rather mentor but only temporarily. I am these things and much more, but i am NOT A RESOURCE. I am a person.

This may seem like a cry out of frustration, but it is nothing like that. This is not about me.

Resources are things
Referring to people in software development as resources is bad. Really bad. It neglects the fact that the people in a software project are essential. Not just because they are the workers, the craftsman, but especially because they are human rather than things. People need to be recognized, valued, acknowledged. Resources are things. Referring to people as things does not really add in recognition or value.

Resources do not learn and do not communicate
People in a software project are learning, communicating beings. The effectiveness in which they learn and communicate can make or break a project. Referring to them as resources neglects this aspect as well.

Resources should be managed by centralized commmand and controlled
The people or workers in a project are skilled intelligent beings, capable of making decisions. They are the essential components of decentralized control. They are the eyes in a project, they are the hands in a project, and coincidentally have intelligence and skills too. They should be the ones to make decisions on the way they work and what to do next. Centralized control is simply not effective.
Resources on the other hand are non-intelligent things at best capable to perform simple standardized tasks. Resources should be managed by centralized command and control.

Resource refer to cost
People are valuable proactive beings (if in the right place and valued). They like to be good citizens and can help your business. They take initiative is initiative is valued. They serve the business goals if they are acknowledged for that. They do not just cost money.
Resources do mainly represent costs. The word is mainly used may (project management) in budgeting and planning projects. No doubt, costs are important in a project. Development cost money and costs should be minimized. However just focusing on costs makes one loose sight of value.

I could go on like this for a while, I'd probably bore you. Others have put this in writing much more elegantly. At least read Cockburns article.

One more thing:
You may say that wording is not important. You know that people are important, but resource is such a widely used and convenient word. It seems a bit silly to try to avoid it.
The problem is that language is really powerful. Words carry loads of information. Words can be really powerful, yet this power can be subtle; invisible almost. Bad language can silently drive people towards behaviour.
Resource used to refer to people is in my opinion an example of a word driving towards counterproductive behaviour.