Thursday, June 5, 2008

What to Track Where

We are in the midst of a "refactoring" sprint. This is an opportunity to do tasks that reduce technical debt, and not have to deliver any stories for the business. We're upgrading Spring, log4j, Canoo WebTest, refactoring user searches to use a custom DTO for searching, removing an unnecessary and confusing column from a table (which requires a ton of code changes), and stuff like that.

How to keep a record of what we changed, so that later, someone can say "When was it that we removed that tax id column and changed all that code?" and we can find it quickly? We have a wiki page for each sprint, and up to now, we wrote all the refactoring changes on the sprint wiki page. However, now that we can't use physical cards (because one team member is remote), we have more tools to track things. We put all our refactoring "cards" in a "refactoring" database in our DTS. When we started this sprint, we wrote cards in our online story board (Mingle) for all the refactoring cards we might do (which seems like extra work, but Mingle has some visibility advantages over the DTS).

As we started to log all our refactoring changes actually made on the wiki, it starts to seem like double work. In the spirit of DRYness, we want to pick one place to track the refactoring. The DTS and MIngle seem like the most likely options, but we should pick one or the other.

I'm trying to get a consensus, see this space for what we decide. If you have solved a similar problem, please post a comment!

I haven't figured out the answer to yesterday's dilemma either, about some automated way to verify our test schema whenever we refresh it from production. So far this blog seems to be about questions, rather than answers.

No comments: