Monthly Archives: April 2009

We reap the code we sow.

Just over six years ago I was working on a project with a team of developers who were new to the .NET platform. The project was to develop what was essentially a CRM system optimised for the processes of a utility company. I was involved only in the first phase of the project where we were charged with delivering the backbone of the solution including some framework components to assist development moving forward.

Because it was .NET 1.0 we didn’t have all of the features which meant we built more scaffolding than you would these days. It wasn’t too bad but you never know when building this kind of stuff whether it is going to come back and bite you in the future.

This week I visited the same client on a related piece of work and got the opportunity to see what had become of the code base that we created all those years ago. Surprisingly the architecture hadn’t eroded too much and had been well maintained. Going through the code I was able to spot bits and pieces that I had written all those years ago as my knowledge of how it all hung together came flooding back.

Fortunately because the structure had been kept in tact it is going to be a straight forward process to bring the code-base into Team Foundation Server (from Visual SourceSafe) which is my current scope of work.

It is a good day when you can look at code you wrote six plus years ago and not look at it with horror. The big thing I would do though is collapse a large number of assemblies into just five or six (there are about 100+ assemblies in the overall system). Back then it made sense to maintain modularity, but the dependency management is a bit tricky.

Code Camp Oz 2009: Aftermath

I posted my sign-off for Code Camp Oz yesterday afternoon but a few folks have posted up some material (not an exhaustive list but will let you get started:

Most folks are posting links and stuff to the #ccoz09 hashtag so check out that as well. I got home at about 10pm last night after the drive back and slept the best I had in months 🙂

Code Camp Oz 2009: Day 2

In to the home stretch at Code Camp Oz 2009 now. David Burela is currently on stage (just got applause for his dev fabric demo) then we have Corneliu I. Tusnea giving us some more SaaS love.

We started out the day with a panel with Graeme Strange, Adam Cogan and Roger Lawrence which was pretty slow to get started but got a little bit more animated when we started talking about things like certification and estimation. I thought there was some good advice given out overall.

So we are pretty much done for the year so I am going to sign off and enjoy the last few moments, but I just wanted to thank Charles Sturt University, Microsoft (DPE and MVP teams) and Readify for sponsoring the event as well as all of the presenters.

  • Nick Randolph
  • Chris Anderson
  • Adam Cogan (panelist and speaker)
  • Liam McLennan
  • Chris Hewitt
  • David Kean
  • Paul Stovell
  • Omar Besiso
  • Bill Chesnut
  • Steve Godbold
  • Graeme Strange (panelist)
  • Roger Lawrence (panelist)
  • Justin King
  • Michael O’Dea-Jones
  • David Burela
  • Corneliu I. Tusnea

I’d also like to thank all the attendees who made the trek to Wagga Wagga. The sense of community at the event has been fantastic. See you all next year!

Code Camp Oz 2009: Day 1

Well that is day one of Code Camp Oz 2009 over. We got off to a shaky start when the AV system in the main hall failed to boot up. Apparently it was due to some storm activity in the area that tripped something to stop it turning itself on when the day started.

Anyway – we ended up having the first two sessions for the day in the smaller rooms in the Wal Fife building before the AV guy came and fixes things up for us – then we were cooking with gas!

The sessions were all great and I’d like to thank the presenters for taking the time to pull them together. I think that people got a lot out of the day and we covered topics such as:

After the day was complete we did a wine and cheese tasting with the CSU folks which is always great. I think I might need to stop by on the way out and get a bottle of their port.

Once the official agenda was out of the way some folks headed off to The Union Hotel, The Victoria Hotel and Amigos for some drinks. Our party ended up at a Thai Restaurant to get a bite to eat followed by another round of drinks at The Victoria Hotel (we started at The Union Hotel – some folks did it the other way around).

Anyway – finally time to get some shut-eye so that I can get up in the morning to MC the panel with Graeme Strange, Adam Cogan and now Roger Lawrence.

Code Camp Oz 2009: Day 0

David Burela and I drove up from Melbourne today to Wagga Wagga to attend Code Camp Oz 2009. This is the fifth Code Camp Oz so its good to see the event going strong after five years.

Tonight there was just an informal gathering at the Golden Seasons restaurant and it was good to see so many people turn up despite the late notice about it. Things kick off tomorrow at 8am so I need to get some shut eye but I am looking forward to a good day.

Hopefully the weather is good to us, on the way up we drove through a few pretty serious downfalls of rain which reduced visibility quite a bit. That said, I don’t mind a bit of rain it has been so long since we got a good downpour and either way the event will go ahead, we can always find some undercover spots for people to eat their Pizza at lunch time 🙂

Deploy Early and Often

I’m currently sitting on the sidelines of a project watching a bit of a train-wreck in action. The problem isn’t because the code is bad, or because the people delivering the project are poor developers, but rather because an important step was missed at the beginning of the project – deployment.

I am a firm believer that every project should, as its first step clear the throat of its deployment pipeline. You might think that it is important to deliver large wads of functionality early in the project, but it isn’t.

Experience tells me that you can have the best possible code base, but unless you exercise the deployment muscle regularly you are going to end up with a long and protracted deployment headache at the end of the project where you encounter every possible deployment issue.

Unfortunately it was too late to side step that for this project because predictably, the thing blowing out the schedule is deployment headaches.

By deploying early you force all the environments that your code is promoted through to snap to shape. My recommendation for teams starting out is that their first release should be light on features but heavy on work to make sure you can release within a few hours.

Of course having the right tools for the job can make this a bit easier and its one of the reasons that we developed TFS Deployer.