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...


Hi Jon - have you come across this Battleships game on the web?

Nice to bump into you again after more years than I care to remember!
We haven't actually looked at any other Battleships projects, to be honest. I'm sure if our main goal were to get a good Battleships game, then we would be looking to download rather than write one :)

The reasons for choosing Battleships were mostly to avoid having to actually innovate whilst still doing something recreational. It's also a fairly simple game, which is a good start!
I've been reading your Coding blog for a while, and I saw this blog linked on it today. I've been using C# for a few months coming from a lot of java experience...pretty much everything aside from Enterprise/Beans etc. I think that this is an awesome idea for a blog and look forward to reading it in the Feed parser I recently wrote in C#. Anyways, keep up the great work, I really enjoy your stuff.
Hi Jon, I admire your work in the community and think this is a great idea. I am thinking of encouraging staff at my work to follow along. Other than WPF, WCF, patterns and practises, what else will you be focusing on? I am guessing you will use TDD? What about DDD? Will you publish test cases? Any particular patterns you are aiming to prove/disprove or will you work those out as you go? I know the project is adhoc, but is there any particular development lifecycle you will use?
Steven Nagy
LOL - hi Jon, I enjoy reading your blog, I actually went out this past week to get my hands on a good WPF/WCF book and was also looking for a good project to work on for learning purposes. The shear size of the new namespaces and components is daunting .Net never stands still. I will be checking this blog regularly.
Doing a project "right" means matching the architecture/design to the abilities of the team.

If this is a project to learn from, then you could try numerous patterns but you wouldn't necessarily notice why they are better than other alternatives.

This is still something of a soft field and guidelines around which patterns to use when, especially in terms of non-functional requirements are still in formation.

Best of luck, though.
The RSS feeds on the sourceforge site are either broken, or just not working yet because there are no entries.
Yes, I'd expect RSS feeds for the project to only come alive as stuff actually happens.

To be honest, I expect this blog's RSS feed to be more useful - I can't imagine anything significant will happen on the project without a blog post to that effect.
Jon, the same ideas time to time comes to different persons :)

I've just read your post about that u started the new blog and realized that the same idea about "team blog" came to me on this week :) I and my mate started the team blog recently :)))

PS: seems that the teamblogs idea is becoming more and more popular :)

Add a comment