distributed retrospectives with a twist

In  the traditional agile retrospective, everyone gets in a room and puts post it notes on a board.  The group then sorts the post its by topic.  Then there is discussion about the points brought up.  I find there are a few limitations with this approach:

  1. It requires everyone to be in the room at the same time.  This isn’t always easy.  (Especially if the team is distributed or partially allocated to other teams.)
  2. Everyone has to watch the sorting exercise.  Throwing more people at this doesn’t make it faster on a big team.
  3. People get worn out by the long meeting.
I’ve done about a dozen retrospectives where people write on post-its in advance of the retrospective and leave them in a shoebox.  (We’ve extended this to having the shoebox available for the length of the project so team members can add thoughts as they occur.)  We then have myself and another team member group the post its by category.  Then we use the actual retrospective meeting for discussion/brainstorming.  For members located remote, we let them e-mail post-it notes.  This loses the anonymity, but people haven’t seemed to mind.
At he end of the season, the programmers of Stuypulse do a  lessons learned over e-mail.  We had more new programmers this year that stuck with the team than ever before.  I wanted to make sure we got their input and the brainstorming wasn’t “biased” by older team members.  I suggested we do a retrospective.  It was an experiment for me too as I’ve never done one completely remote (or without post-its or a shoebox.)  Remember that these are high school students and it is likely they’ve never done any type of agile retrospective before.  Here’s what went down.

Phase 1 – post it generation

I searched if there was an online retrospective website and didn’t find anything.  [If anyone reading this knows of one, please post a comment.]  Instead of post-its, I created a google docs spreadsheet with the following columns:

  • green background – What did we do well?
  • red background – What should we do differently?
  • blue background – What did we learn?
  • purple background – What still puzzles us?
  • Division – I wanted to record whether the comments were coming from a programmer or someone in a different part of the team as perceptions were likely to be different.  This turned out to be a non-issue as only one non-programmer contributed content.  (Which is interesting because when we did lessons learned on the mailing list, we had lots of comments from engineers.  This may still happen in phase 3, but at least programmers got to frame the discussion about programming in the brainstorm phase.)
  • Optional name – In case there we wanted to clarify something.  Only one person choose to be anonymous.  This column turned out to help me because a week after I sent out the request to participate, only the more senior members of the team had contributed content.  This allowed me to “re-invite” the newer members by name.  If everyone was anonymous, I would have just known that turnout was poor but not why.

Phase 2 – post it sorting

Ina corporate environment, I just sort/group the post its.  With the high school team, I also edited a little.  Just to avoid “I agree with so and so” because the sorted post its don’t have names on them.  This took me about an hour.  I did not edit the items for length even though some contributes were sentences (which is really long for a post it note.)  I also added a couple post its to round out groups and get at missing subtext.  I’ve added post-its while grouping in a corporate environment too when the contributed post-its dance around an issue.  This is actually the first time I’ve grouped post-its without having an “other” kitchen sink category!

Now that we are ready for phase 3, the spreadsheet has three tabs:

  1. raw data – what people contributed
  2. grouped – data from tab 1 grouped by category
  3. a summary of the categories, # posts its in each category and a summary with some questions for discussion (in a corporate setting, I order the categories by # posts but don’t come up with questions.  I did here because phase 3 will be over e-mail)

Phase 3 – discussion

This hasn’t happened yet.  I’m sending the spreadsheet out today.  I expect it to be like the lessons learned e-mail threads of the past though.  Which is fine now that we’ve gotten the topics to talk about out there.

cropping video fast for dummies on a mac

Two years ago, I wrote about cropping video fast for dummies on Windows.  I now need to do the basically same thing on the Mac.  This time is a little simpler as I only need one continuous segment cropped.  And I have more experience.  I’ve done it once before 🙂 on a different operating system.  However, I still don’t have any special software.

Where I started

The original video is 2 minutes and 44 seconds.  I want to get a 5 second or so video of the robot shooting a basket.

How I did it

  1. Learned that I do have video editing software – iMovie – that came on the Mac.
  2. Use ClipNabber to download youtube video.  Had to click “clipnabber classic” to get to the download screen as the first screen is about some Mac software to download.  As I don’t do this often, I don’t feel the need to download anything.  This downloaded the clip as an .mp4 file.
  3. Downloaded Squared to convert from mp4 to something iMovie can import.  (Squared beta lets you download directly from youtube, but I’ve already downloaded it.).  Open mp4 in it and choose export to DV>  Conversion took less than a minute.
  4. In iMovie, file > import > movies
  5. iMovie automatically splits the video into short thumbnails.  Drag the one(s) you want to the top.  It’s cool because you can select a range so this serves as a rough cropping.  You can also join clips that way.
  6. Click on point of subclip you want to start and choose split.  Repeat for end of subclip.
  7. Right click video and choose detach audio.  Select the purple audio track and select cut.
  8. Share > Export movie

Converting to Flash

It was requested I provide a Flash version of my 4 seconds of video.  There is software you can download that does this, but I didn’t want to download something (trial version) that I’d only use once.  Another option is to upload it to youtube.  I went with the youtube option.  Then back to ClipNabber to download as flv (flash.)

How did it work?

This process was better than the Windows way (without a real editor.)  iMovie is impressive.

The final product

The completed video does show what I wanted.  It was easier to get rid of the sound this time too which is good because I won’t control the viewer’s machines this time.

getting started with the Finch in NetBeans

This year the robotics team is using The Finch for teaching the new programmers about programming.  The robot is cute and I know I’d want to play with it so I bought one too.

While I like Eclipse better than NetBeans, the programming team uses NetBeans.  I decided to try out NetBeans with the Finch so I’m familiar with their platform/interface.  I’ll want it soon enough anyway to check out NetBeans projects from git.

Step 1 – Install NetBeans on the Mac

  1. Download NetBeans – the basic JSE edition
  2. Open dmg file which allows you to choose to run the installer.
  3. Choose defaults and install
  4. When first launch NetBeans asks if want to install JUnit.  (not clear on why JUnit doesn’t come with NetBeans – it comes with Eclipse)
Step 2 – Import Finch project
This one took me a few minutes.  You need to
  1. Download the NetBeans project
  2. Copy it to the NetBeans project directory which is /Users/me/NetBeansProjects on a mac
  3. In NetBeans, File > “open project” and then drill down to Finch.
Step 3 – Run a program
  1. Connect the Finch’s USB to your computer.  (The tutorial doesn’t say this, but it is implied.)
  2. Per the tutorial, choose Run > Run File.
  3. Enjoy the Finch.  It’s so cute!
Step 4 – Run a different programs
I very carefully misunderstood the instructions about not choosing Run > Run and did it anyway.  Luckily, you can choose Run > Run File and have it ignore your preset default.  Or you can completely unset it by editing the file FinchBeans/nbproject/project.properties and removing the main class line.  Then I can remember to choose Run > Run File.