Evolving product: Drupal Commons
The Drupal Commons 3.x interactive demo was posted recently, and we’d love your feedback.
But in the meantime, I'll go into the reasons Drupal Commons software was redesigned, our approach and some of the tough challenges we faced. In a future post, I'll get into the details of the design process.
Mission statement: Drupal Commons empowers communities with easy-to-use collaboration tools so that they can answer questions, share solutions and self-organize.
The goal and challenge for the Drupal Commons team is to combine an online collaborative environment, reputation metrics, events and more for communities into a single open-source product.
Beneath that, Drupal Commons is a packaged form of Drupal (commonly known as a ‘Drupal distribution’) that contains the majority of pre-built features that a social community or external community site might need. It provides a robust community site out of the box so that you don’t have to assemble all of the pieces yourself. Then all you need to do is invite people to participate.
There are many choices for creating online communities or social sites, and we are trying to put the most useful options into one single product. Not only that, it has to look good and operate better, regardless if it’s a brand-new community with just a few users and little content, to a massive community with hundreds of groups and thousands of users, like groups.drupal.org.
Drupal Commons background
Drupal Commons’ current incarnation is version 2, built on Drupal 6.x. What started off as an Acquia side project has grown into a viable product over the past couple years, doing remarkably well, now powering over 1200 sites. There have been several releases, including improvements to the UI.
Drupal Commons version 3 will be built with Drupal 7.
Over the past year, we've moved towards working in the open, in the Drupal Commons issue queue on Drupal.org. This allows us to utilize the knowledge and expertise of the Drupal community, and is in the spirit of open source.
Start with a competitive analysis
In order to build what customers need (and expect), we had to familiarize ourselves with similar products with a bit of competitive research. Over the years, Acquia has gathered details of who we're up against. In preparation for designing Drupal Commons, we delved a bit deeper.
The competition falls into two categories:
- the big, proprietary software packages such as Jive, Lithium etc who face a similar challenges as us
- the free (and freemium) social networking sites with a narrower focus
Social sites that impress
Love them or hate them, Facebook have nailed down social interactions between individuals. Meetup.com, Lanyrd and Eventbrite handle events beautifully. 500px.com, Yelp, Flickr, Quora, Stackexchange, Uservoice, Tumblr, Google Docs, and many more, all do at least one or two things really well.
The advantage of most of those sites is the user experience was designed for a narrow purpose and audience in mind. Nobody can download Quora and start changing it around like they can with Drupal Commons or any other software distribution.
By analyzing our competitors successes, and knowing who our target customers and their use cases are, we are well-equipped to design the best experience for them. In the end, we concluded that duplicating any other site wouldn’t work for Drupal Commons.
Goals of the redesign
You could sum up our goals as “Provide a great user-experience out of the box while preserving the ability for site-builders to customize their installations,” but specifically:
Great user experience
- Emphasis on user onboarding and clear calls to action
- Create better collaboration, community interaction and content creation tools
- Create an instant impression that invites evaluators into an immersive collaborative environment
- Create a feature rich product that's as easy to use as products with a single focus like 500px.com, Uservoice, or Tumblr
- ...yet emphasize usefulness over number of features
Support product upgrades
- Upgrade easily from D6 to D7 (obviously!)
- Retain D6 functionality that is not relevant for D7, but leave it disabled by default
- Eliminate redundant content types
- Support the migration of collapsed content types, either through type reassignment or a legacy content type module
- Embrace the flexibility of Drupal
- Design with new and existing communities in mind
Three design challenges
My mother always said, you can't please everyone all the time. This is particularly true when building a distribution. We want to build a product that is flexible and can be used for a variety of community sites. We are essentially building six products into one. The smaller struggles have been with adapting for the different user roles, smart consistency, language/terminology, as well as trying to keep it all as simple as possible.
After building a picture in our minds from research and stating our goals, we tackled the design. Along the way, three challenges emerged.
The first, as learned from the competitive analysis, is flexibility. But balance the usable vs useful, and the out-of-the box experience were also areas we felt needed to be addressed.
Flexibility is the key to Drupal Commons. As the old saying goes, “If you want to make a blog, use Wordpress; if you want to make Wordpress, use Drupal”. A Drupal Commons site could be used to vote on the best brunch places, or collaborating on ways to help new programmers ramp up, or be focused on events and meetups. Or it could be a company intranet, with groups for every department, interest and geographic region.
Since it’s Drupal, the site owner can add or remove content types, change displays, and set up new landing pages. Our job is to anticipate how the site can scale, and I am sure we still have more design work to address those needs.
We also deviated from the notion of joining a group/becoming a member. Groups are open; anyone can contribute.
Usable vs useful
The next challenge was to reduce content types. Usability studies repeatedly showed there were too many content types that were also too similar, and it was too difficult to find things, either by browsing or searching. Also, people who are looking for something on particular subject don't think in terms of content type.
While we’ll still ship with several content types, we’ve designed their placement so they aren’t overwhelming.
One of the interesting ways we've addressed findability of content is the navigation and filtering of the main content stream. Rather than displaying the latest site activity (v1), or latest content organized by group (v2), we’ve decided that the latest content specific to the authenticated user would display on the main page. The displayed content can be modified at anytime using filters. Detailed combo box filters were designed, and while they were deemed usable in testing, they weren't considered as useful for the group content stream.
The out-of-the-box experience
Despite the assumption that any major installation of Drupal Commons will develop their own theme, we have to be sensitive to how the site looks out of the box.
A stylish new theme will be created for Drupal Commons v3, and we've created icons for each of the content types, but use them sparingly to balance noise versus the content that people seek. We have to ensure that Drupal Commons works for people and organizations that may not necessarily be generating a lot of photographs, group logos or personal avatars. Therefore, we cannot cram the default theme with placeholder images and avatars, otherwise it will be a ‘sea of default’.
Next big challenge: onboarding
Next, we’ll be designing the onboarding experience. That is, thinking about what steps or actions new users should take, to have the most enjoyable experience possible. They might be coming into a site with little to no content, or it might be positively overflowing with content. Either way, we want them to feel at home and be comfortable enough to get involved.