Archive for the ‘General’ Category

Guessing relevant test modules with Fault Line

Thursday, June 2nd, 2011

Launchpad’s test suite takes a long time to run. Far too long to wait for when you’ve made a change. And the likelihood that you’ve broken any given test is pretty small. So you probably want to start by running the tests that were likely to break.

You can usually guess which tests to run; if you’ve changed “archive.py“, you should probably run “test_archive“. But some connections are easier to miss, so I’ve hacked up a Fault Line, a bzr plugin that uses past changes to guess which test files correlate to the files you’ve changed. You can run it like so:

bin/test -m $(bzr fault-line --module-regex)

This will look at all the files you’ve changed, look at their recent history, and see which files tended to change in the last 100 revisions where you changed the specified files. The --module-regex option causes it to output a regular expression, assuming that the test files are Python modules. Otherwise, it would just output a list of the test files it found.

Thanks to Jelmer Vernoij, this is even easier to achieve for testing bzr. You just need to run “bzr selftest --auto“.

To install Fault Line, just run:
bzr branch lp:fault-line ~/.bazaar/plugins/faultline

It currently requires bzr 2.3 or later (e.g. stock Natty bzr).

Fault line is pretty limited right now. For example, the way it guesses what’s a test file is hard-coded. But a few days ago, it wasn’t even a proof of concept. Who knows what the future holds?

Countdown to the pie

Friday, May 27th, 2011

51

We are now one month away from the Dublin Thunderdome and the stakes of the game have increased substantially since last time! At UDS, Jonathan announced he was willing to take a pie in the face if we achieved our 0 critical bugs goal. Two others joined him in the bet.

As of this writing, we have 210 critical bugs left to fix to pie Jono, Ted and Neil. (203 actually, since  7 of those are bugs escalated after the bet announcement.) Unfortunately, their face seems pretty safe :-/ If we look at the trend of the last 4 weeks, we see that we are burning down about 12 bugs per week. At this rate, we would achieve this goal in 18 weeks, so around the end of September.  3 months too late for a pie! This week, the Yellow squad is starting on maintenance, so we’ll see if they can improve on the 12 bugs a week burn-down. I mean, that number is 3 times the long-term rate which is more like 4 a week, so we are definitively improving! Both because we are better at fixing bugs, but also because the number of newly found issues is declining. You can see the combined effect of this on the burndown graph as the slope gets much sharper on the right.

51

It doesn’t look much better on our third objective which  is to have a free slot in the stakeholders Next queue. This week the Teal squad resumed work on the our project to improve Launchpad privacy features. They did an initial break-down of the project and they have work until the next UDS! The Red squad is finishing off derived distributions, probably before the Thunderdome. But even then, at that point we would be starting on adding customizable columns on search results. And the Next queue would still be full at 2 items. On the plus side, we won’t be over our work-in-process limit anymore 🙂

I’m looking forward to see how this all turns out in Dublin, but whatever happens, at the very least, we’ll have succeeded early on our 9s timeout objective.

Photo by David Muir. Licence: CC BY-NC-ND 2.0.

Tilde or not tilde

Friday, May 27th, 2011

Hand-rail shaped like a tildeWhen Launchpad shows someone’s display name, it’s not always clear who it’s referring to.

With so many people registered in Launchpad, it’s not surprising that some of them share a name. However, every Launchpad id is unique. Mine’s matthew.revell and no matter how many other Matthew Revells there might be in Launchpad, I’ll always be the only one with that ID.

To help clarify who’s who, we’re going to show the ID in more places alongside the display name. Two of those places are the person picker — so you know for sure that you’re selecting the right person — and at the top of the profile page.

There was some discussion, though, as to whether people would recognise that we were showing the person’s Launchpad ID. One way to make it clearer, it was suggested, would be to place a tilde in front of the ID.

On Wednesday I set up a survey asking which of these you prefer:

Person picker with tilde

Person picker without tilde

And which of these you prefer:

Profile header with tilde

Profile header without tilde

Rather than say it straight out — i.e. do you like the tilde? — I wanted to see if people noticed it.

The majority of people who responded to the survey said they preferred the versions without the tilde.

For the person picker, 23.6% of the respondents preferred the version with the tilde and 76.4% preferred the version without.

For the profile page it was a little different and even more in favour of the version without the tilde: 18.4% preferred the version with the tilde, whereas 81.6% preferred the version without.

Thanks to everyone who took part. It’s now over the to Teal Squad to digest the results.

Photo by Fling Poo. Licence: CC BY 2.0.

Help us test something new!

Wednesday, May 25th, 2011

A man with a clipboardMy colleagues in the Teal Squad have been working on a small change that’ll make it easier to distinguish Launchpad users who have similar names.

We’ve got two quick questions in our new survey. Help us make it easier to tell who’s who in Launchpad.

The survey is open for 24 hours only, so get in before 18.00 UTC on the 26th May.

Take our short survey to help us make it easier to tell who’s who in Launchpad!

Photo by Elizabeth M. Licence CC BY 2.0.

Congrats, nigelb and chrisjohnston!

Monday, May 23rd, 2011

Congratulations and virtual cupcakes to nigelb and chrisjohnston who got their first changes in to Launchpad, and to the reviewers who helped get them finished off and deployed.

jml said it so well at his recent short talk:

I’m not going to kid you, [changing Launchpad is] not easy but it’s sooo worth it, you get to help all these people and you get thunderous applause like I did earlier, and really should have gone to those five guys.

(update: fixed mysteriously-broken video start-at time.)

Love from Budapest

Friday, May 20th, 2011

Unconventional Love

Jonathan (our Product Strategist) and I attended UDS-O in Budapest last week. Brad, Ian, Huw and Julian also came along for some part of it. And what great feedback we received from Ubuntu contributors! Working on a big and relatively old project like Launchpad can sometime be hard. From within, we are well aware that development is slower than it could be, that we have a lot of tech-debt and a big pile of Critical bugs, not to mention the hundreds of things that we know we could do to make Launchpad more compelling. Working distributed where you interact with users and fellow developers mostly through IRC and email, and sometime voice for “richer” communication makes it even easier to lose the perspective you get when you speak to real users face-to-face.

For me, UDS brought a nice uplifting fresh air (and that’s not a small feat when you know that this is a conference where you have sometime ~400 people in close proximity in the same room 😉 I don’t have enough fingers to count the number of people who thanked us for our performance work or for some other bug fixes we did! From their perspective, Launchpad development is going well and they want more! The performance improvements we did have been noticed! And people were thrilled by the new bug subscription work.

You can get a feel for the atmosphere by watching Jono’s 5-minutes lightning talk. The audience reaction is very much in line with the individual feedback we received.

It’s always great to know your effort are appreciated by your users. Thank to all the folks at UDS. Keep the love coming!

Photo by yixing h. Licence: CC BY-NC-ND 2.0.

A cream pie in the face

Monday, May 16th, 2011
4345671678_302dd39c5cLaunchpad has a lot of <a
href=”https://bugs.launchpad.net/launchpad-project/+bugs?field.importance=Critical”>critical
bugs</a>.  A month ago, we had close to 300 of them.  As of the time of
writing, we have 237.
Francis reckons that we can have zero critical bugs by June 27th.  I am a
little bit more sceptical.  To that end, I’ve make a wager with the Launchpad
developer community.
If we have zero critical bugs by June 27th, then I’ll let one Launchpad
contributor shove a cream pie in my face at our get-together in Dublin.
Since announcing this on Twitter, Ted Gould and Neil Patel have also
volunteered to be cream-pied if we meet this goals.
Here are the ground rules:
* launchpad-project, not launchpad
* The bugs have to be actually closed, and if fixed, actually released
* “Critical” is as defined on our bug triage page (and no cheating by
changing the policy)
* Any bugs that are escalated by Canonical stakeholders after the
announcement do not count, but any new timeouts, oopses and so forth do
count
* I will leave it to others to nominate a pie-er
* A custard pie would also be acceptable
If you want to see me publicly embarrassed in the tastiest way possible, then
now is the time to start fixing bugs.  I will make sure that the event is
filmed, photographed, instagrammed, live-tweeted or whatever it is that the
cool kids are doing these days.

Pie

Launchpad has a lot of critical bugs. A month ago, we had close to 300 of them. At the time of writing, we have 226.

Francis reckons that we can have zero critical bugs by June 27th but I am a little bit sceptical. To that end, I’ve made a wager with the Launchpad developer community:

If we have zero critical bugs by June 27th, then I’ll let one Launchpad contributor shove a cream pie in my face at our next get-together in Dublin.

Here are the ground rules:

  • launchpad-project, not launchpad
  • The bugs have to be actually closed, and if fixed, actually released
  • “Critical” is as defined on our bug triage page (and no cheating by changing the policy)
  • Any bugs that are escalated by Canonical stakeholders after the announcement do not count, but any new timeouts, oopses and so forth do count
  • I will leave it to others to nominate a pie-er
  • A custard pie would also be acceptable

If you want to see me publicly and deliciously embarrassed in the tastiest way possible, then now is the time to start fixing bugs.  I will make sure that the event is filmed, photographed, instagrammed, live-tweeted and made available in whatever ways the cool kids are mainlining their microtainment these days.

Since announcing this on Twitter, Ted Gould and Neil J. Patel have also volunteered to be cream-pied if we meet this goal.

Photo by little blue hen. Licence: CC BY 2.0.

launchpad @ UDS-O

Friday, May 6th, 2011

OcelotAs part of determining What’s Next?, Jonathan (our Product Strategist) and I will be attending UDS Oneiric next week (May 9th – May 13th) in Budapest. If you are running a session where you need input from Launchpad, or working on a Ubuntu project that would require Launchpad infrastructure change, be sure to subscribe us to the blueprint so that we know to attend the session. It’s likely that anything major that would require a full squad probably wouldn’t be able to be completed before late in the cycle. But there are certain small enhancements that could certainly be taken as part of the maintenance squad work.

Feel free also to grab us in the corridors or in the bar to give us praise and tell us how Launchpad is working great for you! We always appreciate those stories. If you want to complain, or tell us how Launchpad could be even greater if it had this extra feature or do this that way, well, that’s ok too, but will be better appreciated if you offer us a drink 😉

Photo by Chris Barella. Licence: CC BY-NC 2.0.

What’s next? Part 2: Features

Wednesday, May 4th, 2011

Where to?

In my last post, I explained how squads doing maintenance picked the next bug to work on. But how does it work for the other squads?

We have two squad that works on a project which is usually a feature. In this context, a feature means something that will take a team of 4-5 engineers several weeks (or months) to develop. It will usually need a good amount of discussion with the stakeholders to clarify requirements  and we’ll do user testing along the way.

We maintain a short queue of 2 projects to work on next. The items on the queue are determined through the Stakeholders Meeting process. The stakeholders cabal meets once a month (when there is a free slot on the queue) to discuss what’s should be the next items to be developed by Launchpad feature squads. The way it works is that before the meeting interested parties send in their proposal with justifications as why this is the most important piece. People discuss each other proposals. Then the Launchpad Product Strategist (Jonathan Lange) and I will come back with a proposal taking into account the stakeholders discussion. That proposal is discussed during the meeting and a decision on what to add to the Next queue is taken. We try to operate by consensus, but in the end, the Product Strategist has the final say.

The stakeholders group composition which is made of one representative from the major teams within Canonical derives from  the business goal of Launchpad which is to give Canonical a competitive advantage in delivering a high quality OS.

An error that is easily made from that would be to think that only the interests of people within Canonical matter in determining What’s Next? If that would be the case, it would be a very shallow view on our part and we would miss the more general aspect of achieving our business goal which is also to accelerate open-source software development. (Still to give Ubuntu a competitive advantage over proprietary solutions, but hey, it’s a well-known fact that Canonical is a for-profit company.)

The burden of taking into accounts the wide-majority of non-Canonical Launchpad users fall on our Product Strategist’s shoulders. He listens closely to users, in person, on mailing lists, by taking into consideration things reported during user testing sessions. You can always find his long-term plans on the roadmap.

I want something in, who should I talk to?

  • If you are within Canonical, talk to the representative working in your unit.
  • Otherwise, talk to the product strategist. The easiest way is to start a discussion on the launchpad-users mailing list.
  • For Ubuntu folk, we area working with the Ubuntu Technical Board to get a representative who would cater for Ubuntu Project as a whole. But they still haven’t made a decision as to whom they will appoint. Once they are appointed, you should contact them. In the mean-time, talk to the strategist.

Not all features are created equal

Not all feature requests will take several weeks for a squad to implement. For those that can be tackled by one engineer in one or two weeks, they’ll be taken by one of the maintenance squad. These small features can escalated by the stakeholders. (That was the other mechanism by which a bug could be escalated to Critical in my last post.)

When we put items on the Next queue, the feature definition is quite vague. It will specified through a LEP by the product team and the assigned squad once it’s time to work on it. But how that work and what happens after that is probably the topic for another post (as is the answer as to why people write LEPs before we decide to work on the thing).

Hope these posts shed some light on how we decide What’s Next?

Photo by Anonymous. Licence: CC BY 2.0.

How do we determine “What’s next?”

Friday, April 29th, 2011

What's next?

To many people, Launchpad development looks like a black box. People asks for thing in various places (the bug tracker, the mailing lists, IRC, directly to developers, or simply wish it out loud) and then, often unexpectedly, Lauchpad will change.

We strive to work in the open, discussing changes on the development mailing list or on the bug tracker, publishing our Kanban board,  announcing stuff here on this blog, often trying to contact concerned users directly. But because Launchpad is a big project catering to the needs of many different type of users, it’s easy to miss out on some people.

So here it is, the Definitive guide on how Launchpad folks decides what to work on next!

Since the squad reorganisation, the principles used to determine what’s next will depend on whether we are looking at a maintenance squad or a feature squad.

What’s next for maintenance?

Let’s start by the easiest case: maintenance. Squads on maintenance works from the bugs in the bug tracker. And then we work on bugs starting from highest importance (Critical currently). Our triage rules explains how we determine bug importance. That’s a very verbose page that in practice means today, treat it as critical if:

  • it’s a regression
  • it causes an OOPS or a timeout
  • creates operational issues

All the other distinctions  between High, Medium and Low at this point are  moot until we clear the backlog of such issues (see my status post to see how we are doing there). That’s not to say that we don’t fix High, Medium or Low bugs. Developers can, at their discretion, decide to work on such bugs if they happen to work in the area, or they find it related to a critical bug, or just because. But developers on maintenance will be generally found fixing critical bugs at this time.

Which one? We usually try to work on the “hot” ones. Those are the ones happening frequently or recently. But after that, it’s really up to developer’s discretion. They’ll usually pick based on their area of competence or area in which they want to acquire competence.

Once we are done with the Critical backlog, then we’ll tackle High bugs.  Again, the same kind of decision process will be used to decide which one to pick next: that is, developer’s discretion. The idea is that time on maintenance rotation should be mostly self-directed for developers.

There is another way that a bug can jump the queue, it can be escalated to Critical importance. Since it’s closely related to the stakeholders’ process, I will cover it in my next post where I’ll discuss on how we determine What’s Next? for  feature squads.

Photo by Crystal. Licence: CC BY 2.0.