Top Tips With User Stories

Last night I heard Mike Cohn speak about Agile Planning and Estimation. Mike’s a great speaker who I highly recommend to you seeing, but you may know him from his company, Mountain Goat software, or his book, User Stories Applied.

Though I’m lucky enough to practice many of the items he spoke about, my most favourite emphasised points of the night included:

  • Focus on accuracy over precision;
  • Avoid measuring items that are more than a magnitude apart; and
  • Measure size over duration.

Stopping Spammers

No SpamAnyone who has owned a blog using some standard blogging software will have dealt with horrible spam at sometime. It’s a frustrating and time consuming annoyance, and many people give up to the torrents of spammed comments or trackbacks. Obviously there must be some economic reason for spammers to continue, but I do (and I’m sure that you too) hope they pay dearly for it in karmic retribution later in their life.

I’ve tried several attempts to stop spammers, but most techniques require additional work. I considered the Captcha plugin, that is a popular tool many people adopt, but forces real commenters to work more (by typically reading an image and inputting some numbers or characters) and reduces the accessibility of your website.

My most recent attempt which seems to be working (so far) is the Akismet plugin for WordPress. For other wordpress users out there, I suggest giving it a go.

Javazone 2006 Conference

This week I was fortunate enough to present at Javazone, the biggest conference in Norway, and as one local told me, apparently the second biggest java conference in all of Europe. The conference sold out to its maximum capacity of 1400 Norwegians one month before it even started, certainly demonstrating Java’s popularity and the talent pool this country has to offer. The IT industry in Norway appears exceptionally healthy with all of the stands aggressively recruiting people. Local Norwegians confirmed the current state constantly describing the wealth of opportunities available to them.

A lot of the developers I spoke to use the basic toolkit of Hibernate and Spring for most of their projects, and I found it a good sign most of them do automated testing of some form and some level of continuous integration. Many of them have adopted more specifically XP practices, but adoption of the agile values still seem to be missing. A Norwegian TW alumnus I spoke to confirmed this observation and is something he is struggling with in his current role.

I was surprised not to see many more sessions focused on Web 2.0 (as if there’s even a thing!) technologies, with only one session demonstrating the Google Web Toolkit (GWT). Overall it was a well balanced conference with a number of sessions covering topics in core java (Swing, Java5, advanced memory tricks and tuning), enterprise java (EJB3, SOA, Webservices), web (JSF, GWT), testing (Watir, Selenium), methodology (Scrum, lean) and some fun stuff including mobile and embedded java.

Javazone

Quite a number of notable java people came and spoke including the likes of Bruce Tate, James Strachan, Joshua Bloch, Rod Johnson, Gavin King, Floyd Marinescu and even a small handful of the agile community including Ken Schwaber, Mary and Tom Poppendieck and Johannes Brodwall.

If I got anything out of it personally, I now know that:

  • JSF still seems too complicated and immature to be used just yet (with too many XML configurations and too many workarounds for practical use)
  • The Java Persistence API (JPA), a part of the EJB3 spec, will not be as flexible as what JDO or Hibernate offers, and requires at a minimum at least two more XML files (orm.xml and persistence.xml). Admittedly it will offer great relief and better flexibility for standards-obsessed organisations and will be much more usable and effective than what Bean Managed Persistance ever could be.
  • SPOT devices (hardware running the JVM directly without any OS) will change the sorts of applications we will be able to write allowing us easier integration with hardware than ever before.
  • Sun’s announcement that they intend to fully support Ruby and Javascript officially on the JVM directly (with the intention of support more interpreted languages in the future), will certainly have a great impact on the industry.
  • The Looking Glass 3D Desktop project looks interesting though might not be entirely practical.
  • Joshua Bloch develops on a Mac.

I felt my presentation went successfully (on Test Driving Swing Applications) with an attendance of somewhere around 120 people. I had a great time talking and meeting people as well as sharing my experiences at such a large conference and would highly recommend anyone to present or even just there (thought it helps if you can speak Norwegian).

In Oslo

I’m writing (or at least trying) to write this entry from an Internet cafe in central Oslo. It’s been a beautiful weekend filled to the brim with lots of sight seeing and pictures will be following in a while. It may take some time though since I am presenting at the Javazone conference in a couple of days. You can find the rest of my conference material here, and I will be post an update as I go.

I’ve just been having a lot of “fun” trying to find all the normal keys between all the unique ones that you find on a Norweigian keyboard (particularly with all the symbols). Some of them are off by one, but others have forced me to use the “Alt Gr” key for the first time. Expect some updates within the week.

Removing Overused Words From Collaborative Discussions

I was involved in a great discussion on the weekend about two words that never help in conversations.

‘Actually’ and ‘but’

Sometimes you may find yourself in a good situation to use these “blocking” keywords, but far too often, they are abused as implicit “no, you’re wrong” statements. These words stop innovative, flowing conversations and turn them into a debate.

An alternative that I will be trying hard to use is “and.” Please post a comment if you have one you could recommend.

From The Tao of Coaching

The Tao of CoachingFrom the short but excellent Tao of Coaching book written by Max Landsberg

“Increase your effectiveness as a leader by helping others to develop and grow”

Covers great topics such as:

  • Getting and giving effective feedback that is not judgemental, timely, and focuses on specific activities, not personality traits
  • GROW (Goals, Reality, Options, Wrap Up) as an effective problem solving technique
  • Problem, Blockers (Coachee, Other People, The Situation) and Ideal Outcome as another pattern
  • Building trust and understanding a coachee’s motivation using a Skill/Will matrix

A brief, reassuring read but definitely worthwhile for anyone who has to work with people (i.e. everyone!)

A Year Since Leaving Brisbane

I can’t believe it’s been a year since I left Brisbane to go on an internal exchange program to live and work in London. I also can’t believe that I’m at the end of what free days I’ve had in Australia before I fly back to London (yes, you guys have got me hooked).

Thanks to all the people that managed to make time to see me on this whirlwind visit (again!). My apologies for those I didn’t get a chance to catch up with (but you’ll just have to visit me overseas!). I managed to spend plenty of time with the family, get to the beach briefly, and catch up with most people. I had a great dinner and a very enjoyable evening at the Belgian Beer Cafe last night and worked off what ill-effects it had with a hearty breakfast at the ever wonderful Gunshop Café (shown below) this morning.

Gunshop Cafe

Brisbane city and especially West End continues to change, and it struck me at how inner-city apartment buildings have built up in such a short amount of time. I’m intrigued to see what effect the supply will have on the property market and how different city living will be in five year’s time. I also visited the Valley for some tea but noticed that at least it had not changed too much.

Petrol’s expensive at AUD1.40/L (though maybe not compared to the English cost) and thankfully public transports improved slightly (they now have a 3am night train/bus service) with prices only increasing by a little bit.

Brisbane City Hall

Finally the weather in Brisbane was as brilliant as ever with mostly cloudless but always radiantly blue skies for my entire visit. The temperature has averaged a good 23°C during the day meaning t-shirts, shorts and flip-flops (but more colloquially called thongs) though it does dip down to about 10 at night.

This visit reminds me of how much I will miss but, in another way, of how much I can appreciate living overseas. Til next time Brisvegas!

Different Approach to Planning IT Projects

I find it interesting to see how most businesses plan for IT projects. The most common approach is for the business to get a set of proposed projects together, but get IT to cost them. They then decide on which one to do based on this input and what benefits are talked about and estimated costs.

When I see the costing process, I see it as heavy weight – lots of predictive plans with lots of magic weighting and theoretical costs. Worse still is that it sets the expectation that the cost is actually predictable when, in reality the detail you get and what it cost you from the original plan are far apart and you just spent a bucket load on this additional lengthy process (the estimate starts to become a promise).

Choosing Paths

An alternative I propose is a lighter weight approach with businesses focusing on what they want to do and not what projects a particular group within the business proposes. It’s more important to focus on the business problem first and the implementation details last so that both are aligned as closely as possible. After identifying what the business want to do they should next define how much they would like to spend. The amount needs to be feasible and measuring existing project costs and benefits and getting IT involvement is definitely required. Magic numbers plucked from thin air are never useful but do need to be balanced in terms of value maximisation and technical feasibility.

The focus for the project implementation should also be different from traditional methods. The focus should no longer be ‘keep to the plan’. It should instead maximise the value the business gets while keeping aligned with the business objective. Agile projects provide a great way of doing this by splitting down the detail into chunks that have identifiable value, getting the business to continually identify what is valuable in relation to their business objective and then getting the value faster and earlier than a big bang approach.

I’d love to hear what you think about this so please drop a comment.