A bit of discussion about update policy in Fedora has been brewing lately and I’ve been reading and thinking (and stewing and moaning and wringing my hands) about the discussion a lot. I noticed a few archetypes in the positions taken throughout the discussions:
Why should we care about what Caroline has to say? Well first of all, she isn’t involved directly in any of these discussions, so she has the least voice in all of this and to some point might not even be able to follow the discussion (“What’s a koji? What’s a FESCo? Who you callin’ YUM?”)
We should also care about Caroline if we want our userbase to continue to grow, and if we want to better fulfill our mission which is in part “to spread free/libre code and content.” I don’t think you can really spread anything without reaching beyond where it already is. Caroline has just as much right as the rest of us to enjoy software freedom, and she may even help spread it to more new users than we could reach alone if we can only capture her interest and inspire her.
Why should we care about what Pamela has to say? She’s pitching in here. She’s devoted a great chunk of her time (in many cases, personal & volunteer time) to help out, and she cares very deeply about the mission and soul of the project. The technology excites her, a lot more than it does Caroline, and she can help push more innovation and expand our capabilities if given the chance. If we lose all of our Pamelas, we lose our capacity to get keep things humming along.
Why should we care about what Connie has to say? She’s a community gardener. She’s making sure we’re open and transparent and enable new contributors to enter the project and she notifies us of issues as they happen, helping us course-correct. She helps recruit new contributors and make sure the environment for contributors is a fun and welcoming one.
Why should we care about what Nancy has to say? She may have been around Fedora for a very long time, from it’s pre-beginnings through all its growing pains up until now. She feels very close to it, and has for a long time, and is afraid of change and that the project is shifting to cater only to a user base that doesn’t include her and feel unwelcome. She doesn’t want to lose the OS she’s relied on all these years.
Where you stand depends on where you sit
This is something my colleague Adam Young told me this morning. It kind of resonates for me here – “Where you stand depends on where you sit.” I think at some level in the various discussions about Fedora updates, Caroline, Pamela, Connie, and Nancy are making assumptions and taking away completely interpretations of the same idea, and communication is breaking down, because they come from such different positions. Computing I think is really the world of the abstract, and because so many things like, ‘packages,’ ‘updates,’ ‘repositories’, ‘environments’, don’t really have real-world objects bound to them, folks end up using the same words to describe completely different things a lot.
Pamela wants updates to be constant throughout a release, no holds barred – she wants the latest Gimp and she wants it yesterday. Caroline just wants her computer to work – “please don’t change a thing – it worked yesterday – if it breaks before my presentation I’m screwed!” Can both their needs be met? I think so! But it’s easy to completely miss where interests and needs can both be met when the language is so easily interpreted to mean the problem is untenable. Let me give you an example of how I think both Pamela’s and Caroline’s needs could be met here:
Here, if Caroline runs stable (as she should be with a default install of Fedora), she might notice an update to the core system once a month or so, maybe occasional additional security or critical bugfix updates now and then. Not two hours’ worth of updates on a fresh F13 that took 15 minutes to install a month after release…. ahem. Pamela wants her newest Gimp and she wants it now – well, she’s got options. She can hook her system up to testing, and if the Gimp she so craves is not there, she can enable rawhide real quick to grab it, or look for a koper that’s got the latest and greatest Gimp – maybe a pre-release development version.
“Well, wait a minute!” you cry. “Once-a-month updates???” No, not exactly. Let’s zoom in a bit on that stable package graph, okay?
Why should update policies for the kernel, dbus, firefox, inkscape, xorg-x11-server, and cowsay be the same? Does that make sense? If an update breaks my graphics, I can’t use anything. If an update breaks cowsay, well… my clever MOTD is a little less clever but it shouldn’t break other apps. So why not bundle critical stuff that’ll really hurt our users in a huge way – the basics like networking, graphical display, hardware support, i18n input methods, sound – and put much more stringent guidelines on them than apps like figlet, xbiff, or xbill? If an application is relatively self-contained and can really only break itself – is it so necessary to be as strict about updates to it within a stable release?
Then we have a base platform that’s a bit more stable, letting Caroline live without fear, all without stifling gotta-have-the-latest-apps hunger of folks like Pamela. Hmmm. Stable base platform. That might make life easier for 3rd party developers such as Boxee, Amazon, and Adobe to provide support for Fedora, no?
If we had a concept of a base platform treated separately from applications…. for Caroline I think PackageKit would go from this:
About this blog post
I’m a designer, I’m not an engineer. I may be missing something insanely basic and be sitting in the midst of y’all, Dr. Evil-like with a big puff of Cappucino foam on my nose here.
Maybe I should have posted this to a mailing list. Well, I hate mailing lists, and I wanted this to be visual. If anything I hope you walk away from this post thinking that maybe sketching out some diagrams or working through some (basic, not fancy-pants) personas might help solve the problem in a more productive way than the flamewars that inevitably break out whenever you try to do something productive on mailing lists. (I wish we had something like this today, so bad.)
Actually even more importantly than that, I want you to walk away with the idea that this is a solvable problem and doesn’t have to disintegrate into bad feelings and flames. Even better, start sketching out your own ideas and possible solutions, feeling free to mark up my little sketches if desired. The Inkscape sources for my diagrams is available. If you’ve got an idea you can describe to me that is indeed awesome and might help solve some of this mess, I’d be happy to help you put together some graphics to help communicate your idea more effectively.
So what do you think? I’m going to try to keep my bar for the comments on this one really high, so I’m going to be really strict in moderating. You’ve been warned :)