Goal setting: Measurements
Early this year I set out a list of goals and reviewed what I felt my goals for last year would have been had I bothered to take note of them. However, set and forget is all to easy with goals and so I am going to also try to review them a few times this year (basically every quarter).
The purpose of doing this isn’t just to see how I’m doing or pat myself on the back, but to review the goals themselves and refresh them. Goals can become stale, what is important to us one day may not be so important 3 months from now. Just as in Agile having regular retrospective is important not just to keep on track but to ensure we are moving in the right direction.
A brief word of warning: This is entirely for my own benefit, so if you feel like commenting on how uninteresting or pointless this post is to you… tell it to your shrink .
First, here are some status updates for my goals:
- Read Domain Driven Design and the new chapter Eric Evans gave me at the conference (if I read nothing else I will read this book this year)
[Not started] This is not going well… I’m sorry Eric. I have been reading, but I have not got back to this yet, this is still highly important to me (particularly now that I am actually using CQRS in my work) so I will be starting this as soon as I am done The Pragmatic Programmer.
- Develop at least two new client relationships
[Completed] The nature of this goal changed a bit now that I have taken a position with Vision Critical. Taking a job with a dynamic and active development team was always an alternative option I had on the table and overall I feel this was a better move for my career and professional development. So I am going to give myself a pass here.
- Complete the first release candidate for Graphite
[Postponed Indefinitely] I have decided not to move forward with Graphite for the moment. This isn’t a failure as much as it is a shift in priorities. I am not really sure I want to maintain an open source project, or at least I don’t want to be responsible for heaping yet-another-blog-engine on to the pile. Graphite was always intended as a learning tool for me to explore MVC, at this point I am starting to question the value of the ASP.NET MVC in the face of Ruby/Rails and other technologies. Using CQRS and examining document database is also making me question the standard nHibernate/ORM/SQL approach I take to web applications as well. I will probably continue to use Graphite to explore these technologies and who knows? Maybe one day it will finally be a first class FOSS blog engine.
- Contribute to at least one open source project [Needs Improvement]
I would not say I have really completed this yet. I did submit some work that has probably in a round about way contributed to S#arp Architecture. I did also update some pages on their wiki too. I would like to step this one up a notch and at the least have multiple patches applied to an active project, perhaps NCQRS even better - becoming a full contributor to one of these projects. This goal needs to have significantly more focus directed to it, unfortunately time has been tight.
- Practice my TDD technique and start learning BDD [Good]
This has been going fairly well since where I work we use TDD. Doing TDD with other people doing it as well has stepped up my game a bit, I have also had some time to review some OSS projects that use MSpec which is an excellent BDD framework. I feel I understand how it works well enought to try using it soon, I will probably use Graphite first and then introduce it to my team.
- Organize discussions/talks with ALT.NET locally [Great Success!]
Perhaps not ‘great’ but at least ‘good’. We have had two consecutive and well attended #altnetbeers and this has even attracted the attention (and dare I say jealousy) of the Seattle contingent. Next we will be trying to organize a small open spaces event, Vision Critical has been generous to offer up their space for this, it is just a matter of generating enough interest.
- Submit at least one presentation/talk to a conference (doesn’t have to be a big one) [Incomplete]
I’m not quite sure I’m ready for this, but I still think I should try anyways. I have taken some steps in the right direction, for example, I recently gave a talk for the VC dev team about using Git with their Subversion repositories. I could tell it needed work though, hopefully I will find an opportunity to give a similar talk to .NET BC, perhaps jointly with Adam who is also a big Git user.
- And of course. be more like Justice Gray (or at least try to make my blog posts a little less dry) [Undetermined]
Well, I suppose I will just have to let Justice Gray speak for this one… or perhaps he already has.
- Learn Ruby on Rails (if I still have time after everything else) [In Progress]
I have completed the first of the Peepcode webcasts on learning RoR. I am very excited about it and it has been tremendous fun, I would suggest to anyone thinking of learning one new language in the next while to give RoR a serious look. I’ve actually been learning RoR but using IronRuby. I definitely have to give credit to the IronRuby/Python guys (some of whom are fellow ALT.NET’rs) for IronRuby. Thanks guys!
Well after that review I think I can update my goals:
- Read Domain Driven Design
- Contribute to at least one open source project (most likely NCQRS)
- Start using BDD
- Learn to use NCQRS
- Help to organize one open spaces event for ALT.NET
- Submit a presentation/talk to a conference or the .NET BC user group
- Complete Ruby on Rails series from Peepcode
- Continue to try to write more interesting blog posts
- Learn to properly use a powerful text editor like Vim or Emacs
Well that was good for me, see you again in approximately another 3 months or so…