The Great Unit Testing Adventure

I’m in the usual crunch mode before doing a presentation or in this case a class on Monday for six of my developers. I’m not sure how much material I really have and whether it’s possibly too much or not quite enough for a whole day.

The class is on unit testing and I’ll have some of the developers pairing up on laptops because our corporate technical training lab is booked for some HR thing for the next few weeks. I’m covering JUnit and plenty of examples including Bob Martin’s semi-famous Bowling Game Kata. It’ll be a mix of presentation, labs, and problems we work though as a group. I’m not the world’s greatest instructor, but I’m hoping my enthusiasm and pointing out all the benefits of TDD will help. I plan on leaving a few logical bugs in the code for the labs just to trip them up and force them to think about how the unit tests help them track down annoying little bugs in the code quickly. And I’m going to hit them over the head running tests every few minutes until hopefully it dawns on them that the intense feedback is a very nice side effect.

Anyway I’ll blog about how the class went when I get through it. It’s really a beta with some of my best developers before I roll it out to the larger development organization. If a few of them really get the TDD bug then I think I’m much more likely to get unit testing really adopted at our shop. “Keep the bar green to keep the code clean.”

Delivering Deployable Software Every Sprint

Had a talk today with a group of our senior developers and the topic of discussion turned to our first official pilot Scrum project which just celebrated it’s first Sprint. One of the developers pointed out that it was a small project and now the users wanted to add all these extra features so it was going to stretch the project out a few months. So what benefit was it really?

As one who has drunk the Kool-Aid I pointed out that the point was even though the coding wasn’t that difficult except for the fact that the two developers had to learn JSF and IBM Websphere Portal in a single month to deploy it it wasn’t really the impressive part. The impressive part was that the software was deployable today and it had more features than the existing application it was replacing.

Under our normal process it would have taken at least 3 months to get the application to the same state. The customer would have to create a charter, then the PM would have to do some planning and determine the team. Then the business analyst would spend weeks writing up the requirements in “The System Shall …” style. That would have to be signed off before the technical analysis could start. Then weeks later the design document would be signed off on after a few rounds of reviews. Then coding would take place and it would be delivered to QA. Then QA would write test plans and start testing. Finally, UA testing would happen and then the app could get scheduled for production. Now on the pilot they delivered all of this in a single month.

At that point I think a lot of the developers in the room really saw the difference an Agile process can make.

Sending Out Review Copies Before Annual Review Meeting

It’s annual review time around my organization again, so I’ve just sent out my review meeting notices and copies of my employee’s reviews. I prefer to send them out in advance so they’ve actually had a chance to read them before the meeting. Otherwise they spend the first few minutes scanning the review as fast as possible.

Sometimes though you have a review or two that isn’t likely to be that much fun to give and in that case I picked up this tip from Dick Grote:

“If the person you’re appraising is a marginal performer with a bad rating, wait until the beginning of the meeting to hand over the appraisal. This increases your control of the situation.”

— pg. 117 of Performance Appraisal Question and Answer Book</p>

Why We’ll Have Certified ScrumMasters

As I posted yesterday, I assumed based on a reading of Ken Schwaber’s Control Chaos site that becoming a certified ScrumMaster meant paying licensing fees to implement Scrum. So it occurred to me that I might want to ask Ken that question. Here was the question I posed in an email:

If I interpret this correctly from the individual license someone will receive after attending training:

“The individual has the right to use the Scrum Product as provided in the performance of their professional work. The individual may use the Scrum Product to train others and describe Scrum to others. The individual is responsible for not letting the Scrum Product be used by other individuals or organizations unless they have acquired either an Individual or Organizational license, as provided.”

Then I’m on the hook to pay at least for an organizational project license if that individual acts as a ScrumMaster on a project?

Ken’s answer was pretty straightforward:

No.. the organizational licenses is for the methodology, which we had to build for CMM Level 3. Scrum itself and all of the training materials are opensourece.

— Ken

So I can send/attend certified ScrumMaster training (I haven’t seen a non-certified version) and not worry about licensing issues. Boy, I’m glad we’re not a CMMI organization, that would just drive me nuts.

Why We Don’t Have Certified Scrummasters

I’ve wanted to attend some specific Scrum training or send some of my people to it for a while now, but for the last year and a half I’ve always been put off by this little item on the Control Chaos site:

The Individual License of the Scrum Product is only granted to ScrumMasters that have met the requirements of a ScrumMaster, as specified by the current ScrumMaster Certification program defined at CertifiedScrum.

The individual has the right to use the Scrum Product as provided in the performance of their professional work. The individual may use the Scrum Product to train others and describe Scrum to others. The individual is responsible for not letting the Scrum Product be used by other individuals or organizations unless they have acquired either an Individual or Organizational license, as provided.

Advanced Development Methods, Inc

So it appears that if I send say one of my developers to any of the certified training that they come back and use Scrum as they learned it and our organization has to pay for an actual license. This feels a whole lot like the pain of RUP and their attempt at licensing a methodology. Or I have the option of reading some books, attending a few conferences, and experimenting with Scrum and pay nothing. Considering the whole appeal of Agile often dovetails with the open source movement I really don’t get the approach.

Then I read that in a Financial Times of London article that Ken Schwaber contradicts this with the following statement

Mr Schwaber says 2,000 people are trained to run the Scrum process – so-called scrum-masters – but he has no idea how widespread its use is, and he is determined not to turn it into a product. “It’s free,” he says. “Once you commercialise it, all you think about is making money from it.” — July 27th 2005

So am I missing something here and I don’t have to pay for licensing Scrum if I send a developer to training?