The extension involved 3m deep trenches being dug and filled with concrete to underpin a garden wall and provide a solid foundation over a sewer pipe. The position of lights and sockets and radiators had to be chosen. The kitchen needed designing, the tap, sink, hob, cooker hood and oven sourced, blinds made, walls painted flooring laid etc. A party wall surveyor was needed to document all the existing cracks and defects in our property and that of our neighbour. A structural engineer was needed to calculate steel beam strengths, foundation depths and so forth. Planning permission was needed and everything had to be approved by building control. All of this of course was on top of the obvious need for an architect to draw up plans and a builder to implement them.
Whist the extension has been exciting in its own right, it has also been interesting from a technical point of view too. There is just so much more to it than drawing up plans and building something to those plans. The thousand little extra details are what turn it from an expensive box into an extension of the home. It isn’t just about the features, such as the dimensions and what the room is used for. It’s also about the flow of the kitchen, the material for the worktops and desk, the wall colour, the floor type. It’s about it being an enjoyable place to spend our time. In short, it’s all about the user experience, specifically it’s about a good experience for myself and my family. Others may dislike it: they may prefer less art on the walls and more kitchen gadgets for example. There are also aspects of the decoration that have challenged my prejudices too. For example, the walls are painted plain white; something I’ve sworn over the years that I’d never do. Yet it works because there is so much else in the space that little of the walls show and the white works well.
Drawing parallels is always a risky thing to do, for they can often be highly contrived and exist only in the mind of the author desperate to make the link. However I feel there are strong parallels between our extension and many of my blog posts this year. I’m sure that this is no coincidence. Just as I had to pay attention to detail with the build, so I seem to have paid a lot of attention to the details of the AS3 language this year, with my AS4 feature series (Passing accessors by reference, Implied interfaces, Java-style enums etc.) As well as challenging my decorating sacred cows, I’ve also challenged the use of the private keyword and questioned whether OO does inheritance wrongly. Just as I gave in on the white walls, so I gave in on old practices: private is consigned to the “goto” scrapheap in my code these days, and quite frankly the lack of “duck typing” in AS3 inheritance now bugs me greatly. Most importantly though, just as I’ve learned there is far more to building an extension than employing a builder, so there is far more to software development than writing code. I’ve covered topics from suggesting people listen to podcasts to become better developers, through the importance of user testing feedback to advice on good exception handling practice.
As well as the extension, another exciting personal experience for me this year has been my adventures into the world of public speaking. I’ve had the pleasure of presenting talks on ASDoc, Test Orientated Development (TOD) and AIR for Android to the great folk at the dotBrighton user group. The greatest event of the year for me though was my three minutes on stage at Flash on the Beach, pointing out just how open Flash is these days. And that brings me to my last topic in this retrospective: the Apple vs Adobe debarcle.
Last year I wrote a piece in which I questioned whether Apple was becoming the new Microsoft, due to their dodgy practices that benefited themselves and caused numerous problems for everyone else. Their behaviour toward the Flash community this year has proven my point beyond all doubt to my mind: Apple are not a nice company and they behave just like Microsoft did in the dark days of the 80s and 90s. That behaviour though ironically has been great for the whole industry, not just Apple.
Another winner of Apple’s actions was Adobe AIR. My anti-Flash on the iPhone blog post was largely an attack on Adobe’s obsession with the flash player in the browser. Apple’s actions appear to have driven them to put more effort into flash as a way of doing mobile app development. With the iPhone packager, AIR and the Flex Hero framework, I can develop a Flex application that can run on Windows, OS X, Linux, Android, the iPad, the iPhone and the Blackberry Playbook. If Apple hadn’t gone all “anti-Flash” on us, I doubt this would have occurred, at least not this year.
2010 has been an exciting year for me. The year ends with a lot of unfinished business for me though. I have a bunch of half finished, poorly documented projects – AS3Enums, WiseMVC and Immutables – that I must finish off. I have also started developing my first commercial venture, an application set for greatly enhancing and improving upon the experience offered by ASDoc. Also during the year I have bought books on Scala and Groovy and have failed to fully read either, not use the knowledge I have gained. So as 2010 draws to a close, my technical diary for 2011 is already filling up fast. Here’s hoping next year is as good as this one.