Further thoughts on the Big Ball of Mud

In a previous post about the Big Ball of Mud I talked about how we’ve gone about splitting it down into smaller chunks. Sometimes in order to change something you have to make a start. It doesn’t matter if it is the right place or it turns out to be the wrong place the important thing is to make that start. That’s what we did, and with hindsight we made some pretty good divisions.

Now, we can start working on each project. One of the projects held all the code working with SharePoint. One of the goals of our project is to be able to move away from using SharePoint but we don’t have the luxury of writing a new product from scratch. Also I think such a move would be doomed. Better to make natural organic changes on a living working code-base rather than some gleaming theoretical model that isn’t making you any money.

I’ve not really explained that quite well but there is a debate over ‘Revolution’ versus ‘Evolution’ with regards to software. Do you completely scrap something and start again? Or do you work with what you have gradually pushing it towards what you want it to be? There’s pros and cons for both.

Back to the SharePoint project. One of the good things about moving all the SharePoint stuff into one project is that I can concentrate solely on it without worrying about how it’s affecting other parts ot our solution.

It’s all a bit slow going at the moment but the process is moving along.

Advertisements

Snow Falling on Cedars by David Guterson

There are some books that when you read them you say ‘I could do better than that’. There are some books you read where you say ‘I wish I’d written that’, and then there are some where you only have a longing. You wish you could but you know you can’t. There is no way that I could have written ‘The Shipping News’ or ‘Snow Falling on Cedars’, not because I’m a bad writer but simply because that idea (or related ones) have never entered my head.

The wonderful thing about ‘Snow Falling on Cedars’ is the pictures it paints. When it’s a really good book you immerse yourself in it. A really good book is much better than a film simply because it lasts longer and is not so intimidating. A lot of films are full of huge crashes of sound, long drawn-out action sequences. After two hours you start feeling numb. Two hours reading is a quieter experience but the emotion roller-coaster can be just as tumultuous.

I love the description in ‘Snow Falling on Cedars’. From the opening scene where I can picture the damp warmth of the courtroom, the caretaker cranking up the radiators, to the dry dusty prison camp where I can taste the dust and feel the discomfort from the heat and insanitary conditions. One other thing worth highlighting about the description is that it doesn’t get in the way of the plot. The plot keeps moving but as it does we get a deep understanding of the characters. They come alive.

I could never have written ‘Snow Falling on Cedars’ because my life experiences have never really brought me into contact with Japanese Americans and their experiences in the war. I grew up in a mill-town in the north-west of England. The closest I ever got to a fisherman was watching Captain Birdseye on television commercials. However,. I certainly can relate to Hatsue and Ishmael. The intensity of feelings that happens in youth. The over-whelming blinding feeling of being completely smitten. I can understand and appreciate all the different characters, why they act as they do. I can sympathise with Ishmael. I feel very sorry for him.

I first heard about this book via a podcast by the World Book Club on the BBC World Service. It was a great way to be introduced to it. To listen to David Guterson describe his influences and how he came to write this book.

I haven’t yet watched the film. Part of me doesn’t want to do so. Some adaptations can be very disappointing. Perhaps though, it’ll be interesting to see how the adaptation has been made, what parts have been kept, which parts added.

Anyway I was writing this entry whilst baking a cake for my son to take to school tomorrow. It’s out of the oven now and making the house smell rather nice. I almost feel like sampling some of it!

What am I Testing?

This morning I read thisĀ post by Jimmy Bogard on Los Techies. To me he seems to be saying why write tests for the three lines of code in a controller action, when the real work, the important stuff if you like, is in his PostsRepository? The best point he makes is ask the question ‘What am I testing?’. Am I writing tests for the sake of writing tests or do they have a real purpose.

Now, for me I’d write basic tests for this controller. As one of the commentators says the real value for those tests are in four years time. Although there isn’t a lot of functionality in the controller method, there are still assumptions or rather expectations. When the behaviour of the controller action is changed, then we want tests that tell us whether our expectations are being met.

A lot of this seems a bit ‘airy-fairy’ and arguing the toss, but I’m hoping I get a point across. Tests in any discipline, whether it be engineering, science, medicine or software are there for a purpose. Is this product working as I expect?