Business Making Better Decisions

Good business customers are a great resource. Today, at a Sprint review meeting, the product owner’s boss explained that she would really like another release planning exercise to determine when the team can deliver, but that she’s not holding anyone to a specific date. Then she followed up with something even better.

Well it turns out we’re going to make the second part of the system a lot simpler. We thought we needed the ability to do audits based on maybe twelve answers to a question. Turns out we’re at about 99% within standards on all our tasks and we don’t really get much out of asking detailed questions in the application. So we decided just to ask if it got done on time, or it didn’t. Just binary options. Therefore, there isn’t enough value in developing the more complex solution.

They get it, they really get it! This is one of the best payoffs you get out of Scrum, Lean, Agile. When you:

  • make development transparent
  • get regular feedback
  • keep asking the question, “Does this provide real value?”

You can dramatically reduce waste.

FitLibrary2?

I watched a Google Talk video by Rick Mugridge on using FIT and towards the end of the talk he mentioned a mythical FitLibrary2 which largely eliminated the need for writing Fixtures. I’m really not sure how this would work since he did a lot of hand waving around the issue, but apparently if you’re developing a really clean domain you shouldn’t need to use Fixtures at all unless you have to test the GUI layer or something similar. Sounds great, but I don’t think I’ll quite get it until I see some concrete examples.

Flow In Management Tasks

Friday I got stuck on getting a build migrated from CruiseControl to Hudson. It ended up taking about two and a half hours to track down and fix, some of which got done over lunch. (Turned out to be an issue with an empty directory not being checked out from CVS and Clover not being picked up in a CLASSPATH) I remember as I was working on it I really felt like I was in the flow state. I didn’t look at my email, calendar, or phone and I really never got up from my desk to look at anything, expect to walk upstairs and pull my lunch out of the fridge. I knew the problem had to be reasonable since the ant build worked fine in CruiseControl. I kept making progress and getting more useful feedback. When I finally cleaned up the issues and picked my head up again two and a half hours had passed.

I find it fairly easy to get into flow doing development, especially nowadays when development at work is an extra treat. I can’t remember the last time I was in the same flow state doing some management work, from working on training plans to strategizing on how to collaborate with our sales force more effectively.

I don’t find myself in the zone as often with management, so I have to really work at it. My best strategy so far has been to concentrate on getting one significant task moved forward each day. Maybe Monday morning I’ll feel the flow as I concentrate on writing up all the training requests and justifications for my team this year.

Dropping the Daily Scrum

In a recent Agile Toolkit podcast interview with Alistair Cockburn he mentions a time where he was helping a team through a retrospective and he brought up a provocative idea:

1
2
3
4
5
6
7
8
9
10
11
12
13
I was like, how do you like your daily standups.  There's shuffling of feet and everyone's looking down.  I asked how often do you do your standups?  

Three times a week.  

Well, how do you feel about that?

More shuffling, well, it's OK.  Finally one guy, a programmer goes "I don't like'em."  Turns out more people don't like them.

Well, you oughta stop doing it.  

But it's a cornerstone of Scrum, you can't not do daily standups.  You'll get kicked out of the community.

I' don't get a royalty on every daily standup, you want to take it out go ahead.

There weren’t any more details on how that played out, but the team apparently did just try removing the standup. I’ve had this conversation with several developers about standups. On some teams they seem like far too much of a chore and too stuck around reporting hours on tasks on a spreadsheet.

I did have one team where we took out the standup on Mondays and people were going to email their statuses around. That turned out to work pretty poorly as for the most part no one remembered to send the emails. Still if a team really wanted to experiment with no standups it’s their call. My guess is the better thing is to fix the reasons behind the dysfunctional standup. Jason Yip has a good recent post on standup patterns and ways to adjust standups that have the wrong vibe.

Getting Started on Haskell

I made a little headway on Haskell today.

Downloaded the GHCI environment to start running/compiling in Haskell. Had to find the Mac Intel port. Went looking for at least a TextMate bundle, turns out there is a pretty basic one available. Then started one of the basic Haskell tutorials.

After just an hour or so I feel like I’m on another planet, but that was the desired effect. Next up getting HUnit up and running.