Archive for the ‘agile’ Category

Continuous Monitoring Tutorial at Agile 2008

Last week, I conducted a tutorial on Continuous Monitoring at the Agile 2008 conference in Toronto. The title of the session is Continuous Monitoring: Beyond Continuous Integration. Unfortunately, the track organizers changed the topic title on me twice and as a result I ended up with a number of attendees who had come to learn about setting up an automated build server. Ack! Hopefully, they didn’t go away disappointed and still got something valuable out of the tutorial.

The session was divided into 3 sections: I began with a presentation introducing the topic; next, participants were encouraged to work in small groups to design an andon dashboard for their project teams; the remainder of the session was spent discussing the implementation details involved in building a dashboard. My plan for the latter half of the session was to get participants to integrate metric data from different sources via RESTful XML web services into a simple Rails-based dashboard that I have thrown together, but given the size and interest of the group, it seemed easiest to just discuss the implementation rather than go through with the exercise. I had also intended to demo using a digital photo frame as a digital dashboard, but my photo frame couldn’t get onto the hotel’s wireless.

If you are interested in a copy of the presentation, I’ve uploaded it in Keynote or PowerPoint 2003. Please feel free to use the contents of the slides. The presentation is done in the Lessig style, so it might not be the easiest to follow. If you end up presenting on the topic, let me know — I’m interested to track the thinking and ideas as they evolve. Here’s the embedded slideshow from Slideshare:

As for the code that I used in the demo, I’ll get it uploaded to github soon.

Tags: ,
Filed under agile, ruby, technology : Comments (0) : Aug 14th, 2008

Operations Database Talk at Agile Vancouver

I’ll be talking about leveraging operations databases to bridge the gap between development and production at tomorrow night’s Agile Vancouver meeting at Sierra Systems. See you there.

Tags: ,
Filed under agile : Comments (0) : May 26th, 2008

Continuous Monitoring on Hanselminutes

While at DevTeach, I was interviewed by Scott Hanselman for his Hanselminutes Podcast. We started out talking about the history of the CruiseControl.NET project, but I opted to segue into discussing Continuous Monitoring. Continuous Monitoring focuses on providing continuous feedback to a team by leveraging visible dashboard displays to ambiently communicate information about the health and state of their project. I intend to write more about the practice here on this blog, but for now the podcast is the best place to learn more about it. I will be presenting about it at Agile 2008 and if you are interested in joining the discussion, feel free to join the Continuous Monitoring group.

Corrections:
There are a few statistics that I cited incorrectly off the top of my head during the podcast:

  • The CruiseControl.NET project has consumed over 46 person years of effort - at least based on what oloh can divine from our subversion repository.
  • The CruiseControl.NET project has had over 800,000 downloads - not 80,000 as I said during the interview. I was off by an order of magnitude. Oh and this doesn’t include all of the direct downloads from CCNetLive

Tags: , ,
Filed under .net, agile, technology : Comments (1) : May 20th, 2008

DevTeach Toronto Wrap-up

Last week I was out in Toronto presenting at DevTeach. I gave 3 presentations:

Unfortunately I ended up attending relatively few of the sessions as I was pretty busy preparing the materials for my presentations. But what I did see was quite good. I particularly liked Derek Hatcher’s Leveraging the Amazon Platform (EC2 and S3) and Greg Young’s DDDD, Unshackle Your Domain.

What I enjoyed most about the conference was getting to know and learn from some of the experts in a new technology circle. I missed last year’s DevTeach in Vancouver as I was in China at the time but I was glad to have made it out this one.

Tags: , , , ,
Filed under .net, agile, technology : Comments (3) : May 20th, 2008

Scaling Continuous Integration paper

I wrote Garmisch-Partenkirchen. While it is a bit dated, most of the advice in it is still relevant.

I’m in Toronto this week speaking at DevTeach. One of the sessions that I will be doing is on Recommended Practices for Continuous Integration and I’ll be referring this paper.

Tags: ,
Filed under .net, agile, technology : Comments (1) : May 13th, 2008

Agile Vancouver Tech Talk #2 - TDD vs BDD

Last Monday night, Skye and I hosted the second Agile Vancouver tech talk. This month’s topic was test-driven development (TDD) vs. behaviour-driven development (BDD). The goal of the session was to give participants some hands-on experience with TDD and a bit of exposure to BDD. Participants were encouraged to bring laptops to the session if they had them or pair/partner up with others if they didn’t.

About 50 participants showed up for the session. Most people worked in Java using JUnit (with one pair using TestNG), another handful used C# (using NUnit) and one group worked in Perl and Python. I wrote my tests using JBehave and showed my solution on the projector to give beginners a bit of a jump start.

For the problem, I built some scenarios from my weekend’s trip to the grocery store. Participants were encouraged to write a solution for calculating the total of a shopping receipt from a list of items. I presented the following 10 scenarios:

  1. 1 x EnviroKidz Waffles - $3.79
  2. 2 x Unsalted Rice Cakes - $2.99
  3. 1.16kg Broccoli @ 2.82/kg
  4. 1 x Happy Planet Strawberry Banana Juice - $3.50 + $0.20 Deposit +
    $0.03 Enviro fee
    • 1. 1 x EnviroKidz Waffles - $3.79
    • 2 x Unsalted Rice Cakes - $2.99
    • 1.16kg Broccoli @ 2.82/kg
  5. Same as 5. but with a $0.05 No plastic bag discount
  6. 2 x Amy’s Organic Soup - $2.99 / $2.79 for Club members (Club #000104991)
  7. Calculate frequent shopper points for previous order, where new points = floor(total * 3)
  8. Calculate new total of frequent shopper points for the previous scenario. Customer Club #000104991 currently has 933 points.
  9. Non-groceries have 5% GST applied. Calculate the total for:
    • 1 x EnviroKidz Waffles - $3.79
    • 1 x Economist - $7.50

We spent an hour working on coding up the scenarios, where most participants made it up to scenario #5. This was followed by 30 minutes of discussion where participants presented their code. The most interesting solution IMO was produced by the Perl group who wrote a simple Regex parser for the items and started implementing a wiki-style DSL for specifying test scenarios.

On the whole, I think that the session went quite well, and most participants enjoyed having the opportunity to sit down and directly try out TDD. I think that we will try to do more hands-on sessions for subsequent tech-talk gatherings, potentially building on what we worked on in this session.

If you attended Monday night’s session and would like to post your solution to the scenarios, please feel free to leave a comment on this post linking to your code. I intend to post my solution for these scenarios at some point soon.

Tags: , , , ,
Filed under agile : Comments (0) : Mar 14th, 2008

Agile Vancouver Tech Talk

Last night, we ran Agile Vancouver’s first Tech Talk session. The session was co-organized with Skye Cove at Sophos. The tech talk idea came out of our desire to get more technical content into the regular Agile Vancouver meet ups. We also wanted a different format from the regular monthly talking head presentations. Our goal was to create something that was more participatory, that would provide an opportunity for local Agile practitioners and techies to meet and share their knowledge and experience.

When planning the session we really didn’t know how many people would turn up. The previous attempt to do something similar ended up with very few attendees. So I was surprised to arrive at 5.45 and find that about 30 people were already there and more were trickling in. We probably ended up with about 50 people all told. I quickly realized that my idea of having an open discussion would not work — so we turned it into a fish bowl instead. I think that the fish bowl worked quite well and we had a pretty good variety of people opting to come up and speak.

The topic was “Branching and Merging on Agile projects”. Remarkably we managed to stay pretty much on topic throughout. I was especially happy to see some people come forward and posit unconventional positions like:

  • source control is not necessary on Agile projects because it is an impediment to communication
  • using file locking to control access to different parts of the repository
  • distributed vs centralised source control systems

Now that more people are familiar with the fishbowl format, I hope that even more people will participate next time. A few things that we will change for next time:

  • Greg Young suggested distributing cards at the start of the session to collect suggestions for the next session’s topic. We can post these on the wall and people can vote on them on the way out.
  • Shorten the length of the fish bowl so that there is more opportunity for small group interaction after the session. I think restricting the fishbowl to 1 hour is sufficient.
  • Greg also suggested collecting feedback on the session that can be collected at the point when people vote on the session.

I’d like to try some small group sessions or micro-open space sessions, but for now I think that it will be good to try to keep the format consistent as more people get the chance to become familiar with it. If you have other feedback or ideas for the event please let me know!

Tags: ,
Filed under agile, life : Comments (3) : Feb 13th, 2008