Showing posts from February, 2011

CodeRetreat - Conway's Game of Life

I wasn't able to justify a trip to Boulder for the CodeRetreat, but I wished I were there, so I watched JBrains virtual session video instead.  That inspired me to implement Game of Life in C#.  I created a GitHub repository and started test driving some code.  Eventually, I got something working, but I have some more ideas I want to try.  I want to add a World ctor that parses a string representing the initial state of the World.  I would also like to try putting a few different UIs on this including an MVC3 + Knockout.js view and maybe a WPF view.Here is what I learned:
Get a pairing partner. I started to get tired around 1130 and I got lazy with the testing.  Now I need to go back and add tests and clean up some of the design that wasn't test driven.
Timebox things like this. CodeRetreat sessions ar 45 min. I realized I had been playing for hours when my wife asked if I was ever coming to bed.
Git is pretty frigging sweet.  I'm just getting familiar with it, but I like …

Review: The Cathedral & The Bazaar

I read it, I liked it, Blogger ate my post.

First, it helped inspire me to try Linux, which is no mean feat for a die hard Windows guy like me. (I haven't even turned on my iMac in the last year.)

Second, the management essay added at the end was the most important part to me. The main point being that OSS works well because the participants self select and are passionate about that they are spending their precious time on. Cube dwelling devs may not be so passionate or skilled, and their output reflects that.

Review: The Passionate Programmer

Chad Fowler's book is all about building a successful career in software development.  When I read that sentence, 2 questions immediately come to mind: what's in it for me (as a developer)? and what's in it for me (as a business owner/manager/project manager/etc)?  Well the answer to the first question is pretty obvious: what I get out of a successful career is happiness, money, purpose, etc.  What does my employeer get out of it?  Well, a happy, motivated, driven developer.  Why does that matter?  Happy, motivated people produce more and better work.  So now we have covered the most rudimentary of why, let's look at how this book helps.There are 5 sections in the book: Choosing your marketInvesting in your productExecutingMarketing... not just for suitsMaintaining your edgeChoosing your market talks to the importance of being aware of what you do and how it related to the larger picture.  Are you .NET developer?  Why?  Why aren't you a Ruby developer?  Or a Java de…


Well, after 10+ years of exclusively using Windows, I am now dual booting Win7 and Ubuntu on my laptop. So far, so good. Only complaint so far is that when I tried to install Ruby from the command shell, apt-get was out of date and as a noob to this platform, the error messages didn't make any sense. A quick google search and I had the answer: sudo apt-get update. Anyway, Ruby is installed. Vim is installed. Chrome is installed. I wrote this post in Chrome from Ubuntu. More to come.

Respect - The Currency of IT

Just ready Jeff Ello's article The Unspoken Truth About Managing Geeks (thanks to Michael Feathers for tweeting it.) Jeff talks about the stereotypically negative behaviors of software developers and how organizations can deal effectively with these behaviors.

The part of the article that I found most interesting is the discussion of respect: how to earn it, how to keep it, how to lose it. I can attest to the fact that respect is the number one factor in my reactions to those I work with. I have worked with a team lead who was pushy, bossy, rude and consistently corrected my code and coding style (he even took away my mouse because it was a crutch.) Why did I put up with it? Well, he was an order of magnitude better than I was and I wanted needed to learn from him. I would go home from work mentally exhausted from paired programming, but at the end of several months, I felt like Neo in the training construct: I knew TDD. I knew how to separate concerns and used dependency in…

What Software Craftsmanship Means to Me

Throughout the recent debate catalyzed by Dan North, I have spent a significant amount of time thinking about what this profession is that I have chosen to pursue and what it means to me. During the debate Corey Haines and Dan had on Twitter today, my thoughts crystallized and I felt compelled to record them. I doubt that many will read this, but if nothing else, it will allow me to measure my progress when I come back and reread it later.

While I self identify as a Software Craftsman, like Corey, I find that I agree with Dan regarding the movement. Maybe I agree with Dan because I self identify as a craftsman. No one else calls me a craftsman. There was no exam, no council of masters, just me and a desire to write less crappy software. So what does it all mean? What is Software Craftsmanship?

Well, it means not writing crap code, obviously! But what is crap code? I have never in the last 10 years worked with a developer who set out to write crap code. Working at a Fortune 100…