Friday, June 30, 2006

no wonder "agile" gets a bad rap

A colleague pointed me to this blog entry from an "agile" consultant who got fired early in the project. The really telling phrase is

"The process of discovery can indeed feel open-ended as it is the very nature of discovery to explore the domain of the business opportunity in an open way. The purpose of this "openness" is to find the appropriate scope, workflow, practical boundaries, and hidden benefits in an exploratory and visual manner."

That's ridiculous. The process of discovery is to gather the minimum amount of information necessary to begin delivering working software. Nothing else.

These people wasted their client's time and money and delivered nothing. I would have fired them too.

Wednesday, June 21, 2006

Ruby SOAP is amazing

Back in March I grumbled about the fact that the SOAP libraries included in the standard Ruby distro on Windows are fairly broken, and to get SOAP working with Basic Authentication, one has to rummage around the internet collecting and installing a couple of libraries written by Hiroshi Nakamura.

I take it all back. No more grumbling.

I've recently been working to port about 40 API functions from one SOAP server to a different, better SOAP server. We have client code written in 6 languages besides Ruby: Java, C#, Perl, TCL, VBScript, and PHP.

Ruby was the only language that continued to function 100% with the new SOAP server and all of the tweaks we made to the new server. (PHP did pretty well, too, but I can't test in PHP, and maintenance is tricky. )

The basic issue is that there is more than one way to generate an accurate WSDL; and there is more than one way to interpret any valid WSDL. Perl's SOAP::Lite module for example will not parse our new WSDL without major surgery on my part.

We eventually got Java and C# both working with the new SOAP server, but it took some tweaking on both the client code and the server code.

Throughout the entire project, not only were our tests (specifications) written in Ruby with Nakamura-san's libraries, these tests became our most reliable reference implementations also.

Very, very impressive work.