2011 year in review
So it’s another year and time for another year in review. It’s actually quite surprising to really look back on a year, I was taken aback by just how long it actually was. It seems like such an incredibly short thing but now as I look at my Pinboard, Twitter, Github and blog post histories these seem like they happened quite a while ago and so much has changed.
Anyways I’m going to start this of with the raw numbers:
- Number of blog posts: 28 - Well 29 if you count this one
- Number of different OSS projects contributed too 8
- Number of OSS projects started 2 - like Mixpanel.NET
- Number of startup ideas in progress 2
- Number of talks given 2
- Number of blog posts on the HN front page 1 - #6
- Number of children 1
It’s been a busy year, if I do say so myself (which clearly I do). Obviously, we had a baby, you’ll notice I didn’t blog about it a lot (you’re welcome). A child really is quite a wondrous thing to behold, but they do make it much harder to find time in the day for everything you’ve planned to get done. Though this sort of works itself out because you sleep far, far less so it’s almost a wash if you can manage to stave of complete and total babbling insanity just long enough to do something productive. I feel I had a good year for blog posts, I didn’t come close to my goal of 50, but I did keep it fairly consistent considering a new baby, working on and launching a brand new product with iQmetrix and a lot of other things. What I do feel I did was up the quality of these posts quite a bit, and one even managed to make it to about #6 on HN for a few hours. That’s a first for me.
A few of my personal favorites from this year:
- MVP doesn’t mean what you think
- Cargo cult of Steve Jobs
- The startup Rush - The one that made HN
- Microsoft and Open Source
- No one wants to buy your iterations
- Vim from start to finish
- Time for a corporate culture revolution?
I set out with a small list of goals last year and I feel did ok. I did learn basic TDD/BDD skills using Ruby, to be honest, it really wasn’t much of a stretch from C#, just a matter of getting used to the tooling. I did not finish reading 7 languages in 7 weeks (I did manage to finish the Erlang part though). I did manage a fair amount of time contributing to OSS, I didn’t keep track of it but I’m still happy with the results. I didn’t write a single book review, and I definitely did not manage to go to the gym, but nonetheless did manage to start some kind of growth above my waist which I’m calling my beer muscle.
I’ve decided not to spend as much time setting goals for the year. I don’t really feel like it has been these goals that have motivated me, but rather just a day to day focus on improving on something until I’m satisfied with it. I thought I would focus on doing more speaking, but in the end only bothered to submit one talk. What I realized is I don’t want to give more talks (it isn’t really a challenge to get accepted to speak at a conference even if your talk sucks) what I want is to take the time to do better talks. I’ve found the same is true for blogging, while I respect and admire Ayende’s “just blog it” attitude, I’ve noticed that more and more of the blog posts I really enjoy on HN clearly have a lot more than 10-20 minutes of effort spent on them. It is that thoughtfulness and time the author spent editing that make them a pleasure to read and make them valuable to those who read them. That is more important to me than 50+ posts in a year. For everything else, there’s Twitter.
So for this year most of my goals will simply be to make small improvements in the things I’m already working on. More, and hopefully better, contributions to OSS projects that I like and find useful. Some better blog posts and hopefully a couple more will make the HN front page. In the first quarter of this year I absolutely plan to have launched the first startup idea my wife and I have been working on. Ummm… I do think I’ll keep the number of children at 1 for now though.
Anyways enough about what I did, here are some of my other favorites from last year:
Best Blog Posts
- Return to .NET - Warning significant satire ahead
- The trouble with REST API’s - not quite the same problem with tribbles
- 10 papers every programmer should read - Have I read them? No. But I’m sure they are great!
- Startup escape path - This post gave me some good ideas for personal goals in 2012, some I’ve already accomplished
- 33 unusual tips to becoming a good writer - How am I doing?
- How to be the luckiest guy on the planet in 4 easy steps - The importance of defining a daily practice
- Velocity is killing agility - One might argue its already dead because of stuff like this
- I drink your milkshake - Simple ideas to poach from your competition
- Pace not deadlines - If you manage a team, project or business then READ THIS!
- Slide design for Developers - Should say slide design for EVERYONE (especially you, powerpoint guy)
- How Github works - Zach has a bunch of posts on this, I suggest reading them all
There were definitely a few more but it will take me hours to dig up all of them.
Without a doubt The Lean Startup (after months of ignorantly talking about the concept authoritatively). It is pretty much as game changing as it is hyped up to be, but also still over hyped in the same way that has made Agile such a cargo cult economy. I think it’s a crucial book to read, but even more crucial is understanding why you can’t simply imitate the behaviours and choices of the startups and anecdotes described in the book. To fail to take that lesson away from the book is to completely fail to learn anything from it. I’m looking forward to reading a couple of similar books now like Four Steps to the Epiphany and Running Lean. I may even write some reviews (don’t count on it).
For me this was easily Scott Bellware’s talk at Agile Vancouver. He spoke about reconsidering the value of automated testing and TDD, not necessarily to say that it has no value, but that automated tests are not valuable in and of themselves. Having tests is not a pre-requisite for having quality, or even good code. Rather they represent a coupling to code which can have a significant negative effect if the code itself is not of good quality. This has made be question treating TDD as a practice by itself rather than a tool and a part of a process and begin to see how, in some ways, it has perhaps been oversold.
He talked a about designing systems with sufficient autonomous control to them, interfaces which provide developers and testers with the ability to conveniently control the system to maximize the efficiency of autonomous testing and validation of software and quality, rather than relying mostly on automated testing, or brute force manual validation. The Agile Vancouver website should have a video of it available in the near future. I highly recommend watching it.