Eating Your Own Dog Food: The Many Faces of Drupal

in blog & cms, drupal, social networks & collaboration

Within software development organizations, "eating your own dog food" denotes the common practice of an organization using the application that they design. This has obvious marketing implications: i.e., despite vocal criticism of open source applications, Microsoft appeared hypocritical for using FreeBSD, a Unix variant, to run their Hotmail web servers.

Beyond marketing, eating your own dog food has more direct effects on the design of the application itself. In the open source community, because so many contributors originally join a project to scratch their own itch, we suspect that most Linux developers use Linux, Mozilla developers Mozilla, OpenOffice.org developers OpenOffice, and so forth. Some critics of open source software have complained about the "developer-as-user," that open source software is too geek-centric and less sensitive to the needs of regular users for this reason. However, by using the application regularly for the purposes for which it is intended, there is less disconnect between users and developers simply because developers are users. Developers discover bugs, observe UI difficulties, and find common task and usage patterns. They gain a better understanding of user complaints and needs which leads to better prioritization in future development.

In Drupal's case, there exists an extra twist. Most content management systems use their own CMS to power their community website. The CMS obviously affects the formation of the community of users for the application, which in turn influences future development. More so than other CMS's and unlike most other applications, Drupal's unique set of features--some outlined in the previous section--make it a more integral communication medium for the design and development process. Source code may be managed by CVS, but to better facilitate this development, Drupal developers constructed a project module, a groupware application for tracking and discussing software development. The active drupal-devel mailing list where many developers discuss Drupal has been integrated into the application: a mailing list page for mailman where users can do a one click subscription is included on drupal.org; posts from the project module are automatically forwarded to the development mailing list. All of this coupled with the open source development process results in an emergent, evolutionary process of development of Drupal which, as we will explain below, is also a result of the complex multiplicity of the many faces of Drupal.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

CVS integration

One thing that is relatively new on drupal.org is the CVS integration between users: user accounts are linked to CVS accounts, and CVS behaviour is logged and visible on their account. You can see who has contributed to a project and what projects someone has contributed to. It is an excellent example of applying to social idea to development.

Right on

Good suggestion. It may be that at the time we started writing the article, I had yet to integrate the 'CVS accounts' and 'user accounts'.

The benefit is at least twofold:

1. Integration of CVS accounts and user accounts makes it easy to see who did what, and what contributions he made. It provides essential information to enable efficient communication and collaboration on projects. (Example: if you don't know who to contact about a particular problem, it is less likely to get fixed.)

2. It helps contributors to establish an online identify: the developer can gain credibility and visibility through his history of contributions. This reward can be an important motivation for his contributions. (Example: if you are a Drupal consultant, an overview of your contributions can be important to attract more work.)

Aside: Hotmail ran FreeBSD not Linux

Clearly not central to the overall piece, but a fact check: Hotmail ran on FreeBSD before being moved to W2K by Microsoft (eventually). I'm rusty on my UNIX legalities but I don't think FreeBSD is technically/legally UNIX(c) either.

Here's MS' version: http://www.microsoft.com/technet/interopmigration/case/hotmail/default.mspx

Here's a bit of partisanship about it:

Microsoft admits it still hasn't upgraded its Hotmail system to Windows, almost four years after embarking on the task, and fifteen months after the first load balancing machines began to be shifted to Windows 2000 from FreeBSD.

from http://www.theregister.co.uk/2001/12/12/microsoft_hotmail_still_runs/

-tg

thanks for the faq check

You are right. It was Microsoft's DNS which was outsourced that was running on Linux.

I've updated the text.

Microsoft eating dogfood

I wasn't sure where to put this comment, so I hope this is a good place. I was reading my hometown paper yesterday, and they had an article about a possible heir apparent to the throne at Microsoft, the man beyond Steve Balmer and Bill Gates, should either someday die or retire or whatever. What made this interesting, the story, and the guy about whom the story was told, was that he was doing, in some way, what the Drupal community does and he is receiving accolades for it. At least it struck me that way.


This guy, Eric Rudder, is getting praise for going out and connecting with Microsoft's end users, presumably not the gal/guy at the keyboard, but instead the IT guy/gal running the network and buying the servers in Europe, the Middle East, and Africa. It seems as if there is some attempt, some acknowledgement on the part of Microsoft concerning the role of the community of users and the need to connect that community with the developers--they just aren't going too far with it. Since I'm not a developer, and Rudder isn't either (just a boss of server systems developers or some such thing while I'm not even of a boss of me :)), neither of us is eating our own dogfood, but I guess he can tell his engineers and programmers what dog food to eat.

Still, the idea is that MS is emulating, to some degree, what happens in open source communities, whether they know it or not. At least that's the idea that struck me. It doesn't seem like it will work as well as the Drupal community or other such communities, that it would be better for the server guys to be using their servers for server-related tasks while talking with folks that use their servers--eating their own dogfood--and having those end users also write code and specs, which seems to be the OS model. I don't see that happening to any great degree, but what do I know. Hope I made that connection clear, in a way that makes sense.


Bradley

in touch with users vs open development

Without a doubt, being in touch with the user base is important for development. But I think that the closed source, proprietary development system still misses out on two major advantages of open source:

1) Users can't easily participate in development.
2) Open source development is often a compromise of developers with competing interests. Sort of development through mega-large committee where those with the best ideas *and* are willing to do the work will generally direct the evolution of the system (well, at least, in a well-run open source project)..

which is why it won't work for MS

You are more to the point than I was about why/how MS forays into getting in touch with users won't/doesn't go far enough. I don't recall how one gets their source code, but even when they do, I don't see the changes/revisions spreading all that far unless they are just about too good to be true. As you note, or at least allude to, open source is truly collaborative while proprieatary software and systems incorporate revisions that would seem to be vetted/directed by folks not actually in the engineering or programming loop, not even sniffing their own dog food.


Bradley

Listen to your users/customers

Developers (should) listen to their users like companies (should) listen to their customers. For companies, it is often difficult to understand their customers' needs without spending time and money on it. In Drupal's case, users are given a voice at drupal.org making it easy to voice their wishes/complaints. We don't have to "pull" for it, it is "pushed" to us. For free. All it takes it the willingness to listen and the ability to prioritize all the feedback. In fact, the Drupal users do a great job filtering and prioritizing other users' feedback.

As an extra twist, Drupal users can become Drupal developers so whenever there is an important gap to be filled, (eventually) someone will step forward to implement what it takes.

Drupal's Project Module

but to better facilitate this development, Drupal developers constructed a project module, a groupware application for tracking and discussing software development.

This is an interesting point. The guys at Tikiwiki seem to rely mostly on list-servs, one for users and the other for developers, to get their work done--even though they do have the capability of doing this on site. I think the reason they don't is the sometimes frustrating slowness of Tikiwiki. I can appreciate your argument that Drupal's developers are "eating their own dogfood" by using their CMS instead of another tool for their development discussions.

Too bad they don't have that wiki module worked out yet. :-P Or maybe they do now. I'll have to check on that.

more wikiness

Drupal wikiness is getting better. There is currently a patch in for review which will improve the revisions feature (which helps the collaborative book, too). You might also be interested in the following modules which allow you to create a wiki:

  • flexinode - can be used to create a new node type called wiki.
  • freelinking - enables wiki-style CamelCase words as titles for pages.
  • wiki - provides wiki markup similar to that of phpwiki