The no-iteration iteration

We were stuck.

There we were, a few iterations into new product development, and there was still no deliverable.

I was getting frustrated because the little bit of work I’d been doing on the GUI slice of the project wasn’t deployable because of some Cross Origin Request nonsense. Dave, who was implementing most of the server code, was deploying that to a site that I didn’t even have write access to. I could run my code locally, but then the Google SignIn service failed because it needed to make callbacks into my script which was running behind NAT.

Meanwhile, Peter The Security Guy was relegated to theory, with no actual platform to secure.

That Retrospective meeting…

…was kind of harsh. We hadn’t moved any stories into the “Done” pile except for the one in which Peter simply verified that the localhost bundle worked for him too.

So I skipped the usual questions, like “What was your overall experience in three words?” and “What specifically didn’t work for you?” and cut right to “What the hell?”

Bottom line, we weren’t ready to publish stories. Little nuggets of business value were simply not deliverable.

I called the non-iteration iteration.

Right now, we’re not in any iteration at all. We’re not moving stories. We’re not thinking in terms of a timebox. We’re making a point fixing the organizational and technical infrastructure that’s keeping us from getting things done. We don’t know how long that’s going to take, and it doesn’t matter. It’s the mother of all process blocks and nothing else matters until it’s solved.

Success!

Since that declaration, Dave put together a deployment process on Amazon’s Elastic Beanstalk. He also solved the CORS issue and made it a lot easier to change the value in our Javascript code that indicates where you’d find the REST data services. And he created a Vagrant bundle that contains a great development environment on any operating system.

More frustration though! That’s single-tracking work in its own right. At our scale, you often need one person to break many things at once in order to get them to work together and that leaves the rest of the team sidelined on that project.

What’s next

Given a few more days, I think we’ll have a deployment chain (development, QA, staging, production) that makes sense for the foreseeable future.

The important thing is that we’re not wasting time pretending that the current work belongs in “story” form. Strictly imposing a methodology that doesn’t suit the task at hand would be a #dudethatsnotagile thing to do.