Agile 2007 - Day two
This morning was Paul King's presentation on 'Agile Developer Practices for Dynamic Languages.' Although we're not using Ruby or Groovy, with the updates coming in .NET 3.5, it was still good to see what challenges we could face in the future. Some of the notable points I thought were:
- Patterns are embedded in the language so you don't need to reinvent the wheel. For instance, you can get the 'Visitor' effect by using closures.
- If you're using a dynamic mock framework (I'm not) then you can get very similar behaviour by using maps. Actually Paul went further on this and claims they've reached a point where unit tests are disposable. Apparently the code for the mocks that describes class behaviour is identical to the code in the real classes and so they can generate one from the other and vice versa. I'm a tad skeptical about this.
- Aspects are built-in to the language, although you may still want to use a framework at times
I was a bit surprised to hear a few under-handed jabs at Microsoft technologies, but it seems to be a recurring theme throughout this conference. Ah well.
In the afternoon I went to Mike Cohn's talk on user stories. Mike is a very experienced presenter and the session was completely packed. Although I've read his book on the subject, it was still good to go over the basics of what makes good user stories and I found it especially useful to hear some of the examples of refactoring 'developer' stories into value-proposition ones. The slides for the presentation can be found here. A few notable points were:
- Waterfall is comprised of three sections: the fuzzy front end, the "middle part" where stuff gets done, and the rapid descoping phase :)
- Estimating a software project accurately is as likely as a salesman or businessperson being able to say how much money (to the dollar) the company will make this quarter/year/whatever.
- Stories written in the first person help to make things more personal, and as a result people become more invested in the them.
- Try to imagine 5-12 (ballpark) user roles to help creat your user stories. In most cases, having a number outside that range either means you haven't thought about your users enough, or you're breaking them into far too many categories.
- (My favourite) Developer stories should be rewritten as value propositions
Looking at the slides, you can see some good examples of the last point. It's often tough to get a product owner to sign off on refactoring-type work items, but if you spend the time to phrase it in a way that shows how it benefits one of the user roles, you're much more likely to get acceptance.
Comments
Anonymous
August 17, 2007
Hi, I noticed that you were blogging from Agile 2007. I'm here too and attended some of the same sessions as you did. I was wondering if we've met? I'm with Oxygen Media from NYC.Anonymous
August 17, 2007
Not officially I don't think - were you at the Feathers' talk yesterday afternoon?Anonymous
August 25, 2007
The comment has been removedAnonymous
August 25, 2007
Hi Paul,I definitely enjoyed the talk - it really made me think about a few things I wouldn't have otherwise. We may not be getting Groovy.Net anytime soon, but with IronRuby well on the way it was great to see what we may be able to do in the near future.As for Vista, I can understand your frustations; hopefully with SP1 due out it will help alleviate the problems people are facing.Thanks for commenting - I'm always surprised when people run across this site :)Anonymous
August 27, 2007
We may not be getting Groovy.Net anytime soonActually, Groovy seems to run fine under ikvm and you can call all your favourite .Net functions but I don't know anyone using it seriously yet. I do plan to play with it some more when I get time. See here for more details:http://groovy.codehaus.org/Running+Groovy+on+.NET+2.0+using+IKVM