Brent Lightner recently put together his thoughts about return on investment and “ROI-plotting” in his blog post Prioritizing the Low-hanging Development Fruit.  I was reminded of a blog post I recently read discussing Drupal cost and value by Vesa Palmu the CEO of Wunderkraut. Vesa wrote:

With Drupal features are cheap and details expensive. Drupal is an existing tool with existing user interfaces and ways of doing things. Changing a small detail can sometimes take more time than implementing a fairly complicated feature.

When I repeated this thought to our development team, they each agreed that this is a terrific summation of both the benefit and frustration of Drupal.  Let me explain.

Drupal is an open source Content Management System, and the community of developers has developed more than 23,000 modules.   The modules are free to download and install and power many of the features of Drupal.  Some work in the background helping to display data or format URLs.  Others provide features like a WYSIWYG text editor or web forms.  There are also very helpful modules that help us integrate sites with third party services simple including Salesforce, Salsa CRM or Google Analytics.

When we install these modules they provide “out of the box” functionality that save our clients considerable resources.  If you want a contact form, we can install the webform module and have the form up and running in less than an hour.  Coding that from scratch would take days.

But, there is a catch.  Customizing these modules can be time consuming and expensive.

For example, we were working with a client who wanted to show the start and end date of their programs.  We dropped in the Date Module which includes the ability to customize the formatting of dates and includes a calendar for administrators to choose dates.  Everything was going great!

Then, just before launch, the executive director noticed that it looked like their programs were all ending this year.  She asked that we include the ability to list the end date as “to present.”  For example:  Program X (1999 – to present).  This was a very reasonable request, but the Date Module doesn’t include this functionality. We needed to create custom code to add this functionality which took far longer than creating and theming the rest of the program feature.  This is what we mean when we say details are expensive.

At Taoti, we do our best to provide value to our clients.  This means planning for these challenging details and using open source modules whenever possible.  We also communicate with our clients to explain when a detail may be expensive or adding a feature may be cheap.  Working together, we can maximize value and provide the most value to our clients.