Sunday, October 03, 2010

Remembering a dark day ...

It must have been late June 2000, I had been in my first post university job for only a couple of weeks. The 2 main developers at the company were PhD students and desperately want to get back to their research but the current project had been eating more and more of their time until it was all they did.

In the late June 2000 timeframe we are talking about they finally declared the system good enough to launch, so it did. They immediately left the company to complete their research and I remained to maintain the system. Me, a newbie to "professional" development, new to Java and new to the rather large and complex code base they left behind.

For a couple of days things were fine. I tinkered with a few bugs and prepared the next release. That next fatal release when all of a sudden everything went wrong. Old bugs, from before I even started at the company, resurfaced. Nothing made sense and there was no one around that could help.

By about 3am I had managed to patch enough that the system was at least up if not fully functional. Over the next few days I patched bug after bug. Then one of the original developers came back, having put a decent amount of worked into his PhD. He looked over what had happened, the list of bugs that had seemingly returned from the dead and immediately realised what had happen.

You see there was no source control in place. So, to keep life simple, they had split the development into 2. While they both had a complete source to compile against, they would each only change one side of it.

This had worked through most of the development, until the day they left. When they put their source into a single folder for me, for the first time since starting. One developer put his source code in first, then the other put his in. Both his up to date correct half that he had been working on and his old incorrect copy of the other developer's half. Thus all of the bugs fixed in the previous weeks by developer 1 returned.


I recount this story because it has been in my mind of late. I have been putting a lot of effort into planning regression tests for a change I am implementing which first brought this story to mind. Also I was chatting to a developer the other day who was bemoaning bugs returning from the grave. Coincidentally I was also reminiscing with someone about horrendous problems we had on a project that did use source control, the variant of which turned out to be a costly mistake.

From my story and those of others in this area I take away 2 lessons that I try never to forget. Firstly, you must have source control, and an associated plan of how you will use it. Secondly, you cannot assume that simply having and using source control is the answer. While it may prevent the total disaster I presented above, I have seen many projects have source management issues even with source control in place. Be sure to review, on a regular basis, how you are using source control and whether it actually offers you the safety net you might assume it does.

Wednesday, September 29, 2010

Sad times in the Scorched Tortoise shell ...

For the past week I have been trying to resuscitate the iMac. A little over a week ago I came home to find the beach ball of doom and then a failure to reboot. Still some options to try before I am forced to concede that it is going to have to be an expensive out of warranty hardware fix.

I don't begrudge the machine having a failure such as this, it's only been powered down for about 3 weeks in total over the 3 years I've had it (1 week for a flat move and 2 weeks for our wedding). In that time it's been working hard.

At least I don't have any worries about data loss. My multiple backup strategy is putting my mind to rest about that.

In the meantime I'm not feeling out of touch, or really without computer in any way. I've got the iPhone and iPad which cover most things and the old iBook G4 is being pressed back into service for the other essentials. It's impressive how many developers are still ensuring their applications are Universal.

I'll let you know how things progress, and hopefully that it turns out to be nothing too drastic.

Tuesday, June 15, 2010

The new Mac Mini is very nice ...

... just have to keep telling myself that I don't need one and can't afford it.

Saturday, June 12, 2010

So how are things with you?

As has become normal for the last few years it's been quite a while since I last blogged. I hope 2010 has been as good for you all as it's been for me so far. Thought I'd post an update on what's been going on for me this year.

The day job that I moved to in September last year is still proving to be a great choice for me. Great people, interesting work (gobs of data flying around all the time) and relaxed, meaning it's the first job that i'm not stressing about when I'm not there.

Launched a couple of project so far this year and working on 2 more that should prove interesting and important to various people in the organisation.

We managed to get the new version of complete for the World Cup and people seem to be having a good time.

The iPad arrived (blogging from it right now) and the new iPhone is coming later this month, so my gadget habit is progressing nicely.

With the relaunch of out of the way I've got a weekend free to perform some much needed maintenance on the iMac, so I've left iDefrag doing it's thing and escaped to Starbucks where i am writing this.

All in all life is pretty good right now, I hope it is for you all. I'm going t try to post a little more here, and make some changes to the blog in the coming months. Don't know what people want to see on here but I'll probably write about the SB relaunch process and what i learned from that and the iPad/iOS situation.

Sunday, January 10, 2010

New year, new work/fun ...

It's been a pretty good start to 2010 for me. At the day job there was a major update that one of our data suppliers was doing between 31/12/2009 and 1/1/2010. When I say major, I mean a complete change required to every system that touches that data. Several teams had been spending the better part of 6 months preparing. Having only recently joined I wasn't deeply involved, I just helped prep and perform testing, but I was still very glad when everything went as planned.

As for my other main project things have been progressing well. I've implemented over half of the new design and had a wonderful few weeks discovering that JQuery really is one of the most wonderful things ever. Making the use of Javascript in browsers "just work" has made my life much easier and enabled me to implement far more interactive components than I had planned. I tip my hat to them.

Even though things have been going well I'm still a little bit behind schedule on the project, so lots of effort over the next few weeks to catch up. But, as I described in my last post ("In the zone ...") it is much more joyous for me this time around. This is also because I have made it much easier on myself. I spent a little bit of cash to pick up a second monitor (an Apple Cinema Display 23" second hand) and a new office chair/foot rest. The combination of these things makes working at home a lot easier than it used to.

Hopefully this will all have been a good investment and I can finish the new design so the rest of the team can relaunch the site and I can spend a little time on some new personal projects. I hope you are looking forward to the rest of 2010 as much as I am.