A conversation with Alistair Cockburn
Posted by andy in : Agile, Software on August 5, 2004Just listened to a nice online interview with Alistair Cockburn on Agile Software Developement.
Just listened to a nice online interview with Alistair Cockburn on Agile Software Developement.
I am currently helping a client with developer recruitment and stumbled across Johanna Rothman’s superb Hiring Technical People blog. Now added into my blog reader!
Nat Pryce has done a wonderful job of building an agile project replanner. Give it a try. I’m going to use this on all of my projects.
We had a weird problem today and thought other people may appreciate the fix.
We have a swing application deployed using Jave Web Start. A java swing JOptionPage was rendered without any GUI components - just a small grey square.
It only failed on Java Web Start and not when we ran the code from the developer machines.
Even more baffling, was that it ran on some machines via Java Web Start and not others…
So we fired up the Web Start console to see what was happening and it worked - the act of running the console changed the behaviour of the app!
Lots of scratching of heads…
The problem was that on some environments, Swing could not find the JGoodies look and feel for the JOptionPane. The fix is to force the UIManager to load the JGoodies class loader:
UIManager.put("ClassLoader", LookUtils.class.getClassLoader());
I have been playing with XStream for converting java classes into xml.
We can convert a class such as this:
Error: Could not open NotVeryUsefulBean.java
into xml that looks like this.
Error: Could not open NotVeryUsefulBean1.xml
The xml is nice and clean. Like most implementations, XStream embeds the name of the class in the xml. This can cause problems when you rename a class, or move it to a different package. The xml could be on a customers’ machine, well away from my refactoring IDE. I have been bitten by this lately.
Then I realised that XStream has aliases. Joe added aliases to make it easier to read the xml. You have to map an alias to a class in your code. Here is an example of using a “MyAlias” for the “NotVeryUsefulBean” class.
Error: Could not open XstreamDemoUsingAnAlias.java
And the xml now looks like this
Error: Could not open NotVeryUsefulBean2.xml
Not a class name in sight. When I rename classes and move them into different packages, the refactoring tool will update the alias without breaking the xml. Nice!
I had an interesting conversation with Tom Gilb at XTC. Tom pointed out something obvious (don’t you hate it when that happens). He argued that the phrase iterative is not that descriptive. Tom prefers the term evolutionary.
My dictionary supports his argument. It defines iterative as marked by tedious repetition, while evolutionary is defined as a gradual process in which something changes into a different and usually more complex or better form. Much better.
This got me thinking that Evolutionary Development is a much better phrase for explaining to new people what the whole thing is about. We are building software that evolves, not software that iterates!! I wonder why we started using the term iterative?
A wonderful article with some wise and amusing observations about software methodologies.