Archive for March, 2008|Monthly archive page

Why it is hard to find good Software Developers

I am currently reading Gunter Dueck‘s newest book and I found a reasonable explanation why it is currently so hard to find good Software Developers: he describes a interesting article by George A. Akerlof, The Market for “Lemons” Quality Uncertainty and the Market Mechanism, which simplified tells us why asymmetrically information can destroy a market. So my thoughts here are that this is maybe a reason why it is currently very hard to find good people: most companies have no knowledge about how to distinguish between different qualities of work and why it can make sometimes more impact as “process re-engineering”. For this reason, they do not know how they can evaluate the market and they expected on the over side that a lot of “lemons” are there, mostly they compare by price. The article tells us that in this situation the market loose the really valuable people, because they either have to sell them self on same low level or they have to leave the market at all (and become managers, consultants or freelancers).
May be this thought is a bit far fetched but it is definitely the best explanation I’ve found so far because the currently the market for above sub-standard Software Developers is in a imbalance.

Singularity

These days a lot happens in the field of the Microsoft Research Project Singularity: the source is finally available from Codeplex! Why is this project exciting? It is a research playground to test ideas such as using virtual machines like the CLR on the level normally occupied by C or assembler (hey, device drivers in C# are definetly more readable). Also a lot of concepts such as contracts are inherited from Spec# and used for guarding most system services. Because until now only interviews take place (the last one on Software Engineering Radio with Markus Völter and Galen Hunt), so look at actual working code is amazing.
I’m sure anyone who is interested in novel operating system ideas and want not explore something like Minix should download the source. And I’m sure, also any other developer will get some new ideas from the source.

A great build server

For efficient software development you need a reliable and very flexible Continuous Integration server. Most people know CruiseControl(.Net) but everyone who used it knows it is very flexible but has it’s limitations and well, it has a bit “uncool” fronted. After searching for a new one I tried out Jetbrains TeamCity once again. The first version had not provided enough new features to make a switch, but the current version 3.0 (and upcoming 3.1) has features not easily found elsewhere:

  • The concept of build agents: you can install small Java based build agents on various platform (in my case a x64 Windows, a x64 Linux and a IA64 Linux based server), all managed by a single build server. Checkout can take place on the server or on any agent host if SVN is installed there.
  • Remote builds: any user can trigger a remote build from his workstation without commit his code to SVN.
  • Targets ANT, Maven2, NAnt, MSBuild, JUnit, TestNG, NUnit, Visual Studio 2003-2008, IntelliJ projects and simple shell scripts.
  • The Web GUI is cool and workable (as well as the integration in Eclipse, Visual Studio or the Tray).
  • Can integrate third party reports and integrate with any build script.
  • And the professional version is free 😉

So give TeamCity a try if the professional version is enough for your purpose. It solves a lot of problems very elegant and you definitely need less time to manage it.