2010/01/13

Codemash Pre-compiler: Software Craftsmanship

This was presented by Steve Smith (@ardalis | Codeproject.com) and Brendan Enrick (@brendoneus | NimblePros.com).

  • What is It?
    • Software Craftsmanship Manifesto ()
  • Why practice?
    • Basically it’s like Microsoft Certification tests; memorize the techniques so that when it’s time to solve a problem, you have a number of techniques you know like the back of your hand rather than having to look it up each time.
    • Using Kata’s helps for improving your “muscle” memory when it comes to tackling similar problems.
    • If you’ve already explored the problem domain using one approach (strictly OO using .NET 2.0 way), you should already have the unit tests that, in theory, can be used when you rework them in the underlying logic (using LINQ).

Kata’s practiced:

  • Bowling game (as Uncle Bob has tackled the kata).
    • the TDD approach that Uncle Bob took to tackle the problem
    • Took an approach with Mike Letterle that might have been a little more complicated than it needed to be, but was a good exercise in thinking it through.
  • A grocery shopping register.
    • having to account for discounts like “Buy N and get the N+1th free” and “Buy N for $M”.
  • FizzBuzz

Overall it was a cool session, but more for talking with developers outside my normal circle and getting a different point of view in how to architect the code.  It was great taking a TDD approach to tackling these kata’s though.  Especially pairing with a Java developer on the Grocery store kata.  Kind of wish I would have gone to a different session to actually learn more content as I’m thinking I’ll probably end up in the coding room one of the days to pair with people just to learn more from them and to actually be able to do some pair programming as it’s such a foreign concept every place I’ve worked.  It’s amazing how much it helps to be able to think through the implications of a certain architecture before ever actually laying out the code.  Although if you have two developers that over think the  problem it can lead to issues.  Amazingly I was able to no do that at all today and instead focused on “this is what’s being asked for, so let’s actually deliver that”.

No comments: