WikiSym 2005, October 16-18

Come to WikiSym 2005 on October 16-18 in San Diego, California. Held in conjunction with OOPSLA, it’s shaping up to be an excellent conference. Along with usual suspects (Ward Cunningham, Jimmy Wales), Robert Haas, the former U.S. poet laureate, is keynoting. I’ll be moderating a panel on “Wikis in the Consumer Enterprise,” with Joe Kraus, Peter Thoeny, and Thomas Weigert. If you plan on attending, let me know.    (JQ3)

Extreme Usability Redux

Another great FLOSS Usability Sprint is in the books. As usual, great people make for great gatherings, and this event was no exception. But we did have a new goal for this event, and it resulted in some different outcomes, many of which were related to this new notion of Extreme Usability.    (JOS)

I have three overarching goals with all of these sprints:    (JOT)

  1. Improve the usability of the participating projects.    (JOU)
  2. Build greater Shared Understanding between the usability and Open Source communities.    (JOV)
  3. Catalyze community collaboration.    (JOW)

Additionally, as an organizer, you also want to “hit a home run,” as Jeff Shults likes to say. You want people to walk away feeling wonderful about themselves and about the group at large. As with baseball, you’re not going to hit a home run with every event, but you’re constantly hoping for it.    (JOX)

I think we hit a triple with our first sprint. We had great camaraderie and positive energy, everyone learned tons, and all of the participating projects made tangible progress. In fact, in the past few weeks, I learned that we made even greater progress with “catalyzing community collaboration” than even I had realized. Kieran Lal, Jan Muehlig, and Rashmi Sinha have all been developing tools for remote usability testing, a critical prerequisite for Open Source usability, where projects are usually distributed. (Our next sprint will most likely be a Remote Usability Sprint, tentatively scheduled for late Fall.) Mimi Yin‘s experiences at the first sprint helped form the seed for her most recent thinking for Chandler. Mimi’s informal discussions with Dave Greenberg at the first sprint influenced the most recent release of CiviCRM, and they worked together more closely this week. Most importantly, the many report-backs generated buzz in the community and helped bring in new talent, like Tony Chang and Jing Wu. There was also room to improve, though, and we incorporated some of that learning into this past sprint. All in all, people walked away feeling good.    (JOY)

This week’s sprint felt like a double. Once again, our projects made progress, people were buzzing and learning, and I think people had fun overall. Nevertheless, there was a cloud hanging over everybody’s head, one that made folks a bit more uncomfortable and the process as a whole more challenging. The cloud was the result of a special goal for this particular event — defining Extreme Usability.    (JOZ)

An Aside on Event Design    (JP0)

We did not define Extreme Usability prior to the event, largely because none of us knew exactly what it was. I had opinions, based on feedback from the first sprint and my own personal experiences, but I didn’t want to dictate the design of the event based on my own biases. One reason for this stemmed from my growing faith in the power of collective wisdom. Another reason was that I didn’t want people worrying too much about whether they were “doing it right.” My main concern was for the projects to get better.    (JP1)

Gathering a large group of folks with diverse backgrounds isn’t the most efficient way to develop a methodology. The vast majority of developers knew very little about usability, and only a handful had ever practiced Extreme Programming. We had 25 people attend, including users. In contrast, two people — Kent Beck and Ward Cunningham — co-conceived Extreme Programming, and they had many years of software development experience between them.    (JP2)

The other complication, which we downplayed, was that this was not simply an experiment in software development methodology. It was an experiment in Open Source software development methodology, which introduced its own constraints. Extreme Programming isn’t rampant in the Open Source community, primarily because its tenets are difficult to practice in this environment. Who is the customer? How do you pair program? What does a 40-hour work week mean, when you’re writing code on the side?    (JP3)

Given all of these factors, it seems unrealistic to have expected our participants to have contributed consciously to the creation of a new methodology. Why, then, did we try? Why this format?    (JP4)

My framing of Extreme Usability to the participants provides some insight as to why we chose this event format:    (JP5)

  • Agile Programming is an acknowledgement that software development is a collaborative process, and collaboration is hard. Agile methodologies offer a framework for alleviating these difficulties. Iteration and validation, for example, is a way to build Shared Understanding.    (JP6)
  • Methodologies like Extreme Programming lack an explicit role for usability practitioners. Extreme Programming provides rudimentary methods for developers to collaborate directly with customers, emphasizing “soft” forms of communication rather than requiring rigorous structure. User-Centered Design, on the other hand, incorporates into the process a usability specialist who has a range of methods for understanding user behavior.    (JP7)
  • The theory behind Extreme Usability is that usability practitioners should be co-collaborators with programmers for the entire lifecycle of the development process.    (JP8)
  • The biggest roadblocks for developers in this process would be to open up their minds, willingly and sincerely embracing the usability practitioners as codesigners, and accepting the possibility that their assumptions about the users and the design might be wrong.    (JP9)

The challenge is developing the framework in which usability practitioners and developers collaborate. This sprint was a laboratory in which we could experiment with this framework.    (JPA)

Rather than impose a more rigid process up-front, I wanted to test a general premise about collaboration: Eliminating barriers is generally more empowering than problematic. Pair Programming is a perfect example of this. A lot of programmers (and managers) react negatively to Pair Programming the first time they hear about it, because they assume that programmers need to be isolated to work effectively, and that they will be unable to collaborate effectively without this separate space. Experience has raised serious doubts about that assumption. We see a similar phenomenon with Wikis. Most people still assume that we have to impose structure and authority or our information spaces will devolve into chaos. Wikis obviously challenge this premise.    (JPB)

I wanted to watch how developers would work with usability practitioners with no preimposed constraints, hoping that our collective observations and experiences would result in a more useful framework than I could have come up with on my own.    (JPC)

The event was successful in this regard, but it came at a cost. We placed a heavy burden on our participants by making this goal collective and explicit. It’s hard, even debilitating, to be self-reflexive about process while you’re working. This was most evident on our second day. Frustration was palpable among our participants, as they struggled to both work on their projects and think about process. That everybody stayed positive and productive was a testament to everybody’s great attitudes, and for that I am grateful.    (JPD)

What Is Extreme Usability?    (JPE)

The conclusion among most of our participants, in the end, was that what most of us practiced was not Extreme Usability. I concur. Nevertheless, it offered some clues as to what Extreme Usability might be.    (JPF)

It may be a misnomer, for one. Rashmi Sinha suggested that what we were aiming for was actually “Collaborative Usability.” I would go further and say that it was “Extreme Design,” centering attention on the design rather than the overall development methodology.    (JPG)

Other thoughts:    (JPH)

  • “Customers” are not “users.” Once a customer becomes a codesigner, he or she loses value as a user, because he or she becomes subject to major bias from the design process itself. We attempted to include “users” as codesigners, which was wrong. You’re either one or the other (and it’s okay for a “customer” to be a codesigner), but you can’t be both.    (JPI)
  • Pairing is good. We required each project to bring two developers, and we assigned two usability specialists to each projects. However, we did not mandate pairing, and there were also other people working with each project. By the middle of the second day, each of the projects had figured this out on their own. If we do a second Extreme Usability sprint, pairing will play a central role in the process.    (JPJ)
  • Extreme Usability is not about taking shortcuts. Sprints are. The two should not be conflated. Many participants from our first sprint said that their biggest takeaway was that informal usability was valuable. You don’t need to have a high-overhead (i.e. expensive) usability process to develop usable software. I think this week’s sprint reinforced that. At the same time, I think it’s important not to conflate the sprint format with Extreme Usability.    (JPK)

Usability-Driven Projects    (JPL)

We intentionally chose early stage Open Source projects to participate in this sprint, but in doing so, we were still propagating what seems to be a given with all Open Source projects: they are started by developers. That naturally tips the power balance towards developers. I would love to do a sprint where the roles were reversed. Usability practitioners could bring project ideas — perhaps with wireframes or workflows — and developers would come to help with the design and implementation.    (JPM)

In a similar vein, Mimi Yin had a great idea. There should be an “inverted Sourceforge,” a place where usability practitioners — not developers — could start Open Source projects.    (JPN)

WikiMania Hackfest Day 4

Bits and tids:    (JM7)

  • I didn’t plan my Hacking Days schedule very well. I missed most of the first day, when the Mediawiki developers apparently made progress on a new metadata design. Days 2 and 3, from which I based most of my criticism, focused on servers and reliability, an area to which I really couldn’t contribute, not because I’m ignorant, but because I’m powerless. This morning, they discussed Single Sign-On and usability, two areas that I do know something about. Sadly, I missed these sessions, because I was too busy spouting on and on about how we really can save the world. Owen Davis, Fen Labalme, Kaliya Hamlin, and the rest of the gang will undoubtedly kick my butt when they read this. In my defense, I managed to talk a bit about Identity Commons later in the day. I also plugged the FLOSS Usability Sprint, and met Zeno Gantner, who’s done some usability studies on Mediawiki.    (JM8)
  • I was one of the featured participants for the afternoon “Wiki developers informal discussion,” along with Ward Cunningham, Sven Dowideit, Christophe Ducamp, and Brion Vibber. Domas Mituzas, Wikimedia Foundation‘s head of operations, asked Ward, “Why Camel Case?” I won’t go into the explanation here — I have a long interview with Ward, to be published eventually, that explains this in detail — but you should know that hating Camel Case is a running joke among this community. I laughed along with everyone else, but when Sven mentioned his desire to remove Camel Case from TWiki, I felt compelled to pipe up. I gave a balanced defense, describing Camel Case’s advantages over free links, but also acknowledging the appropriateness of free links in Wikipedia. Then I got a very amusing introduction to Erik Moeller, one of Mediawiki‘s core contributors and the Wikimedia Foundation‘s chief research officer. Erik had a strongly worded response. It got a bit heated, but never overly so, and I closed by saying that we were in violent agreement. We laughed about it over dinner, but then we got serious again. We also talked about Purple Numbers. I’ve explained many times why I may seem like a poor evangelist, but I think Erik was one of the few people who appreciated my perspective. He was clearly not a big fan of Purple Numbers — as it turns out, he was somewhat familiar with my work — but after hearing my explanation, he responded, “Only intelligent people are going to understand what you just said.” Fair enough. Fortunately, regular folks don’t need to get Granular Addressability for Granular Addressability to become ubiquitous.    (JM9)
  • A group of us broke out into a small group to discuss a Wiki Interchange Format, knowing full well that this is an issue that’s been discussed many times before (Wiki:WikiInterchangeFormat, MeatBall:WikiInterchangeFormat). Nevertheless, I think our discussion was not only constructive, it has a high chance of succeeding. See my summary.    (JMA)
  • Magnus Manske, the original creator of Mediawiki, participated in our Wiki Interchange Format discussion. He also mentioned a clever idea: a “shopping cart” where people could aggregate and possibly export Wiki pages they were interested in.    (JMB)
  • Sven Dowideit demonstrated the prototype WYSIWYG editor for TWiki, based on Kupu. He also showed a WikiText editor with real-time preview, which was pretty slick. Also, Ross Mayfield showed me a prototype editor for KWiki in response to my previous post. Very good to see these things.    (JMC)
  • So many people have come to this gathering to learn from others with different experiences. Granted, all of these experiences center around Wikipedia, but I’m still envious. My neverending quest is for folks interested in collaboration to look beyond their own narrow domains for deeper insights.    (JMD)

Celebrating German Culture

https://i0.wp.com/photos21.flickr.com/31198670_641d9ebf93_m.jpg?w=700    (JM5)

Enjoying a brew at Restaurant “Haus Wertheym” in Frankfurt am Main. Photo is courtesy of John Breslin, who rescued me from tourism hell by recommending this restaurant for lunch. Also see John’s picture and comments of a group of us (me not pictured) at our prelunch discussion. I accidentally came out of the closet and revealed myself as an idealist, much to the amusement of Ward Cunningham. Countries represented in that picture: Canada (Ray), China / France (Feng), the Netherlands (Andre), U.S. (Ward).    (JM6)

WikiMania Hackfest Day 3

Today’s tidbits:    (JLI)

  • Ward Cunningham arrived this morning and gamely participated in the afternoon session, despite the long flight. At one point, he asked the Mediawiki developers what the consequences of a wrong architectural decision would be. The answers were revealing. These guys are faced with a tough problem thanks to scaling issues. By necessity, they have to optimize their architecture based on user behavior. However, this severely restricts their flexibility, because if their predictions about user behavior are wrong, it is extremely expensive to rearchitect, reimplement, and reconfigure. Moreover, Mediawiki really can’t develop agilely, at least not where new user features are concerned, for the same reasons. If they were part of a large company with plentiful IT resources (e.g. Google), then it would be a different story, but they’re not. This also makes Extreme Usability somewhat of a pipe dream.    (JLJ)
  • Funny observation from a Mediawiki developer (Mark) on downtime: They’re the only site that profits from downtime. When Wikipedia goes down, folks assume it’s short on resources and tries to donate stuff.    (JLK)
  • At the FLOSS Usability Sprint last February, we framed the following conflict between Open Source developers and usability practitioners: With usability, the mantra is, “You are not your user.” With Open Source, the mantra is Scratch Your Own Itch. Those two philosophies seem contradictory. However, it’s not so simple. Many new features in Open Source projects are user-driven, although the degree to which this happens largely varies. My impression with Mediawiki from watching the developers work and from talking to various members of the community — developers and users — is that the developers are open to feature suggestions, but are not particularly enthusiastic about user-driven design. Developers will implement suggestions, provided they are posted to Bugzilla. That’s a poor way of doing things, in my opinion. I’m picking on Mediawiki, but it’s a very common attitude in the Open Source world — it came up several times at the usability sprint — and really, in the entire software development community. With Mediawiki, I’m particularly disappointed, because they’ve got this huge, wonderful user community. As I said yesterday, the purely technical problems Mediawiki faces are fascinating in and of themselves. However, the opportunity to evolve some really cool user features should be just as fascinating.    (JLL)
  • Then again, perhaps Mediawiki just isn’t the place for this to happen. As I said above, doing Extreme Usability would be especially hard, because the high overhead imposed by the architecture makes it difficult to develop agilely. Maybe the place to experiment is with smaller communities, and Mediawiki can steal features accordingly. That, after all, is one of the goals behind the Blue Oxen Collaboratories — explore cool ideas in real communities and teams, and then propagate them so they are stolen far and wide. The only problem with this is that it’s almost impossible to duplicate the social effects of scale seen on Wikipedia.    (JLM)
  • I mentioned a “MySQL guy” yesterday. His name is Jan Kneschke, and while he works for MySQL, he’s really here to help Mediawiki with performance issues. One way he’s doing that is by advising them on migrating to his high-performance web server, lighttpd (pronounced “lighty”). lighttpd is a relatively new implementation of an old idea: rather than prefork or thread a web server, as Apache does, use a single event loop, which saves you tons of memory and CPU, especially at scale. It’s got some other cool performance tweaks as well. Jan is very sharp, and lighttpd seems to be taking off. Another high-profile site that uses it is Ruby On Rails. One thing I find amusing is that FastCGI, which has been around forever, seems to be making a big comeback. Ruby On Rails, PHP, Sympa, and many other high-profile tools use it. It’s amazing how old things can fly under the radar forever, then suddenly find new life.    (JLN)
  • Over and over again, I see that proficiency in one area doesn’t necessarily translate into others, even if they seem like they should. Folks in the Wikipedia community are incredibly knowledgable about online, emergent communities. However, judging from the conference design, they know very little about facilitating similar emergent patterns at face-to-face gatherings. Again, I’m picking on them, only because I’m here, but this is a widespread problem, and it further validates what Blue Oxen Associates is trying to achieve. Two things that the organizers here have done very, very right: Bring together great people and establish a wonderful culture of openness.    (JLO)