I think encountered a new virus this week. No, its not the kind that infects computers, its the traditional kind which infects people, but in this case, not just any people – this virus only effects programmers.
When I say it is a new virus it isn’t strictly true – we as a sub-species of homosapien have actually been host to a more mild form of the virus (NIHS) ever since we first evolved. NIHS or Not Invented Here Syndrome occurs naturally when developers, despite perfectly viable alternatives opt to build a new piece of software which mimics the behaviour of existing software despite compelling commercial drivers just to use whatever comes off the shelf.
Many experts agree that NIHS can be controlled without drugs or shock therapy (personally, I prefer these methods). However the strain that I encountered this week may require ritual beating of the programmer.
You see, this week I saw a hibrid of the virus which exhibited the classic characteristics of NIHS, but the case became terminal because of a FUD complication. FUD or Fear, Uncertainty and Doubt is known to adversely affect the judgement of otherwise reasonable individuals.
In this particular instance I discovered that a team within an organisation had spent a significant amount of time building a build tool, which was driven out of an XML file. Believe it or not, I am not talking about MSBuild – they probably have good commercial reasons for build a replacement for NAnt such as VSTS.
This particular gem is a completely in house tool which has the potential to be functionally similar to NAnt. I say potential because to date the developers haven’t been able to replicate critical functionality like execution of common unit test systems such as NUnit or csUnit.
When I quizzed them why they chose to re-invent the wheel the reply was “because NAnt is open source”. Now, when we talk about open source we are really talking about licensing – lets put asside the political discussions. Open source comes in many shapes and sizes. NAnt is licensed under GPL so you would need to be careful about compiling it into your system – however it is perfectly safe to use for its intended purpose – which is a build tool.
Unfortunately, because we programmers are natural carriers of NIHS, adding FUD in this instance was like putting petrol on the fire. I’m calling this one NIHSFUD – I would love to hear for similar experiences.