Planning poker

We had some fun today with planning poker. Wikipedia defines it as

… a consensus-based estimation technique for estimating, mostly used to estimate effort or relative size of tasks in software development. It is a variation of the Wideband Delphi method. It is most commonly used in agile software development, in particular the Extreme Programming methodology.

Our process was a little different than standard: we worked on defining the stories on our Wiki in the days leading up to the planning poker game, so that we didn’t have many discussions prior to estimating each feature. But we did have some very good discussions when we saw big deviations in people’s estimates.

Sometimes people assumed that stuff was included in the story that was actually in a different story, leading to much higher estimates. Sometimes people forgot about tasks, leading to lower estimates. But as a team, we think we have come up with some good estimates. We will see how they hold up in real life ;)

To actually play the planning poker game, you’d normally need a deck of cards with values. However, being a distributed team today (I worked from home), we resorted to planningpoker.com. It’s really simple to use and actually fun. Our discussions took place in IM, and although that’s not optimal, it was good enough. So all in all a good experience.

Update: You can also use this site to reach consensus on a story’s risk. For that, agree on a mapping between the planning poker cards and the allowed values for risk. For instance, if you assign risk a value of low, medium, or high, you could pick 0=low, 5=medium, 100=high.

Published in: on 2009-01-13 at 20:19 Leave a Comment
Tags: ,

JavaFX plugin for Eclipse patched

A while ago I wrote about how the JavaFX Eclipse plugin has some shortcomings. Luckily, the plugin is released under an Open Source license (BSD). Therefore, the source is available, and anyone can fix problems and supply patches.

So I decided to do just that, and checked out the code from the Subversion repository. I followed the steps described in the Wiki to get the project compiled.

The first thing I ran into, is that the default target didn’t exist. That was easy enough to fix.

Next, it bothered me that I needed to provide several properties on the command line. For instance I needed to specify -DeclipseDir=/opt/eclipse every time. So I patched the build to get this location from the environment variable ECLIPSE_HOME which I set in my .profile.

The same goes for the location of the JavaFX SDK. I introduced a JAVAFX_HOME environment variable to store that location. With these three modifications I could finally issue a build with just a simple ant.

With the build working it was time to tackle one of the problems I encountered during my usage of the plug-in. I figured it would be easy to fix the issue where compilation errors use up three lines in the Problems view, so that’s where I started. Based on information in the book Eclipse, Building Commercial-Quality Plug-ins, I knew I had to look for IMarker. There was only one such place in the code, so the problem was easily fixed. Progress at last!

I took a look at the other issues that were reported against the plug-in. There might be easier ones than the ones I experienced ;) Indeed, someone noticed that the JavaFX perspective missed an icon. At first I couldn’t reproduce it, but that was because I was starting the plug-in from Eclipse. The official distribution did show the problem. Luckily, the bug reporter also found the cause: the icon used wasn’t part of the jar. A simple addition to build.properties fixed that.

Five patches already! I was feeling pretty good about myself :)

Next, someone wanted help with import statements. That was a lot trickier, but probably also a lot more valuable. Having looked at the IMarker code before, I naturally wanted to add a marker resolution.

This turned out to be a lot more work than I anticipated, but I managed to get something working. There were some glitches, and it probably needed a lot more testing for corner cases, but I could add a missing import statement based on the class name. Because I felt that this code wasn’t ready for prime time yet, I didn’t supply a patch, though.

This patching frenzy took place during the holidays. I got no response from Sun during that time, but I guess that was to be expected, given the time of year. So I decided to wait until some time into the new year to see what would happen.

Monday January 5 went by without news, but this morning I started to receive a stream of email notifications about issue tracker updates. Several of my patches were being accepted, and then I even received notification that I was given commit access! Such are the wonders of Open Source…

Published in: on 2009-01-06 at 22:43 Leave a Comment
Tags: , , ,