Having realised the value of a retrospective since working at 7digital I have decided to have a quarterly retrospective of the goals I set out for this year, just to see how I'm getting on. So here goes...
Learn another language
First up is my intention to broaden my horizons from a purely C# perspective and learn other types of languages, namely dynamic and functional. I'm happy to say I'm well on the way with this thanks to my job at 7digital, which really promotes learning. We've had a serious of Dojo's on F# in the last few months and I have a basic understanding of Ruby thanks to an introductory presentation from another member of the dev team.
Become more proficient at refactoring
This is definitely improving as I am now working with quite a lot of legacy code, which is without unit tests and breaks many of the SOLID principles. Let just say it's a real challenge and there is nothing like bad code to make you appreciate the value of good. I am also becoming a bit of a TDD/BDD fanatic!
Learn to apply design patterns
This was all about applying the theory and as mentioned in the last paragraph there is no shortage of that happening.
Learn more testing frameworks
Specifically I wanted to understand BDD and Cucumber. I put quite a bit of effort into this a few months ago, adapting the Cucumber Custom Formatter to help us communicate better with the business and subsequently carrying out a short presentation to the business on the benefits of agile acceptance testing. Most of what learned was from Gojko's book which I would highly recommend if you are struggling to articulate and convince your business the benefits of agile acceptance testing.
Read the following:
The book list has had the most changes as this is often so dependent upon the work you are doing at the time. As it happens I have started both Working Effectively with Legacy Code and Pragmatic Programmer but finished neither. It's a terrible habit of mine to have several books on the go at once and I'm not sure if it's to my benefit but I usually finish what I start so I'll get through them eventually. On the plus side I've read Bridging the Communication Gap and now have a copy of Jon Skeets C# book as after seeing him at both FOWA and DDD I figured if he can't help me understand the depths of my language of choice, no one can!
This is definitely where I haven't kept up my resolution. I did blog on the 7digital developer's blog but I'm still averaging less than one a month, which wasn't the plan. Must do better next time!
Attend more varied events
I'd say this is a work in progress. I have branched out a little attending talks on F# and CQRS, which are both subjects I know very little about.
Give something back
My original goal was to somehow help get more women in technology, but I have to admit I haven't yet figured out how. This is a bigger issue than the scope of this blog post but it is something I do want to put some effort into. First step, attend the next girl geek dinners event. On a positive note I continue to organise events for LDNUG, the last one being an event on mixing functional and OO approaches in C# at skillsmatter.
I think overall I am actually doing quite well at working through this years goals. I'm still happy with the current plan, the only additions/changes I would make would be to learn more about the latest CQRS buzz, but I plan to attend a talk by greg young at skillsmatter this very evening to see his take on it. I've already seen Udi Dahan and although it seemed interesting and certainly applicable to much that we do at 7digital I wasn't 100% convinced it could be easily applied to our current architecture. Perhaps Greg will shed even more light and I'll share my findings right here, helping me further achieve this years goals.