Wednesday, March 28, 2007

This Crap Stops Now

Like Leonard Pitts said last month, "This is the first and last time you'll ever read this: I agree with James Dobson."

I guess I'm having a Leonard Pitts moment: At some point, you have to stand up for decency. I got that freedom-of-speech stuff pounded into me pretty good at the Indiana University School of Journalism, and I have to say I still believe that John Milton got it right way back in 1644, with the Areopagitica:
And though all the windes of doctrin were let loose to play upon the earth, so Truth be in the field, we do injuriously, by licencing and prohibiting to misdoubt her strength. Let her and Falshood grapple; who ever knew Truth put to the wors, in a free and open encounter.
But read this post by Kathy Sierra, about how blogged threats of murder and sexual crimes are keeping her a prisoner in her home, and you begin to wonder. I don't think the answer is to legislate morality on the Net. But I do think that, anonymity and geographical isolation aside, we are a community, and we'd bloody well better act like one and ostracize these animals.

I, for one, would be perfectly happy with a Net that's strongly authenticated. Level playing field: I can't post without revealing who I am, but the FBI agent snooping my blog is traceable too, as well as the terrorist schmuck he's after.
Whether or not we get that, socio/psychopaths won't give a rip if we shun or despise them. But for those who feel safe offending merely because they think they can't be outed:

Think twice.

Once you post this kind of garbage, you can never be sure that tomorrow you won't find your name plastered all over the Net as that of a wannabe sex offender. You know, the Net that your kids live in? That one. Can you really trust everyone in the chain to keep your secret? Because that's all it takes, you know. The ISP. The person on whose blog you comment. Someone performing an analysis of your text and comparing it with what you might have posted elsewhere, under your real name. Your friend or family member who happens to catch this sick stuff on your monitor.

Oh, we won't libel you. No need. All it takes is your identity, connected with a reasonably high confidence factor to some of the filth you put online. Nonrepudiation's a bitch, ain't it?

I'm off to offer Kathy a word of support. Hope you do too.


Wednesday, March 21, 2007

Day 2 at SD West

First I've got to cover the night before.

The conference director was gracious enough to let me crash the conference speaker reception last night, which was the customary blend of excellent food, free beer, and really, really good conversation with some real luminaries in this field.

Then I overheard the director say that they were going to have to cancel a session Wednesday. It was unfortunate that with their brand-new Ruby track, the session introducing the language would have to be cancelled because the speaker couldn't make it!

"Ruby?" I said, fueled by an Anchor Steam on not enough food (yet). "Heck, I could do a talk on Ruby."

"Why are you all looking at me like that?"

So it was back to the motel room, haul out the laptop, and start pulling together a 90-minute presentation. It's 10:00 PM, the session starts in 10 and a half hours, go!

I said "Umm" way too much, but did not crash and die. I got to work in the Muppets Swedish Chef in order to show off Ruby's facility to reopen classes and add methods at runtime (I chose to just hack Object). Astoundingly, without having rehearsed the talk even once, I finished up at 86 minutes, just in time to read the show announcements. Hey, that was actually fun!

Next up was Alastair Cockburn on Crystal Clear and its related methodologies, which seemed to make so much sense with so little dogma that we're going to have to try some of that stuff out.
From there, I went to hear Ken Pugh talk about concurrency in Ruby, which sounded so cool that I wanted to run back and try it out, except for all the wonderful ways to shoot oneself in the head provided by threading.

In half an hour the Excellence In Programming and Jolt Awards kick off. Woo and hoo! Of course, then comes the show party, which ought to be worth attending (even if briefly). At least now it's no longer a command performance for me!

Monday, March 19, 2007

Day 1 at SD West

What we do follows us around.

Last year, I taught a mostly-successful half-day course at SD West, focusing on Ruby, Rails, and Ajax. "Mostly" successful, because I spent so much time on Ruby that I really didn't get to Ajax at all, let alone database migrations, testing, before_filters...oh, tons and tons of stuff. So I kind of cringed, chalked it up to a learning experience, and figured (A) plenty of people nevertheless got value out of the class and (B) anyway, it was now in the past.

Except today, one of my fellow West attendees recognized me. "Didn't you teach a class on Rails here last year?" I said "Yes" and ducked quickly, but he proceeded to say such nice things about it that I blush to repeat them here. When he got to "So, are you going to write a book or something?"...all right, that made my week and it's only Monday. I neglected to scope your badge, my friend, but it's YOUR FAULT I had so much trouble getting into my room tonight, my damned head kept getting wedged in the door. So thank you. And, yes, I'm seriously intending to write a book. I have two in mind, in fact, one on security and one explaining to outsiders just what the hell it is that we do, and how to take best advantage of it.

That kind of encounter is obviously enjoyable, but also chastening: It's really a big responsibility to be up there. If what you say is crap, at best you're wasting their extremely valuable time. At worst, they'll follow the garbage you gave them and REALLY get into trouble. One of the best things about writing for Software Development, God rest it, was that the readers were hair-triggered on the keyboards whenever their Bullshit Filters lit up.

I'm pleased to say that Johanna Rothman's half-day this morning was both very enjoyable -- I'd forgotten what fun she is to listen to -- and potentially quite useful for our team. "Predicting Project Completion" presented techniques for estimating projects in a fashion more useful than the S.W.A.G. (Scientific Wild-Ass Guess).

One good takeaway for me was "Schedule Games", all-too-common antipatterns of interactions between project managers and their higher-ups. I blushed to hear some of my own words in some of them, like We'll Go Faster Now, We Can't Say No, and 90% Done. (Though I meant to ask her what Pants On Fire and Happy Date were, if nothing else they would have been good for a laugh!)

Another one that we'll have to internalize is the necessity of measurement so that you can update your schedule as time goes on, and getting some idea of how your estimating is doing. I'm seriously thinking about deploying one of the nifty project-management tools I got via the Jolts this year (maybe Teamwork or Version1). Since our projects at UW usually have only one developer, and never more than three, these tools always seemed like overkill. But I'd really love to extract a little more detail than "I felt good" or "I feel guilty" out of our performance on any given project. And Johanna really, really is sold on the value of velocity charts, though I suppose one doesn't have to drag in a whole PM tool just to get those!

And today I finally grokked "relative sizing" and how it relates to durations -- thanks Johanna! Basically, the idea is that you sort your tasks (features, or user stories) into buckets based on your team's best estimate of their relative difficulty (do NOT try to express this as duration yet!). A Fibonacci sequence seems to work well: The tiniest things are 1s, 2s are twice as big, then you have 3s, 5s, 8s, 13s, 21. There's some question on how many bigger buckets to make after that, Johanna recommends 40, 60, 80, 100, where 100 stands for "too hard, you don't know anything about this one, break it down into smaller tasks".

Then you shake the list, ensuring that all the 2s look about the same size. (Why the 2s? Well, 1s tend to be less than a day, and so they're too teeny to be useful). Figure out about how many person-hours a 2 is, cut that in half, and you've got your scaling factor for each bin.

Labels: , , ,

Friday, March 16, 2007

Leonard Pitts on Morality

Reasoned, measured, thoughtful...cleaves Pace neatly in two. Erudite example of someone taking the moral high ground away from a bigot. Especially delicious because (a) Pace was weighing in on a moral issue in the first place, and (b) Pace is a Marine, for whom "take the high ground" is dogma.

He's right -- it is a "visceral" issue, not a moral one. Were my son to bring home a boyfriend someday, I'll take it right in the gut. But I hope that I'd have the decency to behave according to my beliefs, not according to how I was programmed in the Eisenhower, Kennedy, and Johnson eras.

Friday, March 09, 2007

From Steve Young's "Weekly Thought Out News"

You Got To Have Heart? Not Necessarily - Vice President Cheney had a health scare when a blood clot was found in his leg. "The clot moved toward the heart area," said one of Cheney's surgeons. "In a normal person that might be fatal. Luckily, Mr. Cheney hasn't had a heart in there for years." The Vice President was fortunate enough to receive the best medical care, because as fate would have it, he wasn't a veteran.

Tuesday, March 06, 2007

Build a better mousetrap...

Recent YouTube gleanings:

Video of a brilliant "live-catch" mousetrap:

The Help Desk solves a knotty technical problem in medieval Scandinavia:

So...what DOES happen if you chuck a dozen bend-and-shake glow sticks in a seriously brawner blender? Yes, I know, I was wondering that too:

Response to a Jolt Award critic

This started out as a comment on someone else's blog, but "just growed".

Original anti-Jolt rant here. You'll want to go there first or this will make no sense.

My response:

Mr. McGovern,

I wanted to wait until the judging process was over for the year before responding to your blog post. I had to laugh at the general tone of your post, especially the George Bush graphic. If only we judges had a fraction of the mystery and power you seem to ascribe to "they" (i.e., us)! Not to mention the unanimity that you imply; the judges are without question the most cantankerously independent herd of cats I've ever encountered professionally.

As for the lack of reader input on nominations, you may have a point there. This is why the Reader's Choice Awards were instituted. I personally regret that they seem to have gone by the wayside, I was one of the judges advocating that readers' nominations be considered in the Jolt mainstream and was only partly mollified by Reader's Choice.

"Folks such as Martin Fowler, Scott Ambler, Dave Thomas, Uncle Bob and other agilists serve on panels that help choose the winning products"...well, I'm flattered to be a 'folks such as' THAT august group. Unfortunately you need to check your facts, only one of those people is a Jolt judge and he regularly has to recuse himself because he's a prolific author in the space.

The process is necessarily subjective; a popularity contest among the readership would be "fairer" but much less useful to people actually interested in choosing tools. You can take or leave my personal credibility, but when people like Mike Riley or Andrew Binstock or Larry O'Brien weigh in on a tool, you'd do well to listen if you care about your organization's bottom line. It's not as if divine fiat has decreed "The Jolt Awards are the most important honor in software development". The Jolts matter as long as they provide value to the community, and not a heartbeat longer. But guess what? The industry still cares about them. Must not be as corrupt and scandalous as you posit. Or perhaps we've successfully pulled the wool over the eyes of the notoriously pliant and ignorant software-development industry for seventeen years straight. (And if you believe that one...let me show you the mail I get from readers when I goof in print. Ain't much gets past THAT crowd, friend.)

If you think you can do better, more power to you, start your own awards. (You're an industry "thought leader", it says so right there on your blog.) But you'll find that, no matter how much you protest your absolute integrity, no one is going to pay you the slightest scrap of attention. We earned our credibility, Mr. McGovern, and we earn it again every single year.

We don't publish much about the process, for three reasons: We don't want people gaming the system, we can't stand getting jawboned by sore losers (which happens often enough to disgust all of us), and we want the judges to feel absolutely free to express their opinions without worrying about who's looking over their shoulder.

But to offer a little insight, here's how the finalist selection process works: Vendors submit their nominations. As the list has grown, we've started requiring them to provide specific information (rather than just a URL to their product page) to justify why their product should receive the award. The judges then discuss the information, applying their knowledge of the industry to decide what is likely to be the most significant of the nominees, and finally vote by secret ballot. Frequently judges have experience with many of the products and can report on them; sometimes we have to go with our guts and try to predict what is of potential significance, even if it isn't hugely popular. Believe me, the issue of what constitutes a Jolt-worthy product is hotly contested -- every year.

We apply a sizable list of criteria. Is a product truly new, or just a bug-fix point revision of last year's? Is there widespread adoption? If not...should there be? Does a product have 'buzz'? Is it so worthy that we should put the weight of the Jolts behind creating some? And on, and on.

Finally, Mr. McGovern, I caution you to carefully consider the use of words like 'scandal'. It feels good when you rip on The Man, but forgive me if I take that a little personally, because The Man is me and some people who have earned my respect the hard way. If you have evidence of chicanery, the judges would sure like to know, because we want those people out of the process. I'm proud to be a member of this team, and I stand by them.