Developer communities in the Netherlands

July last year, I moved to the Netherlands to join Xebia Nederland after working at Xebia India for a year.

There were a few different reasons for the move, but one thing that I was looking forward to personally was a more vibrant developer community. In spite of the huge number of developers in India, there are not that many hard core developer events or communities. What events there are, are geared towards marketing or propagation of latest buzzwords be they Agile, Lean, or Cloud or something else. And Malaysia before that wasn’t any better either.

In contrast, in the Netherlands, I have been to a whole lot of programming groups and events in just six months РDevoxx 2010, and a fair few NL NoSQL group meetups. Not to mention such events hosted by Xebia itself Рmany excellent Xebia knowledge exchange sessions and tech rallies. A few months ago, we had James Coplien come in for two days to talk about lean architecture and organizational patterns. During one of the last tech rallies, Dan North dropped by for a while and talked about deliberate discovery and his other (post agile?) ideas. In short, the developer in me has been having a rocking time. Let us see what the year 2011 brings!

On being a programmer in India

Early in 2009, we moved to India for a while after having lived in Malaysia for over 6 years. This was also the first time I really got to work in software development in India (not counting my very first job which I no longer count in my experience).

Now, I worked at a great place and learnt a lot in the year I was there, not to mention many new friends I made. But there was one thing I realized while there that will make me think twice about moving to India again. You see, if you are working in a services company and most of the time you are working for clients in Europe or US, the main reason they are coming to India is to save costs.

What that means for you as a programmer is that there is an upper bound on how much the client will pay for you – be it USD 25, 35 or 50. Past that limit, it does not matter how good you are, your company cannot bill you at a higher rate. The reason being that most of the time, for the client, you are basically a guy with 6 years of experience in technology X (or 8 year or whatever).

Of course, there are developers in India who are getting paid the same as the developers in US. But not in a services company. They are probably working in certain product companies, or through their existing network, or on their own startups. You can get what you believe you are worth only if the client is hiring “You” and not just an “X years of experience” guy. This is something I will have to think really hard about if I ever move to India again.

Pivotal Tracker – agile project planning

A mention from a colleague made me look up Pivotal Tracker. It looks like a really nice tool for planning Scrums. We are using Version 1 on our current project, and I hate that beast. In comparison, Pivotal Tracker’s clean, usable interface looks really great.

Pivotal-Tracker.png

I created a small test project to check it out. It is a somewhat opinionated software, and may not do some of the things that you expect it to do. For example, by default, there is no option to break down a story into tasks, or to assign points to bugs and technical tasks, but you can change that setting on a per-project basis if you want to. Check out their help section for other things it can or cannot do – Pivotal Tracker help.
And it is free with no limitations! What more can you ask for, go check it out today.

Another good write up on Pivotal Tracker –

Helping web developers and operations bridge the deployment gap
Thoughtworks Mingle vs. Pivotal Labs Tracker.

Managing CruiseControl configuration

One of the pains of using CruiseControl is that setting up and configuring it is not very intuitive, especially when you only need to change it every six months or after a hard disk crash.
Julian Simpson shows how to keep the CC configuration file in the version control system, and use a bootstrapper to apply the configuration whenever it changes – Configuring CruiseControl the CruiseControl way.

Or, you can switch to Hudson ;)