Eating one's own dogfood -vs- dining out


The importance of project management tools is almost never fully appreciated. I am shocked at how common it is for a group of developers to go working without version control, ticket tracking, development documentation and so on. The very first thing I do when working with a new client is to make sure that they get these tools in place if they haven't already.

Those who are used to working without a complete set of project management tools never fail to appreciate the benefits of them once they are introduced. I consider it next to impossible for a team to work together without managing code and tasks in an efficient and highly organized way.

Hopefully you do not need to be sold on this idea and are using CVS or SVN to manage your project already. You likely have some sort of ticket system. It is a little less likely that you have both of these components integrated with each other.

When it comes to choosing a solution for project management software, a die-hard Drupal user has a dilemna. On one hand, Drupal seems as though it should be the perfect solution. It's fully customizable, has lots of nifty project management related modules and, most importantly, it's Drupal! Why would you not use it? "Eating your own dogfood" is the way to go, right? Meh...

Drupal is generally considered a content management system. Personally, I like to refer to it as a website management system. It is great at managing website related stuff like users, posts, permissions, categorization, and so on. Using contrib modules, you can customize and enhance this core functionality to almost no end. But at the end of the day, Drupal is designed to handle web content and the users that are accessing it. That's what a content management system is (and if content is king, that would make Drupal... well... God).

Managing a project, on the other hand, is a much different business from managing a website. Yes, you have many shared properties such as content and users. But the essence of project management involves things that have nothing to do with website management such as a revision controlled code base edited by multiple users, a need for efficient ticket management, and ideally full integration of everything. Essentials also include stuff like a nice repository browser, user management interface for repository access, fancy reporting for tickets, organization of tasks by milestone, date, person, severity, etc...

It's a very tall order. Yes, you can do all this in Drupal, but not very well. You can piece together something that sorta kinda resembles a project management solution, but in the end, you need to invest a relatively large amount of time to create something that is less than ideal and will require ongoing tweaking and modification. Unless your business is creating an effective project management solution in Drupal (something I dream of!), you should not be using Drupal for project management.

I'm a one man shop, and I do not have time to spare. I cannot justify spending any time at all kludging together a project management solution for a client when there are already far superior solutions available at low cost. I would much rather pay someone a few bucks a month and be done with it. Let them deal with SVN administration and enhancements; let me focus on my primary task which is building cool sites with Drupal.

While there are numerous project management related service providers out there (Fogbugz, Basecamp , Beanstalk to name a few), I want to talk about my personal favorite, Unfuddle. Unfuddle has taken obvious inspiration from the folks over at 37signals, innovators of the simple, clean, effective, it-just-works web application. Unfuddle is an instant project management solution that takes minutes to set up and costs a few dollars a month. The time you'll save in not having to set up SVN and manage SVN users alone makes it worth every penny.

[img_assist|nid=156|title=|desc=|link=none|align=left|width=250|height=221]What you get with a solution such as unfuddle is a ready-to-use repository with integrated documentation, ticketing and reporting. It takes seconds to set up a new user account with permission levels fit for everyone from a developer (gimme root!) or a suit (look but don't touch).

From a single interface, you can browse code, tickets and documentation. Every component integrates with the others. You can even resolve a ticket with an SVN commit message, saving you the trouble of having to go and edit the ticket after your commit! Users can individually subscribe to whatever level of email notificaton they would like to recieve and how often. The developer can shut off all notifications while the manager can get a nice daily summary each morning of milestone completion progress, new tickets, added documentation and so on. The project manager can glance over one of the ticket reports and group tickets into milestones for reasonable short vs long term goals.

SVN comments link back to the tickets they are related to. Tickets contain links to the changesets that resolved them. Viewing these changesets, you can see a beautiful code diff and quickly see what fixed the problem. Senior team members can quickly and easily review code changes submitted by junior staff.

With tools like this available these days, it's just not worth it spending any effort whatever on a lesser solution.





hmmm...this is interesting. i JUST started using subversion for some freelance work that i do, and i don't really do that much, but already my local subversion DB is almost 1GB.
i want to get our web team at my full-time job on some sort of version control system (preferably SVN), and this looks good, but i'm not even sure the enterprise 8GB is enough! we have a pretty extensive internet site, in addition to a LOT of intranet content and code.
it's worth a shot though...thanks for bringing it up!

Good points, and I am definitely an unfuddle fan. We are using it on an important project with a client. However, I want to also point you and your readers to another service I discovered shortly after recommending unfuddle, a much more economical service which kinda does the same thing (unlimited repositories, unlimited users, access control over users, a free Trac instance with each repository), which I have also adopted for many projects, and I would like to sing its praises too. It is I am now trying to integrate Trac (tickets, changesets) with my own Project Flow and Tracker ( user drupal password rocks), which needs a lot of love on usability and needs SVN under the hood. Until I get time for that I find Trac is awesome (lightweight, does the job). But eventually, the agile and test driven approach in Project Flow and Tracker will be eating our own dogfood: it's a Drupal based webapp. saludos, Victor Kane

The beauty of an Intranet Portal is not that it has everything you may need for project management, it is that it organizes it into one location so you don't have to start and application here (subversion), and then go over to another application over there (bugzilla), and yet atart another one over there (wiki). By creating a CMS Intranet/Extranet you then allow your developers to concentrate in one location with links hanging off the intranet to do the jobs that the intranet does not have built in. However, the intranet can improve communication between disparate groups (think discussion group gizmo), handle appointments (calendar gizmo) and generally improve the workflow and producttivity of your team.

Heh... well, it won't be done in a few weeks, but we *will* have most of that in Drupal. Just lean back, relax and observe.


Great article, Harry. I'm an unfuddle fan, as well, although I do really hope project management in Drupal will be a viable solution soon.

Thanks for sharing about Unfuddle Harry. The services sounds great, I think I will run and give it a try. Cheers

Very useful article. I also was inspired by your site in general- especially your 'Terms of Service' which I think I should emulate!

Yes, really useful article and informative also. The topic is little bit funny. Eating Own's Dog food. Well a large amount of information is available here.

I understand your point of view. We've gone through many different solutions. For internal purposes, we've now settled on a Drupal solution. We even do time tracking. Our point of view is that if we're going to have to customize whatever we use in any case, we may as well customize code that we control and can make better over time.

Of course, this is a matter of returns. For small groups of people, an off the shelf solution is probably a better choice. For larger groups that plan to grow larger, investing in your own solutions has greater returns.

Whatever solution you pick, at least make sure that it has APIs and data exports. That way, you can continue to integrate around it. Unfuddle had been lagging in this area, but they recently released an API. It's also my best suggestion for people.

Hi Boris!

If the team is large enough, then building out a custom solution is a possibility. But from my own experience, these solutions end up eating into developer time that could be better spent on the project itself. And when they break, everyone is slowed down.

The project management component is very important and is readily available through service providers. I couldn't see myself ever suggesting a client not go the ASP route.

I simple don't trust online services and that includes Unfuddle. I think there is a question of privacy, and using it might also leave a bad impression on the client. I run my own svn repository on Dreamhost. Simple, private, secure.

Seems my name conflicts with someone elses...

Thank you for your article.
It's very interesting and useful.
Our company has always paid great attention to its project management process. We are using MS Project. And I wouldn't say that we are fully satisfied. I would say we are in search of something more suitable.
Your description about Unfuddle is very encouraging in this regard.
Web portal software development

Flawless site created.More or less nothing can be edited in this.

Tell me about project management tools?I am developing a project management tool(as a final project). Tell me in sense of risk management & re-planning modules...!!!by Anuya

Cheap dog foods are often as nutritious as expensive ones, no matter what your vet says as he tries to sell you the expensive foods he sells. (I formerly worked in research for Central Soya, who makes MasterMix animal feeds, so I learned a lot sitting across the table from experts in this field.) The expensive brands may be a little more palatable, or they may just be a brand that spends more on advertising, so that you'll pay more.

Not sure if I would agree with you since I am a new drupal user, I still think that wordpress is easier at the moment:-)

Chicago Resident

Being a student, I have experienced before using Drupal to help towards building new tools that actually make it easier for others to manage planning, overviews and checklist. It’s not that simple but luckily we have one amongst our group who is good on the Patch Spotlight. 

I agree with you concerning drupal as an everyday tool for project management, it is tough. We tried putting together an elaborate setup using drupal for project management and it was a bust. We decided to also go with Unfuddle, and have been extremely impressed. It has been much simpler for us and much more productive. Thanks for the article.

i feel it's a great...thanks a lot for sharing such wonderful and intresting post!

what if you don't like your own dog food? dine out, yes.
nice post! thanks.