What do you mean, 'integrate'?

Here's my entry for the Atlassian Giveaway. I'm not eligible to win a prize, but I'm sharing the tale anyway.

Sometime in the 90's a former employer of mine had an Intranet. The intranet grew from a simple repository of pages, to something with much more bling: there was an address book, a search engine, and some simple tools for trading, written in HTML and liberally mixed in scripting languages.

A few years later, the trading tools were coping with millions of pounds' worth of business. There was concern that the present version control system wasn't adequate for the task, so they used a popular enterprise tool. One of the developers cheerfully took everything that was in the web root of the Intranet server, and checked it into the new VCS. Job done.

So there was now a project that was approximately one gigabyte in size. To change content, the business would make a request, a developer would make the change, and place the related files onto a shared filesystem. He or she would raise a change request to go past the change control board, and if it were approved, the operations team would drop the files into the production webroot. So where's the horror?

Because the project was so big, the developers wouldn't use branches to track what was in development and what was in production. So they made the changes locally, and kept them on their PC's. When a change went into production they would check the files back in. So integration happened *after* a change went live. Which isn't the normal order of things.

The other terrifying thing was the sheer number of URLs inside the code that had to be edited at deploy time. Deploying to 'test.company.com' meant replacing every url inside the code, by hand.

Why was the project so big? It was composed of:

  • dynamically generated print output,
  • digital photos from the last 7 years
  • documentation from long-dead projects
  • general cruft

About 10% of the project was useful code. I got approval to fix a lot of this when the business tested a feature, clicked a link, and hence made test trades in a production system. Ouch.

Think you can share a tale and win a T-shirt? Leave or a comment or send an email to swag@build-doctor.com. Hurry though, we're closing entries soon!


DevOps New Zealand