When KanBan crumples

The KanBan is made for the project. The project is not made for the KanBan. Adventures in refactoring!

So this week I’m seeing on the KanBan:

  • #101: “I want to be able to comment on a comment.”
  • #102: “I want to be able to post a question in response to a comment.”
  • #103: “I want to be able to post a comment or a question.”
  • #104: “I want to be able to post an answer to a question.”
  • #105: “I want to be able to comment on the conversation as a whole.”

This is oversimplified and (only very slightly) dramatized, but you see the overlap and the potential for confusion. These story cards are blocking a ton of other work that needs to be done in the next couple of weeks. And they’ve been claimed by different developers!

How did that happen?

Let’s see. Many of our team members are part-time, and by that I mean they tend to work nights and weekends. Not all the same nights and weekends.

The project’s “marketing guy” isn’t that familiar with the story card concept, but he’s the one with his hands on the requirements, so he writes most of the cards. There’s an extra level of indirection there, because I don’t get to talk to some of the primary stakeholders, and things can get lost or duplicated in translation.

I’m more of a Scrum person myself, so I’m not that good at enforcing story-card-writing discipline in a KanBan environment.

And a couple of our sharpest Rails people just joined the team recently; they’re making significant (very well thought) changes in the data models, but the rest of us are a little slow to catch up.

If it’s not one thing, it’s everything.

We went through about a week of finely parsing where Alice would implement the regular comment because it was on her card, but Bob would implement comment-on-a-comment because it was on his card…

Call me dense, but I figured out eventually that when you see a bunch of overlapping cards in a kind of mixed-circular blockage, it’s time to refactor the board.

So that’s what I did.

I posted this on our BaseCamp site the other day:

Just sharing my observations on what is and isn’t done in the whole cluster of [certain story card numbers]:

  1. Discovered case sensitivity in Ubuntu (and thus EngineYard) servers when finding partials. You should always :render ‘foo/partialname’, never ‘Foo/partialname’. The Mac OSX platform will forgive you, but staging will not.
  2. You get “grayed” text from the jquery placeholder plugin even when you’ve already started to enter text in the textarea.
  3. I’m not sure questions are fully implemented.
  4. Answers are definitely not implemented.
  5. Uploading videos, images, and PDFs–not implemented.
  6. Post a comment to a conversation, it shows up nested as a reply to the last added comment.
  7. Comments render in an overlapping manner.
  8. Not showing user avatars or profile pics, so alt text is always seen.
  9. You should be able to comment/question/answer/etc. anywhere in the discussion tree, not just at the end.

It’s really intertwined. These cards overlap like crazy. But this is what it takes to get the whole comment/rating/question/answer/asset thing working and looking good.

Then I started hanging out and pairing more with Kevin, the new guy. He’s new to projects of this size, and I have way more development experience, but he’s also concentrated on Ruby and Rails way more than I have. We worked our way over this list yesterday, refactored a little, implemented a lot, and spotted three more issues that brought the fix list to 12.

(Along with Kevin, I agree that relying too much on JavaScript is a recipe for stress and heartbreak.)

Kevin’s off this weekend, because not all grownups work seven days a week, but I’m on a roll with the remaining six items on the list of twelve. So if it goes well this blockage will be cleared by Monday.

The uptake on this

The KanBan is made for the project. The project is not made for the KanBan. Let’s just refactor this complex blockage into something we can fix, and move on.

1 thought on “When KanBan crumples”

Leave a Reply

Your email address will not be published. Required fields are marked *