Given that I really only have one semi-real Ruby on Rails app on my machine I went ahead an threw caution to the wind and upgraded to the newest Rails 1.1.2. No problems until I ran my unit tests and got complete failures with messages like:
test_save_valid_order(StoreControllerTest): ActiveRecord::StatementInvalid: Mysql::Error: Lost connection to MySQL sever during query: DELETE from orders
I tried the obvious things like restarting MySQL, but no dice. A bit of hunting found a ticket entitled lost db connectivity after updating rails. That got me thinking it might be something with the MySQL drivers. At HiveLogic they had the following advice:
sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
Now all of my tests are running fine.
Tim Shadel recommends when doing code reviews to review no more than 5-6 classes for a one hour review session. I violated that rule of thumb last week, and I can see how it burns you out just reviewing that much code ahead of time. And I have a feeling when we go through the review Monday we’ll run out of time unless we really push it.
At least it will allow us to better evaluate using a tool for the review process. We’re still waiting on the preview release of Crucible, but now that most of our developers have been pushed into Rational Application Developer we are trying out the Jupiter plugin.
Indigenous peoples have been running well organized tribal meetings for many thousands of years. One of the methods that they developed involves a token often called a Talking Stick. Traditional Talking Sticks are decorated with carvings, feathers or other items of significance. The use of the Talking Stick is very simply; only the person holding the Talking Stick is allowed to speak. When he or she is done it’s passed to the next person.
His examples are a stuffed pig and a Rugby ball. So far none of our Scrum teams have used this, but we have used two related devices to hold to the 15 minute timeline.
One, is to use a special pen where the ScrumMaster pushes a button and it flashes red if someone’s veering off topic or just taking to long. I have to admit though I’ve had it for one project I’ve never actually used it in anger.
Second, is that anyone on the team can do a timeout signal with their hands if a person is veering off topic for too long. This was introduced by our Agile coach and appears to work fairly well. The timeouts when they happen are taken in good humor and everyone gets a little laugh about it. I’ve also seen people call timeout on themselves when they realized they’ve started rambling.
The talking stick idea is gentle enforcement of the standup meeting principle to stick to 15 minutes, tops. I rarely have problems with people going over on this, unless its a larger team say 8-10 people in which case everyone pretty much has to get through their update in 90 seconds which can be a little hard. And the idea that no one else talks while someone has the talking stick doesn’t allow for people to ask questions or comment on someone’s update easily. My guess is that you don’t stick too exactly to this unless you’re training up a team new to standups and you want them to really get the 15 minute limit part first.
Some signs we’re cruising up the hill:
- Another team of developers on an Aigle project, none of whom report to me, are writing unit tests. Even without much support they’ve plunged ahead and they’re making progress. The best part is one of the developers is very good, but also very skeptical of new practices. His only exposure to TDD was a one day TDD seminar I ran a few months ago, so I assumed it would take more evidence before he really tried it out. Pretty soon all of the web developers will be running test first.
- In an architecture meeting of all things today we ended up talking about wikis and figuring out light weight code reviews. We usually debate some aspect of our SOA approach, but this time we talked about real development practices. And I actually have developers excited about code reviews of all things.
- After instituting Confluence as our wiki solution we’re seeing a much larger amount of content go up per day at least 5-10 new pages. We also maxed out our 25 named users license as well today.
Some of our mid-level developers are really starting to shine as they’re getting beyond the learning curve with java, J2EE, and TDD. One one project we’ve seen a dramatic turnaround with a developer who was able to really step in and lead while the tech lead was out on vacation including pushing through a difficult configuration problem. On another the tech lead remarked the other developer is able to just run with their own modules whereas even a month ago they still needed a lot of mentoring. The developers are really stepping up to the challenge of self-managing teams.
Different developers have taken the lead on researching, piloting, and bringing in new tools from Maven 2.0 to the AJAX script.aculo.us library.
The best part is just two years back we had about four java developers and twenty Coldfusion developers. A few of the Coldfusion developers had used Fusebox (a Coldfusion MVC framework), but most were developing typical Coldfusion applications. Two developers were doing unit tests. Some medium and small projects worked OK, but the large ones were pretty much all death marches with hundreds and hundreds of defects.
Playing around with RSpec again recently I noticed its undergone some major development in the past month or so. The web site has been built out quite a bit and the API has become less test like and uses the keywords
to organize things.