The meme that’s going around right now is the "What are you doing to become a better developer" started by Justice Gray. Though I haven’t been ‘tagged’ (that should help me to not have to ‘tag’ anyone else), I still think it’s important to lay out the plans on what I want to accomplish to achieve my goals.
I’ve written, before, about Developing a better developer. I still think things like reading books, blogs, writing pet projects (whether the reach completion or not) and the like are all important but I think that there are some larger issues I need to tackle in my journey to become better at what I do. Here are some things I want to do to help improve:
Continue to expose the code and strategies that I like to use for public evaluation
When I first started coding there was a point in which I needed to solicit help from the anonymous coding community. Back then it was good ol’ EFNet. I was asked to post the code I needed help with on a temporary web site for the participants in the chat room that were going to help me. When they saw the code they flamed the code pretty hard (fairly typical chatroom behavior) and never really got to helping me resolve the issue I was having. What I learned from that experience was that there’s always more to learn. Separate yourself from the code. This also helps with internalizing the concept of collective code ownership.
One of the pieces of code that I have published that tends to be popular is my implementation of a Money class. It has gone through at least 2 public updates since I originally published it; all a result of someone informing me (through email or conversation) of an alternative that helped to improve the code.
So, I think that if I continue to publish code and expose myself to critique, I’ll improve my ability to produce better code.
Engineer/Re-engineer My Schedule for Productivity
There are a few techniques that I have been reading in blogs from J.P. Boodhoo (Becoming Extreme – from the inside out, Getting Started Learning Some New Developer Habits, and Tips for becoming a more effective developer) and Steven Rockarts (Singletasking) that have really hit home and are ways that I want to work to improve my ability to remain focused and "in the zone" for longer periods of time.
Engineer/Re-engineer My Social Environment for Productivity/Success
Felicity Kendal is credited with "Success breeds success, and failure leads to a sort of fallow period".
I have worked in a number of environments where people have been disgruntled for one reason or another. I maintain that my image of a company is most strongly influenced by the sphere of interaction I have with the people I work with. That doesn’t mean that other departments and upper management don’t have influence. It just means that I am MOST strongly influenced by the people I work more closely with.
If I work with people with positive attitudes, its easier for me to focus on my work and feel good about the work I am doing/will do. To that effect, I want to help to create an environment where the people around me share a common and positive focus on delivering quality software.