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?

QA Ghetto

I am constantly amazed of the default assumption that QA people are just a step above helpdesk staff on the IT skills ladder. In my experience QA people range from test monkeys who just bang on the links and report the occasional bugs to scripting gurus who can seemingly invent 20 new ways to break an application in 10 minutes. This spectrum closely follows developers who range from code monkeys who learned just enough VB to be dangerous 10 years ago and can’t code their way out of a paper bag to gurus who can rip out an application under seemingly insane deadlines.

So why do so many IT folks assume that the testers are just an after thought and they couldn’t possibly code something, not even a simple Perl, Python, or Ruby script to push test data through an application. Not only that we couldn’t possibly allow them to install a scripting tool to let them try out some automation. No, they might blow up their machine and then the help desk staff might get a call to help clean up the mess. Never mind that that would be the help desk’s job or that fact that they are a lower level support staff versus QA staff who directly impact the company’s software products.

I think I find the low opinion of QA’s abilities most annoying because it mirrors the same sort of elitist thinking I see on a lot of software teams. You know the situation. Say the team has 10 developers on it, but everything is stratified between 8 front end developers who just code some JSP pages and two ‘real’ developers who build the ‘backend’ code that really makes the application go. Many of these front end developers have been stuck in a ghetto of just doing the GUI because you couldn’t dare expect an average developer to be able to say write a DAO. I find expecting all your developers to be able to code all the layers of an application is amazingly more productive. Sure some developers are never going to be as good as some of your stars, but knowing they can handle any part of an application even if it takes longer is a lot better than explaining to your customers that you can only handle one project at a time. (Better yet one of your uber developers leave and no one knows how to maintain the application.)

First Official Sprint Complete

Our first official Scrum project finished it’s first Sprint successfully today. I’m a bit jealous since they have institutional support, while I’ve run multiple Scrum style projects without buy-in from the business. In fact our PM group has officially explained to us that we can’t use Agile methodologies.

We’ve adopted the bulk of the practices such as daily standups, 30 day iterations, planning meetings, project retrospectives, and a product backlog. Still we’re stuck in a traditional waterfall process for the overall project, so everything moves slower and we have to wait a lot because we’re the only ones running a 30 day Sprint.

Our culture is still very much waterfall oriented. We’re backing out code on a project right now because our process only allows features that are fully documented to be added even when the customer wants them. We’re so set in our process that just removing access to the new features isn’t good enough. We have to remove all the actual code to comply with our process. If we don’t our QA team won’t test the application at all.

It’ll be a nice change when Agile/Scrum becomes the default practice instead of only being officially allowed on pilot projects.

System.out.println() Rule for Checkstyle

I got around to a long ignored todo today over lunch at my desk–adding checkstyle to our cruisecontrol builds. It took about 1.5 hours mostly because the default rules in sun_checks.xml are a bit too extreme and have to be commented back into some state of reason. My favorite custom rule was the following example in the checkstyle documentation:

<module name="GenericIllegalRegexp">
      <!-- . matches any character, so we need to
         escape it and use \. to match dots. -->
      <property name="format" value="System\.out\.println"/>
</module>

No more System.out.println() for us. Currently we probably won’t fail any project for having violations, but it will help reinforce our newly adopted code reviews.