Using CloudBees for teaching XP practices

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

We are doing a course called “Certified Scrum Developer”.  We are of course proud of being one of the few eligible by the Scrum Alliance to hold such a course. But what matters most to us is teaching some modern development practices. The certificate bit is more of a bonus.

Crisp had recently its fifth installment of a code camp, the “Crisp Hack Summit”. It is an occasion for everyone at Crisp to go bananas on some project of their liking. We took the chance to work on the technical platform for the CSD course.  We know from experience that you can loose a lot of valuable lecture time if  the technical environment decides to hassle. Murphy, will you be there?

There are several things at play. We want to have exercises where the students program on their own laptops with their favourite IDE. They should work in teams so we need a source code repository. After each sprint, the code should be running in production as this will be our definition of done.  Why settle for less?

There are of course many ways to solve this, but we decided to rely on a cloud service. It is a course on modern development, after all. Of all cloud services that we know, CloudBees suits us best as it provides us with:

  • A source code repository, where we choose the Git option.
  • A build service in the form of a Jenkins. We set up a job to start when there is a check in into the repository.
  • A run service integrated with the build service such that a successful build can be deployed immediately.

There is a lot more to their offering but these were the main points that we saw met our needs.

So how does this help us fight the law of  Murphy? Well, we are relying on an around the clock cloud service which means that as long as we have an internet connection, we can be pretty sure that we have the above services available.

But that is not enough, the students must be able to get in the loop with doing continuous deployment so we will challenge them with a task that they are supposed to complete before attending the course. There will be an application running in the cloud and their job will be to check it out, change it and check in. The application should build and deploy with no problem. This will iron out initial problems and get rid of administration such as setting up accounts.

When in class, students will have one repository per team. A team will be  2- 3 pairs working in sprints. There will be a backlog with stories for the team to pull in to the sprint. The teams will be expected to do unit and acceptance testing. Of course, after the end of each sprint, there is supposed to be a demo. As said, the definition of done includes deploying to production so you’re not done until then.

We are quite excited about this and looking forward to January when we will see how this turned out in practice. Wish us luck!

For more on cloud computing, click the “cloud” tag below.

2 Comments

  • 1
    2012-09-10 - 08:34 | Permalink

    Hi,

    Helping the users to get an environment that works before course starts is something I have wanted for a long time. To much valuable time is spent the first day trying to get things up and running. Your idea with a cloud based solution is the best I have seen so far.

    And yes, I wish you good luck! It will fail anyway because Murphy was an optimist!

  • Leave a Reply

    Your email address will not be published. Required fields are marked *