Lets Hear It For The Craftsman

A series of blog posts are going around about cowboys vs. craftsman. I first noticed it via Coding Horror, then today on GeekDaily.

I have to say I agree with GeekDaily and Justin Etheredge assessments. While there will always be cowboys out there, their contributions will be minor to software development as a whole. Like Justin, I too couldn’t believe the commenter who said

I’ll tell you one thing, the Gang of Four book is probably one of my most disappointing programming reads of all time. Completely useless to me. Strange that I can have a successful programming career without understanding that book…

If this person doesn’t get the GoF, they won’t grow as a programmer, and that is a shame. This is the kind of developer that wants to either be told what to do or how to do it without learning something new that can expand their knowledge and better their code.

While Justin likens software to carpentry, I’ve always thought of development likened to painting. You can teach someone how to paint, but that does not make them an artist. At best they will learn how to paint by color, never expanding and learning. They may change their medium from watercolor to oil, but still painting inside the lines.

With regards to SOLID, SCRUM, whatever, I’m not a big methodology person. Doesn’t mean they don’t have their place, but in my experience they don’t last largely due to business reasons more than anything else.

When it comes to TDD, I’m not a write-the-test-first kind of guy, I do believe tests are essential especially in an enterprise situation. In my personal projects I don’t write tests all that often, but in a team environment with a lot of people touching the code it can be a real headache saver.

Justin absolutely has it right:

I have never been so reminded of how immature our industry is than at this point. And I’m not talking about the individual people, I’m talking about the fact that we have sitting in front of us a really good chance at introducing a little bit of rigor into the way that we think about and implement software systems, but people just blow it off. People just want the easy way out, and they don’t want to take the time to actually have to learn and apply some of this stuff.

2557 Total TweetBacks: (Tweet this post)