This is the log of a sample project from a small band of software engineers eager to learn better ways of working and new technologies. We've decided to use .NET 3.0 to create a Battleships game.

The Quest For The Perfect Project

Friday, 19 January 2007


Welcome to the blog for my latest project. This is a joint project between myself and a couple of colleagues. We're interested in brushing up our C# (having not had much cause to use it professionally recently) as well as learning about some new technologies (e.g. XAML and Windows Presentation Foundation).

We want to do a project right, from the start. That doesn't mean the code will be perfect, but we're going to try to use appropriate patterns, tools, best practices etc to do the best we can. We have no time limits to worry about, so we can experiment with different techniques without risk of anything other than looking stupid.

This blog is meant to be a sort of diary of the project. If we're conscientious in keeping it up to date, we should be able to look back and see where we've made mistakes, where up-front work has paid off and where we we've wasted time by thinking we know more than we do, etc. In short, don't expect this blog to be a guide to "doing it right" - only expect it to be the experiences of people trying to "do it right" in a recreational context.

The project we've chosen is the age-old game of battleships. We don't need to be innovative in creating a new and marvellous game, just implementing existing ideas - any innovation (and don't expect too much) will be in the software itself. We're using Windows Presentation Foundation (part of .NET 3.0) for the presentation layer, and may well end up using Windows Communication Foundation (another part) for one of the supported protocols.

The project is open source, under a BSD licence (we were going to go with public domain, but when I was creating the project I was slightly concerned about binaries in the source repository which weren't in the public domain). We're using SourceForge for hosting, and Subversion for source control. Feel free to look at the project home page - but there's not a lot there yet.

We've no idea how fast the project will go, but we'll keep anyone interested posted here...