Trying Out Fitnesse

Over a lunch break today I pulled down Fitnesse and started it up. I used it in two sessions at Software Development 2005, but I haven’t gotten a chance to really run through it on my own since then. I’m hoping it’s a simple enough framework to really automate some acceptance tests. The wiki interface with simple tables with parameters, expected, and actual values could really work well.

Still hooking the fixtures into our code seems a little murky. The first example bundled with Fitnesse is the ‘Two Minute Example’ that simply does division with a numerator and denominator. I downloaded the newest release and ran into the first little issue after I tried to run the ‘Two Minute Example’ locally.

Exception in thread 'main' 
java.lang.NoClassDefFoundError: fit/FitServer

Turns out after 20 minutes something is missing in the newest release from 4/5/2005. I downloaded the prior release and the problem disappeared. Since lunch isn’t that long and I leave my door open that was about as far as I got. Hopefully tomorrow I can setup a fixture that hooks in some of our code.

Wish We Had Tests

Working through some nasty NullPointer exceptions on a project now. It was a fairly well done project, no unit tests but run as an experimental Scrum project and all of the developers were fairly good about testing the apps by hand. Way too much deployment to Tomcat, but it seemed to meet the requirements and it worked OK for the first phase.

So the second phase includes more functionality, but again the developers seemed to deliver another solid release. Then everyone went on vacations as QA continued testing. Somehow some basic defects were missed or introduced accidentally. Since they’re aren’t any unit tests to speak of, it’s become painful to find the bugs. If we had been doing real unit testing we’d have tests for these cases and we’d be passing in nulls to make sure they were handled. Anyway it’s more ammunition now for adding unit tests to all our new projects. Tomorrow we’ll try to add test cases and solve the issues, no sense in continuing legacy code.

Downtime and QA Testing

A problem that crops up over and over again in my world is that a developer or two completes their coding assignments on a project and the project moves into a formal testing cycle. If the developer has done a quality job and done a lot of unit testing the code base is likely to be in pretty good shape with few bugs. Still since it can take testers quite a while to test they end up with bench time waiting around for the few bugs that do come in.

Typically the developer has some research/cleanup items that can occupy a couple of days, but then comes the idle time. If I can’t find some new work quickly they become tempted to ‘add’ functionality which can be a dangerous game, or merely get bored idling. I’m still working on ways to get around this, but it appears to be a persistent problem. My guess is as we experiment with pulling in QA really early in the development process and help them write tests, that we’ll see less of this problem in the future. I certainly hope so.

Weekly Developer Status Meetings

I don’t know how typical my status meetings are. I knew from attending numerous status meetings at past jobs what I didn’t like, long pointless reporting of status that everyone generally already knows. So here’s how mine go:

  • Scheduled for 30 minutes, but typically run 15 minutes.
  • Monday every week unless there’s a holiday in which case it’s not rescheduled.
  • A printed agenda handed out at the meeting, but not before.
  • Cover any management items that may affect the team from financials to consulting contracts. (My guess is I tend to cover more here than most care for)
  • Two or three items like training or upcoming projects.
  • Open up the end of the meeting for questions/comments. Usually this is short, but some weeks this takes up about 15 minutes, and it seems valuable even if it’s developers letting off steam about how insane it is to pay big money for the newest shiny tools and expect instant productivity improvements.
  • That’s it.

Is JSF Really Going Anywhere?

Recently ran across a blog entry where Rob Lambert asked if anyone was actually using JSF? My initial experience is I don’t know anyone using it for any real project. Struts is pretty common, I occasionally here about something like Velocity, but never JSF.

I remember looking into local training classes when I thought JSF might be viable in our area around Sacramento. Turned out there was only one class available in the last 9 months and it got canceled. I walked through 300+ pages of JSF in Action, but I got frustrated that it was too front end focused, and it had some nasty javascript it implemented for simple things like links that caused turmoil for using JWebUnit on it. In the end we went with Struts. I’m thinking JSF may very likely die on the vine.