Baby Steps to TDD Adoption

After 23 days into the first Sprint on one of my teams projects, I finally got a very rewarding email from Cruisecontrol with the following message:

Unit Tests: (89)
All Tests Passed

The comment on the CVS file,

1
EmployerManagerTest

, was simply:

first test cases

The back story is I had been charting the unit tests for the project for the past few days showing a very static 85 unit tests. I had even taken to posting updates on the wall with a flat line of bar graphs pointing out the obvious. The 85 unit tests don’t sound to bad, but they were inherited from an earlier codebase that was being used. All the new code for the Sprint was completely untested.

The project is on a first Sprint and has had the usual sorts of issues:

  • One developer with one past JSF project and one developer with only two past Struts projects.
  • Multiple strange problems with JSF 1.0.
  • Connectivity issues to our legacy system.
  • Websphere configuration issues with deployments and classloaders.
  • RAD 6.0 crashing a few times per day.
  • Not hooked up to Cruisecontrol until about day 16 of the Sprint.

And as usual fixing all of these problems trumped writing tests. So even though it’s the first tests written on the project and they’re ‘test later’ unit tests, it’s still a great sign of progress. For the developer who checked in the tests today they’re his first unit tests written in production code.

As a small bit of gratitude and encouragement I delivered two well deserved Hershey’s bars to the developers around lunch time. Progress to TDD is slow, but there is progress.

Trying Out Basecamp

I signed up for a free one project account for Basecamp today and setup a small project for my company’s core values committee. So far it seems really nice, easy collaboration with a small team. The real test will come over the next few weeks if it actually gets used. I love these sorts of things, but I don’t pretend that everyone gets into them. We may end up doing a lot of coordinating via email if the team isn’t ready for web collaboration.

Websphere Portal Search and Java 2 Security

We’ve turned on Java 2 security in our environment. Java 2 security is turned off on every app server by default including Websphere. This little setting caused us quite a few problems as we hadn’t built any of our applications with this in mind. My anecdotal experiences is that I’ve never seen it used anywhere, but that is just my experience.

Up until now we’ve been able to deal with the headaches. A nasty surprise was apparently using RAD and its built in test server you literally can’t turn it on without breaking your test portal instance. So we don’t try to run Java 2 Security on our local instances unless we don’t need portal. Today I learned about a new issue.

I’m working on our intranet portal project and I’ve noticed for a while that search hasn’t been enabled. As it turns out one of the developers showed me the issue with search. You can go to the admin portal for search to setup the crawler, and it needs to generate a unique URL. The problem appears to be since Java 2 Security is turned on all the generated unique URLs are really long (Possibly some encryption of the URL params?). No problem there except in the admin web page it truncates the URLs since the form field only allows 250 characters. We haven’t found a workaround yet, but we haven’t spent too much time digging.

Now I find out the latest version of Websphere Portal, 5.1 only just added Java 2 Security:

WebSphere Portal v5.1 offers a number of security enhancements and it now supports Java 2 Security. (link)

So we have a new question for our IBM lab advocate. Just how many customers of theirs actually enable Java 2 Security in Websphere Portal?

Bad Lessons Managing at Dotcoms

My second stint as a manager, about 6 years ago, was leading a team of web developers at a dotcom ecommerce consulting shop called XUMA. We specialized in ATG Dynamo, a java application server you’ve likely never heard of.

Like many, many dotcoms we went through the boom and bust cycle during the 18 months I worked there. I joined a brand new office in Las Vegas as one of three people to found the office and grew the office to almost 50 people before the layoffs started. Those layoff experiences heavily influenced my management style.

We had three rounds of layoffs before it was over. In the first I was asked to layoff 4 people. At the time I had a staff of 8 people so 50%. For those managers who haven’t had the experience of managing through a layoff it works pretty much like this:

The timing couldn’t have been better as I had just staffed up four new people in the two prior months to bring my team up to 8 people. Some of them had actually moved across several states to take their new jobs. This was early December of 2000.

I had to make some fast, horrible decisions. Lay off a solid performer who had proved themselves or lay off a new employee who interviewed really well, but never got to work on a project. It was a gut wrenching experience, so much so that one of managers in the office threw up the morning of the layoffs. By June 2001 we ran through the third round of layoffs and closed down the office.

I came away with the lesson that I had to keep a certain distance, emotional and otherwise, between myself and my employees. At any moment I could be asked to make a layoff decision, so I had to be prepared and not overly connected to my staff. I’ve viewed a lot of things since then through this filter.

In the last year or two at my current job I’ve begun to re-evaluate that lesson. Layoffs will always be around, but you can’t really motivate people if you’re always worried about keeping a certain professional distance. It’s also just not part of my natural optimistic tendencies so it was always hard to keep in place.

If you’re really going to be able to motivate someone you have to know what drives them. And you have to be able to share your own motivations. Keeping your distance just to make layoffs a little easier isn’t worth the tradeoffs.

Employees Providing Laptops

According to Gartner by 2008 at least 10% of employers will require laptops to be provided by employees. All I can say is I certainly hope so. I’ve used my personal laptops for at least three employers in the last 6 years.

I’d much prefer to use my more productive Mac laptops versus your generic IT provided Dell laptop. The unwritten conclusion I can make is though they’ll require an X86 laptop running some specific version of Windows. Unless things like AlienWare and Apple laptops show up in some laptop magic quadrant.

Technorati Tags: