Rob Smyth

Wednesday, 26 November 2008

More Thoughts - Is XP really Agile

'Agile' is term created at a meeting in 1999 (might have been 2000) by a gathering of mythologists who each promote a different methodology. This group concluded that they needed a word to communicate attributes that they all agreed on. The word they chose was 'Agile' and its definition is given by the agile manifesto here. Those present included Kent Beck who is co founder of XP but also those authors of many other methodologies. So 'Agile' was intentionally not intended to mean XP but was to enable communication of attributes that many mythologist find to be important.

Agile refers to 4 attributes concerning colloration. XP however is a process based methodology for teams and project management. Its primary focus is on the software development team. Doing XP is clearly defined as doing the 12 basic practices found here. Agile is a term used to describe collaboration while XP is a set of processes. XP is about how a team does things while Agile is about the attitude.

To say that Agile is XP is to redefine the intended and rob us of the language its authors intended.

In the software development industry process/methodology skills are not well developed. As a result it is not uncommon to find teams that claim to use RUP, waterfall, XP, etc, but in fact do not. Likewise most teams claiming to do XP do not.

XP does work. I know as I have seen it introduced into one company with some amazing successes. XP, like all methodologies, can also fail miserably. I've also seen this at the same company. Every methodology addresses a particular set of problems (e.g. efficiency or sustainability, short delivery time or predictability) and situations such as team size and critically. No process fits all and people always trump process.

The most common anti-pattern is to apply a methodology, such as XP, to an entire existing work force. People are different, projects are different, so processes/methodologies should be different. No company, with a large number of developers, will never be able to apply XP to all teams without first replacing most of its software development staff (not recommended).

Monday, 10 November 2008

The New UAT Framework Contenter - White

White is a new automated UAT (User Acceptance Testing) framework for Win32/WinForms/WPF applications. Perhaps a replacement for NUnitForms.

NUnitForms is a framework that layers over NUnit to enable run time application/user acceptance testing. e.g. Click button X and then expect dialog Y. It is not a unit testing framework.

I'm a developer on the NUnitForms team and a few weeks ago I took on the job of doing a new, much needed, NUnitForms release. But since then I've learnt about White and wonder if White is the future. I know one friend in Melbourne that is using it for UATs on a commercial project and the feedback is so far, positive.

I'm currently using NUnitForms. It has Vista compatibility issues that I think can be overcome without too much effort but WPF provides a brave new world. The crunch will come in the next few months, I would like to see if we can change our underlying UAT framework from NUnitForms to White. If nothing else, it would confirm how well we designed our own test jig / framework.

Get White here.

Get NUnitFramwork here (but download and compile, the last release is a bit old).