Drupal development team setup

Recently, I had to find some ways to setup a Drupal development team with many developers working in different locations.

I searched the web and I asked a few questions in the Drupal help channels, but I did not find anything or anyone with a good environment setup for how to develop a Drupal application with a team. Here is how I would setup such an environment.

First, you need a good version control system to track changes and share them in the source code. Use the one you know and focus on it. If you want a very good one, have a look at Mercurial. Than you need a good bug/issue tracker. There are plenty of them of various quality. Use the one you know and stick to it. You need it because you know there are bugs. They never miss a chance to show up at the party.

Next, you need some local hosting stack to develop and debug your application that can run Drupal. If you are on Windows, I suggest you have a look at XAMPP. It includes all you need to get Drupal up and running in no time including Apache, PHP and MySQL.

I am a big fan of the development principle that says that each developer should be able to screw up his development environment if he wants to. This means that each developer should run the whole application on his PC. No code directly shared on a server somewhere and no shared database. This way, one developer making a part of the application crash will not impact another developer.

With a good VCS, it is easy to manage code changes from one developer to another and share them. Managing database changes is a much harder task. What we have been doing is to use file that contains the full database and a virtual lock on the database. We had a ticket in our issue tracking software that was associated with the lock. Whoever was assigned to that ticket had the access to modify the database. Whenever he was done, he would put it back to unassigned and someone else could take it to do some database changes.

The database virtual lock is a good comprise in my opinion for Drupal. There are many other ways this could be done, but because of the way Drupal works with some of the common modules, a change in the database administration section of the application can have multiple impacts in different tables. Tracking those changes would be painful and error prone.

Another important point to have is a good editor with PHP support. Eclipse with the PDT pluging is a nice choice.

Finally, if you are to start any Drupal project, I suggest you have a look at Pressflow. It is a 100% compatible fork of the Drupal core that includes some of the most interesting features you could not find elsewhere.

Post a Comment

Your email is never published nor shared. Required fields are marked *

CAPTCHA image