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 (5)
  1. Sabrina Veksler says:

    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.

  2. Casper says:

    Not officially I don’t think – were you at the Feathers’ talk yesterday afternoon?

  3. Paul King says:

    Hi casper (Jedidja?),

    Glad you liked the talk.

    With regard to "disposable unit tests". It is only your interaction-based tests that you can make disposable. You never get rid of your state-based unit tests. And to make it automatible you have to apply certain conventions to how you populate test dummies. We have an instance provider framework that will supply domain objects, mocks, wired components automatically.

    With regard to "Microsoft technologies", I am mostly agnostic with regard to Microsoft. Some things they are doing are really neat, e.g. LINQ, but they also seem to have their own way of "embracing" open source.

    Perhaps I was a little less diplomatic than normal for that talk after my recent Vista nightmares. I used to get a little under 9 hrs from my extended battery with WinXP. I got 2 hrs 40 mins when I "upgraded" to Vista. After turning off UAC, indexing, virus checking etc. and aero I am now up to 4 hrs 50 mins. So I have basically downgraded the Vista features I am using back to XP levels and still get much less battery life. I have all the latest patches from both MS and Sony but still when I sit on a plane or train the disk light doesn’t stop flickering even when I am doing nothing. I have 2G of memory, so swapping shouldn’t be an issue. I am sure I will work this out of my system shortly! 😉

  4. Casper says:

    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 🙂

  5. Paul King says:

    We may not be getting Groovy.Net anytime soon

    Actually, 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

Comments are closed.

Skip to main content