Day 3 wrap-up

You may have noticed that I’m blogging less and less on each day. Some of this is because the planning and procedural stuff is becoming less emphasized as we work more on getting a story done. While I could say “we wrote code” it doesn’t seem the same to me in terms of what I think of writing about. I think I’m getting a backlog of information to process (never doubt that I’m a reflective learner :). I’m going to try to do some of that in this post, so it might wander a bit. I’ve also changed from a write a blog entry during the discussion to making notes. We’ll see if that helps or not – maybe tomorrow I’ll switch back (though tomorrow afternoon we’re taking a break, so there’ll probably be less blogging tomorrow no matter what approach I take).

So, info processing:

  • Big changes in the vettest project — The team has asked to be adopted by the RubLog project. Brian and I will work on the testing application offline after this week is over so he doesn’t have to hang his head in shame when he walks down the halls of the vet school. The project was a good one, but it was more suited to a pair of programmers than a team. Plus, this way, everyone gets to pair with the people on the other team, too, so we can learn from them as well. Some of the things that came up in today’s group retrospective
    • we didn’t have a clear definition of the initial config stuff and so it got slapped together willy-nilly
    • We went too long without checking in code. We pretty much spent all day yesterday and part of today without checking in which meant some people were waiting to get interfaces from things other people were working on
    • We weren’t as conscious of our acceptance tests as we might otherwise have done. This led to a less clear picture of where we were going
    • Our individual test files need to be run separately at the moment. We hadn’t gotten an overall tests file made yet, and hadn’t figured out how to make Eclipse/Test::Unit run all the files names test*.rb yet. I think it might be possible to do that, but have yet to work out how exactly to make it work. I’ll probably get a hold of one (or more) of the recently published books on Eclipse sometime this summer and see what I can figure out.
  • When both teams got together, we learned that the RubLog group has developed better documentation for the tool and are close to having completed an automatic install.
  • James talked about how a vital aspect of testing was diversity. Having different machines is a good thing, as it exposes bugs that might not otherwise have been visible. However, we need to make sure we have ways of illuminating the fixing of problems illustrated by diversity so that management will be aware and not just see that no new features are being developed.
  • James also mentioned the sport of Extreme Ironing, which he heard about on a recent trip to the UK. Apparently, the whole point is to be photographed ironing in difficult to get to places (such as dangling from a rope hanging between two sides of a gorge). More info for the curious at or Perhaps the organizers of this sport knew about this study and decided to get creative.
  • Tonight, Michael Feathers talked about his patterns for handling legacy code. I looked at the draft of the book he’s writing (at and it looks like there’s some interesting stuff there. I’ll be reading it in more detail once I get through the information processing of this week.
  • It’s been interesting to see the principles of XP demonstrating value even in just a few days. For paired programming, I’ve had the experience of finding a problem that would have meant rework and having someone else find a problem I had missed. I wasn’t sure that I’d be completely comfortable with pairing (despite being able to see how the benefits ascribed to it might occur), but I haven’t had any of the desire to work alone or thoughts that I would be able to go faster alone that I was a little afraid I might have. Frequent check-ins and test-first development both have shown great use to me over the past few days as well. I guess the whole thing was something that intellectually I understood, but having the chance to actually do some has really driven things home. I tend to do most of my programming alone (being at school, most of my programming is homework or personal projects, and I prefer to do my homework solo even when allowed to work on it in groups), and this week I’ve been thinking about how to change how I develop (amazingly tonight, after I had started thinking about it, I found that Chad Fowler has posted an entry in his blog on the very same thing. I’m going to try to keep his idea of consciously being mindful of the code I write (along with PragDave’s code katas in mind this summer and into the next school year. I’ve had this type of thing happen before (where I’ve had a thought and then read someone else’s blog where they mention the same thing) and find it to be quite interesting when it happens.) There’ll be a bigger emphasis on acceptance tests. You’d think being a tester myself, I’d already have this, but now there’ll be more. I’m thinking that this will probably be in FIT (in the appropriate incarnation for the language I’m using at the time). Test-first development will play a big part (using xUnit), I’ll have source control (even on my single projects) — possibly CVS though I already have SourceSafe installed on my laptop from a previous license I had. I think I’ll keep Apache running on my laptop (or some other computer that’s on more often) and use it to display the results of the tests (and maybe some status reports of automated tasks I have execute). For a lot of people whose blogs I read, this is all old hat, I’m sure and in some ways, it’s all stuff that I was aware of, but like I said, actually experiencing it for the first time is very cool.

    Anyhow, that’s it for tonight. More tomorrow!

    Update: I removed one bullet point from the above. it wasn’t my idea, and I didn’t feel comfortable talking about it, but I needed to write some of it down to be able to move on to other knowledge. My intention was to remove it before clicking Post, but I forgot to do that, so I did now. I also cleaned up some link typos (I thought MT was going to automatically make the URLs links).