My Developer Resolutions For 2010
Well, I did one of these last year and it helped give me some focus thoughout the year so I'm going to try it again. First off, here are some follow-ups to my resolutions of last year:
- Learn A New Build System - Learning a new build tool is not really something that you set out to learn I guess. The Radio 3 NAnt build scripts were working really well. I may not have learned a new tool but I definitely learned a few things about managing the build and organizing the scripts. One big change was that I delegated the compilation of the C# projects to MSBuild and used the .csproj files. Using the <csc /> tasks were getting confusing and there was a lot of duplication in the dependency references.
- Implement a Continuous Integration Setup - I first tried CruiseControl.Net but configuring it was such a chore (although it looks like it's gone through a bit of an overhaul). I then tried out TeamCity. I didn't do anything fancy, but it was still good to have because it did catch a few bad checkins I did. I also rigged it to deploy the site to the staging server upon every commit. One thing I learned is that your build machine needs to be fast. It was irritating for a build to take 30s on my local machine but 5 minutes on the build machine.
- Change Version Control System - To learn git I created my own little "code kata" project and feel comfortable enough using git now. I've only used it for solo development so I can't say how comfortable I would be using it with multiple developers.
Development Goals for 2010:
My last few years as a developer were a wild, misdirected, and spastic. I really got into just doing things and not following more disciplined methods of software writing. With 4 1/2 years of code written for CBC Radio 3 I learned how my style was beginning to weigh me down. I can understand the term technical debt now. One eye opener for me was the first thing I wrote with tests (full integration tests that hit the DB) saved me when I had to fix a bug. The code was written over 2 years ago and had lots of complex logic. So this year will be the year of discipline. I feel my technical knowledge is strong but it's the management side (what else would you call it?) that needs to step it up a bit.
Test Driven Design
TDD is a development discipline that I believe in. What I've found though is that it's hard t especially without anyone really showing you the ropes. The way it changes how you code, and the design of your code requires discipline to keep at it. I've attempted to write some stuff test first but I eventually go back to writing the code that I think should be there instead of writing fixtures to drive out that design. I hope I get to learn a lot more about this with my new job with ThoughtWorks.
Mouseless Computing
This also includes using the console a lot more. I actually have a plan for this too... I am going to write a little application that creates desktop background images with shortcuts on it. The rational for going mouseless is that it's a huge productivity booster. It's like any activity that requires a bit of dexterity, you just need to create the muscle memory and then you don't think about it anymore.
OSS Participation
One of the things I love the most about my job is the community around software and computers. I don't know of any other career choice where everyone loves to talk shop. Being involved an OSS project is another way to learn to be disciplined, and who knows, it would be cool to work on a project that takes off too. Then again even the most minor code submissions are quite gratifying
Complete small project in different dev stack
I've been living in a .Net bubble for the last 5 years and want to try out new things. This is my window outside the "discipline" focus of this year. While in .Net I will stick to disciplined development but outside of that I will allow myself to be curious and write what will probably be bad code in other languages. This allowance is to make me dive head first into new things without all the baggage of my current development process with .Net.
There you have it, my list for 2010. I think they are all achievable but also provide a lot of valuable experience to me as a developer. If you have your own list please share them with me here, or write your own blog entry for me to check out. Who doesn't like reading lists?
Similar Posts
- My Developer Resolutions For 2009
- A New Beginning (or Goodbye 20's, Hello 30's)
- Getting My Build and Release On

Comments
Justice~! on on 1.02.2010 at 11:10 PM
My New Years Development Resolution is to subscribe to your blog!! DONE! I feel more accomplished already!
Sohan on on 1.08.2010 at 12:54 PM
For a different dev stack other than .Net, I would suggest Ruby on Rails for web applications. I am sure your colleagues at thoughtworks will be able to tell you how exciting it is to be working on this framework, if you haven't done already.