Wednesday, April 20, 2011

Overemphasizing technical practices

I've been wondering lately if overemphasizing technical practices might be detrimental to a company in the long run. I'm not saying you don't need talented people, I certainly believe you do. I mean as a company (or department), making a big deal about whether a team/person does TDD, CI, or some other good practice. In the short run you'll probably get an increase in good habits among your developers. However, my concern here is that in the long run I think you're likely to create a culture that cares more about whether you're doing those practices than whether you're creating great products. Once a company switches to caring more about how it's doing things than what it's doing, problems start escalating rapidly. (Incidentally this one of the points that Jim Collins makes in How The Mighty Fall, great book!)

We have to remember that customers don't pay for or care about stories, TDD, CI, and many other good software development practices. They want, and pay for, awesome products! (Or as Kathy Sierra would say, products that make them awesome) I'm not saying you can't encourage good practices. You can! I just think you need to first make it clear that the goal is to build awesome products, and then let/help people gravitate to the practices that best allow them to achieve that goal. That way they are never confused about what is really important.

2 comments:

  1. Thought provoking post! :) What is your stance on coding standards?

    ReplyDelete
  2. Coding standards are just like any other practice. As long as people understand how they help build great products, then I don't think they'll have as much of an issue with them.

    Personally I'm not big on coding standards because I don't see a real compelling case that they make that much of a difference, but that's just my. I could be wrong obviously!

    ReplyDelete