How Version-Controllable or Auto-Deployable is Your Software?
Just a quick rant here to say that companies need to be cognizant of source control and integration services when they design their software.
When they ship their software – especially server-based software that serves a dev platform for something else – they need to ask themselves, is our software easy to version control? Is it easy to automatically deploy?
Take a CMS that ships with a bunch of files that go in the Web root of the Web site. How easy it is to exclude the vendors files (that you don’t want to version) from your own (which you do)? Are they all in one directory, or are they spread all over the friggin’ place?
Vendors, before you ship, build a Web site with your own stuff, put it in SVN, then automatically deploy with via CruiseControl or Nant? How hard is it? That’s an important question to ask.
I have been wrestling for most of the day with a Web site built on Platform X. The files provided by the vendor are all over the place. The
fileset elements in my Nant scripts have dozens of includes and excludes as I dodge and weave around the vendors files to deploy what needs to be deployed and what doesn’t.
So, why don’t I just shove the whole thing in SVN? Because the way the vendor has written their software, they have over 11,000 files in the Web root. Do you have any idea how long that takes to check for modifications? So you pretty much have to ignore that section, and then make sure you don’t touch anything else in case you out of version sync when you deploy.
Wicked frustrated right now…