Thursday, 1 November 2012

Perversions in Source Control


Working for a small company has some plus points and some bad points; one of the plus points is that the number of licences required for software is small.  You could argue that granting people more access than is necessary is a good thing, and the lack of paperwork that is required to make this happen is limited or non-existent.  Things actually happen when they need to rather than waiting around for the sherif to authorize things.

Source Control tools are readily available in both free and paid license form.  Having convinced the bean counters that this was completely free and wouldn’t cost them anytime to set it up, I was free to implement the much needed versioning control.

About 1 week after this was all implemented I came to realise it was all for nothing.  The fact that everyone still had full access to the database and files on the system in a live environment, people were still releasing stuff straight to live and completely negating the point of version control.

Lack of communication, are you part of the problem?

The Problem

An incident happened Today where I was reminded about the lack of communication and the harm it can do.  But it was also a reminder that people can be too quick to assign the blame.

I arrived early in the morning at work to find that some services on machines were not running and some jobs on SQL were still running that should have finished hours ago.

I was just about to start the services and kill the jobs when I suddenly had a thought about events from the day before.  I decided to ring my boss and ask him if he knew of a reason why the services were stopped.  His response went along the lines of this:


"Err yes, err, I had to errr, stop them, errr, because I needed to run one of the month end jobs again because it went out of sequence with another one"
"OK, I came in and saw that the services were stopped and was about to start them, I'm glad I checked now.  I didn't see an email though, are the others aware?"

At this point another of my work colleagues came along and he was filled in about the problems and what was bing done.

Later that day I went in to see a colleague and he was furious about what had happened earlier.  He said he'd spent hours trying to diagnose why things weren't running and slow performance on the network etc etc.  His main gripe being there was no communication to any of us that such a major decision / change had been made.

He was, of course correct.  My Boss hadn't said anything to anyone.  I told one person in passing after I found out and that person hadn't relayed the information to them etc despite the proximity of all people being so close.  However I couldn't help but feel that this guy was also part of the problem.  Like an employee trying to move a mountain one spoon/shovel at a time, they didn't stop for one minute to think whether they should be doing anything about it, or whether or not they should call someone to check.  I reminded them that communication goes both ways.



Proactive Solution

I always find it prudent now to be proactive and ask, "everything running OK?" to someone who is already in the office.  Rather than waiting to hear bad news or just assuming someone will eventually shout if I'm needed.