June 2011 Blog Posts
Software Development Principle: The Last Responsible Moment for dummies

Within the Agile development community, Chris Matts is well-known for discussing in great detail the concept of Real Options, and how it can be used to better software development.

I’ll let you take a minute to look at the wikipedia post….yep, I don’t necessarily understand a lot of that either.  I like to think that I’m at least vaguely intelligent, but there’s an intense level of background knowledge required to really understand what is described there.

When it comes to software development, Chris and Olav Maassen have a decent InfoQ post that is a bit easier to understand.  One point from that article is what I want to talk about here:

“To use a familiar phrase, Real Options is about "deferring decisions to the last responsible moment," which is an explicit principle in the Lean Software approach. By avoiding early commitments, you gain flexibility in the choices you have later.”

The part of the InfoQ article that I think best summarizes “The Last Responsible Moment for dummies” is the following:

“Given any decision to be made, there are three possible decision categories, namely, a "right decision", a "wrong decision" and "no decision". Most people think there are only two; you're either right or you're wrong. As we normally do not know which is the right or wrong decision, the optimal decision is in fact "no decision" as this defers the commitment until we have more information to make a better informed decision.”

Let me give a dummy level example.

In conversation with a client, we were discussing very high-level requirements for a particular application, let’s call it Project A.  There were something like a couple of dozen requirements, a few of which would be impacted by another project, let’s call it Project B.  The timelines for both Project A and Project B were not fixed, but both were priorities.

Unsurprisingly, the conversation around the impacted requirements started to turn towards how they would be implemented, as if Project B was implemented before hand.

What became very clear, and which I emphasized in the discussion, is that we didn’t need to make any decisions at this time about those requirements.  If Project B was implemented before hand, we would need to consider the options available given that assumption.  If Project B wasn’t implemented before hand, we would need to consider the options available given that assumption. But, since we couldn’t know at this time what the status of Project B would be when Project A was being implemented, the best thing to do was to not make any choices but instead to lay out the possible options, and leave it to a later time to decide which option we should ultimately take.

In some sense, this is just common sense, but there’s a tendency when laying out even high level requirements to think that you have to make a choice right now.  But, you don’t have to.  Making a choice seems to be equivalent to making progress, but it isn’t.  Leave your options open until you have to make a choice at that time, and no sooner.  If you make a choice sooner than you have to, you will often find that you have to change that choice down the road.

Don’t be irresponsible when it comes to choosing the right option.  Instead, wait for the last responsible moment in choosing your option.

posted @ Thursday, June 30, 2011 9:38 PM | Feedback (2)
The Airborne Toxic Event – Sometime Around Midnight (Live)

side note: there are other, better, versions of them playing the song (this version is slightly shortened and the lead singer fails to hit the Note O’ Desperation ™ in the last verse), but almost all of them seem to include ads that run before the video.  Is this just random, or is it something YouTube is doing across the board?  There’s nothing like finding a video you want to watch and then having to wait 15 seconds determining whether or not you want to buy a Ford F150.

The particular lyrics involve the death of a bar room romance (not that I have any experience with it, but, kids, don’t fall in love with someone in a bar, it won’t work out.  I mean, Lord knows some of you are going to try, there’s something about getting punched in the nether regions that some people insist on experiencing first hand instead of just avoiding it.  Not that I have any experience with that either.  But I digress.), but is a very well expressed song about losing someone and continually being reminded about it.  Or something like that.

And yes, the violinist/keyboardist/backup singer looks like she was a member of Prince and the Revolution.

Then she leaves, with someone you don’t know
But she makes sure you saw her
She looks right at you and bolts
As she walks out the door,
your blood boiling
your stomach in ropes
Oh and when your friends say,
“What is it? You look like you’ve seen a ghost”

Enjoy the angst.


posted @ Monday, June 20, 2011 9:29 PM | Feedback (0)
Presentation Pointer: Watch the clock

And I don’t mean the typical scenario.

Typical scenario: you create a presentation, and you don’t necessarily practice it, and then 25% through the actual presentation, you’ve used up 50+% of your time already.

Well, this is kind of like that.

For various reasons, the start time of the presentation was delayed 30 minutes or so.  About 25% of the way through the presentation, I checked the time (no clock in the room, so checked on my phone), and my brain totally forgot that I started 30 minutes late, so I thought I was way behind schedule and started zipping through some slides in record fashion.

The benefit was that it ‘forced’ me to get to the point, i.e., the meat of the presentation.


posted @ Friday, June 17, 2011 6:37 PM | Feedback (0)
Is RescueTime the new Pomodoro?

Scott Hanselman has posted about a tool called RescueTime that he uses to monitor personal productivity.  Fine and dandy.  Read his post.

What I wonder is if this is just another version of Pomodoro, and as such, should be avoided like the plague.

disclaimer: I’ve practiced Pomodoro in the past.  In the context that I practiced it in, I actually thought it wasn’t that bad.  Actually, it was, in the context I practiced it in, pretty decent.  Once I thought about it a bit, I dropped it like the plague, but not because it wasn’t well thought out.

Mario Fusco is, in this context, best known for criticizing Pomodoro:

“Let me slightly reframe my thoughts. Have you ever seen a civil engineer using a timer to keep his concentration while working on his projects? Will you trust in a lawyer employing the Pomodoro technique while is trying to defend you? Will you let a surgeon that needs a timer to stay concentrated on his job to operate you?”

If you are a software developer, do you really need a 3rd party tool to figure out that you are spending too much time surfing porn that it gets in the way of delivering software?

posted @ Thursday, June 16, 2011 8:19 PM | Feedback (0)
Using TransactionScope : The Transaction has been aborted

This is a pretty generic error message that can pop up.  As always, there are many possible different causes for it, but here’s one.

If you have any nested transactions, and the inner transaction isn’t ‘done properly’, you can get this error message in the parent transaction.

So, in my case, I had a typical using (var scope = new TransactionScope()) section, and was getting this error message when I called scope.Complete().

The reason was because, inside that using statement, I had a call to another method that had its own (var scope = new TransactionScope()) section, and in that inner call, I was not always properly calling scope.Complete().

A bit nasty, but there you go.

posted @ Tuesday, June 14, 2011 11:30 PM | Feedback (1)
Take a minute and thank a veteran

I’ve posted about this before, but got an email today from a friend of mine about a family member who was in the army and just died in Iraq.

These people are true heroes.  They let us bitch and moan and whine about irrelevant things like software development. 

Perhaps it is the Lutheran in me, but it really doesn’t matter what your political stance is, or if you think the efforts in the Middle East are worth doing or a total mistake, the soldiers on the ground deserve our thanks and our respect regardless.  Always show respect, especially for those that do things for us that most of us (at least this is true for me) could never possibly do. 

If you see a veteran, take a second and thank them. It’s the very least they deserve.

posted @ Tuesday, June 07, 2011 9:04 PM | Feedback (0)
Roger Waters – Amused To Death (Live)

Update: For copyright reasons, this is no longer available on YouTube.  I don’t know what the original source was, so cannot point to that.

I encourage you, if you are interested, to find other ways of hearing this song, especially if it involves paying the artist who created it.  Thanks.

I’ve posted about the album before but there’s a good concert video of the title track available.  It has the obligatory Pink Floyd-ish trio of swaying female background singers, and well played guitar riffs, but although the music itself is well done, it is somewhat besides the point.  Since it covers most of what is relevant, I repeat what I said before here about this song:

“The Wikipedia article on this work states that there is an ‘uplifting’ ending, where the vet who had to abandon Bill Hubbard recounts seeing his name on a memorial and feeling a sense of relief.  I think this is completely wrong.  The vet is recounting the fact that he lived 60+ years of his life with a sense of powerful regret and sadness.  I guess it is better than dying with the regret, but it seems clear to me that the point of the narrative within the song is to highlight the regret, not the sense of relief so many years later.  Regardless of what one might think about the necessity (or lack thereof) of war, maybe it is my personality type, but that overall sense of regret “if there was something  else I could have done…and that always sort of worried me” is searing (“when I was 87…1984, 1984”).”

From Roger Waters’ perspective, this is clearly an “anti-war song” (whatever that means), but I think in general, as odd as this might sound, this is simply the best musical expression of what a movie like Saving Private Ryan expresses, a direct expression of the cost of war, as well as the cost of regret.

Since it is hard to hear in the video, here’s the text of what is spoken at the end of the video:

[Alf Razzell:]
"Years later, I saw Bill Hubbard's name on the memorial to the missing
at Aras. And I...when I saw his name I was absolutely transfixed; it
was as though he was now a human being instead of some sort of
nightmarish memory of how I had to leave him, all those years ago.
And I felt relieved, and ever since then I've felt happier about it,
because always before, whenever I thought of him, I said to myself,
'Was there something else that I could have done?'
[Background: "I'd rather die, I'd rather die..."]
And that always sort of worried me. And having seen him, and his
name in the register - as you know in the memorials there's a little safe,
there's a register in there with every name - and seeing his name and
his name on the memorial; it sort of lightened my...heart, if you like."
(Woman) "When was it that you saw his name on the memorial?"
"Ah, when I was eighty-seven, that would be a year, ninete...eighty-
four, nineteen eighty-four."

A brilliant song.

posted @ Friday, June 03, 2011 8:02 PM | Feedback (0)