27 April, 2006

There It Is...

There's the idea, the meme (via Dave Hoover's Blog). If only I could have articulated it so effectively. Oh well, I suppose I need more practice. I used to write so much better before the Army. I did it once, I'm somewhat confident I can do it again ... unless I'm too old. Anyway, my mind wanders again (is that age?). Mr. Hoover references the following quote: (I believe from Justin Gehtland)

The "safe language" argument appeals to fear, while the "flexible language" argument appeals to a sense of opportunity and adventure. Both are powerful motivations, so for a long time this argument has been a stalemate. Happily, that period is coming to an end. Two new factors have come into play: automated testing and transparency. Over the next five years they will turn the balance totally in the favor of more flexible languages.

I have a bit more to say about this, but I think I'll mull it over a bit more first. It's a loaded subject.

On the subject of dynamic languages: the new apartment is mostly unpacked, so I hope to find some more time to play with Ruby and Ruby on Rails. Between RoR and Eclipse Monkey, I'm like a kid with way too many toys. I have to apologize to all the gracious folks from CitCon that I promised to contact, it's been a bit hectic.

12 April, 2006

Agile ROI

Via Maruis Marais: Thoughtworks (one of the gracious sponsors of CitCon) commissioned Forrester Research to study the return on investment of their Agile practices. They've published their results here. The results are very encouraging. For example:
Client: Four Fortune 500 Companies

Results:

  • Improved time to benefit by 69%
  • Reduced cost by 57%
  • Reduced effort by 62%
  • Reduced critical defects by nearly 80%
  • Reduced overall defects by more than 60%

Participants in the study indicated they realized or expected to realize 29 to 66 percent risk-adjusted return on investment over three years using ThoughtWorks' agile development approach.

This is not surprising to those of us who've already had a taste of the Agile kool-aide, but hard numbers may help swing some skeptics.

These numbers show why we should do Agile. More value per unit investment. Moreover, the value is returned earlier in the development cycle.

11 April, 2006

Need

This made me smile. It's apparently a portion of a conversation held on the ruby-lang IRC channel. I saw it on zenspider's blog.
<zenspider> singletons are almost always a sign of bad design. <suryam> but i need it in my design... [...] <zenspider> "need" is almost always a sign of bad thought.
Classic.

06 April, 2006

CitCon

Heading off to Chicago tonight to attend CITCon ( http://www.citconf.com ). Should be fun. If not, Lydia and I really enjoy visiting Chicago.

05 April, 2006

You Must Be So Proud...

Saw this bumper sticker on my long drive home:
My gamer fragged your honor student
This popped up on the XP mailing list last week. I don't think I could agree more.
My experience is that the single greatest risk in a software development project is building the wrong software. The money saved by reducing costs is miniscule compared to how much you are risking by building the wrong system (or even building a few features nobody needs). No matter how many SMEs and proxy customers you involve, and no matter how many prototypes and models you build, there is no better way to determine if you are building the right software for your market than the earliest possible release of working software to real end users.

Steven Gordon
Too often is seems that software teams introduce tools and extra processes to try and make sure they're building the right software before they start. How long will it be until we learn that this strategy doesn't work cost effectively?

04 April, 2006

File search and replace with Perl

So, I want to search a bunch of files and do some text substitution. This is a fairly common task, but I can never remember how to do it. Here's how: In Perl:
perl -pi.bak -e 's/FindThis/AndReplaceItWithThis/g' *.fileExtension
This will do the substitution "in place," backing up the original file with a copy having the .bak extension. If you're brave, you can leave off the .bak extension and no backup will be made. I don't remember just now how to do the equivalent in Ruby, I'll come back and update this when I get a chance.