After many years (about 3 or 4) of promising to read this, and also a year or two of seeing the “coding horror” logo, I have finally got a copy of this on the Monday.

What is this ? This is Code Complete 2nd Edition by Steve McConnell, (the first now being hard to get hold of and, well superceded) which I obtained from my regular bookshop which was 2p more expensive then the usual place, but frankly has a much better bar 🙂

However this time I have forgone the usual plan of buy the book and sit reading up in the bar with some Tsing Tao. But I’m getting distracted…

I’ve just started this book, and already I’m wondering why I didn’t get pointed at this 5/6 years ago, or even when at university.

Obviously I’ll (hopefully) have a fully formed opinion at the end of this book, but if there is one thing I can take from the first 3 chapters, it is that the “One Size Fits All” approach which seems implicit in many methodologies and the lack of preparation for development does not work!

Ok, that’s an obvious statement, but seriously, how many places fail to really appreciate this ? Take a minute. When you start programming, do you really start coding, or do you actual spend a few minutes/hours setting up the environment, doing some design etc ? Did you do this by identifying it as a task or is it implicit ? If you didn’t do it, how long before you had to re-work something ? Imagine you take those few minutes and put them towards a coherent activity. Just investing a bit more time in this will save hours, weeks and potentially a lot of $$$ later.

I also have to say that as someone who has practiced Agile development, there was always something “not quite right” about the idea of mapping the approach to any project and “hoping” that re-factoring would scale the project to the desired outcome. Thankfully Steve McConnell is a lot more talented with words and managed to articulate the need for this. I would say if you are about to go down a road with Agile, bear this in mind:

Agile is still a “branded” methodology albeit with a toolkit, remember what you need, and see what it is you are doing, and what value Agile will give you, and then use those tools.