Doing My Maintenance Rotation Lately

I just finished a call with Curtis to figure out how to fix these pesky ShortListTooBig errors that crop up from time to time (like bug 680131). When I finished the call, I had that "a ha!" moment where I thought, "yes! this is why I like the new squad system in Launchpad!"

The problem here is that we use a snapshot mechanism in Launchpad to be able to check the state of an object prior to a given operation on that object. This falls over with large collection objects on Launchpad and we occassionally get the bug like above, which requires us to add a doNotSnapshot call to collection fields. It's stupidly simple to fix, but I wondered why we just didn't quit snapshotting collections anyway. After my call with Curtis, I now understand why we once needed this behavior -- it's to do with needing a reference to the last known comment on a bug or question -- and I now have a plan how to fix up the event object properly and will remove this for all collections after that.

The bug fix is really not that interesting or important, though. That's the background for all this. The interesring bit was Curtis and I talking about Launchpad as an entire application, and how this could be fixed, and how it was relevant for bugs and questions alike and maybe merge proposals. And it just really felt good to be thinking about how to fix Launchpad and not just some small part of it. Previously, I would have likely been thinking about the impact to the bugs part of Launchpad and looking over the simpleness of the proper fix.

Sure, I always had freedom to fix Launchpad however I wanted, but not thinking like a bugs developer makes it easier to spot the obvious fix better.

This mainteance rotation has generally been useful, fun, and interesting like this the whole way. My squad has been on maintenance work 3 or 4 weeks now. The "maintenance rotation," as we call it, is part of how Launchpad manages assigning developers to feature or bug work. Each squad gets a turn at a feature, then a turn at maintenance. Francis has some nice posts on the Launchpad blog for how we decide what to work on next and how we pick feature work.

So I'm working on this sort of bug, making Launchpad itself incrementally better every day. Abel has been burning down timeouts like there's no tomorrow. Aaron has been doing a nice mix of large and small fixes, and Henning's been working on some security issues. Basically, we're really focused on trying to burn down the list of critical bugs by our next Launchpad team sprint in June.

So far, so good.

Posted by deryck on May 23, 2011

Post a comment