With Drupal 8 in the works a lot of Drupal 6 sites are currently upgrading to Drupal 7. We get quite a few queries on Drupal upgrades and almost everybody asks for a fixed price estimate for the process. In theory Drupal 6 to Drupal 7 upgrade process is an automated process (except for the upgrade of theme and custom modules) and all you have to do is to take the site through a set of standard steps for the upgrade. However upgrades don't always work like that.
There are quite a few factors that affect the duration of a Drupal upgrade process. Most of the factors are the same as those that affect Drupal updates as well. Here are some of the key factors.
- Whether safe practices are followed - backups, trial, testing
- Whether upgrade is done right on the production server or on a development server
- Whether there is a development server for the site
- Whether code is already under revision control
- Whether SSH access is available on the servers
- Whether there are a lot of custom patches applied in core or contributed modules
- Whether there is documentation of the patches applied
- Whether there is a lot of custom code that uses functionalities from contributed modules directly (not via an API)
- Whether there is documentation about critical functionalities that should be tested after each update
- Whether there are a lot of custom modules
- Whether there are a lot of contributed modules
- Whether all the contributed modules have D7 versions
- Whether all the contributed modules have upgrade paths from D6 versions to D7 versions
- Whether there are a lot of template files / theme functions
- Whether custom code is heavily API driven or whether they are more or less standalone systems
To commit to a fixed price estimate for the update process each of these aspects will have to be evaluated in detail and this might actually take longer than the full upgrade if the upgrade did not run into any issues. So our general practice is to give a ballpark figure of 80 hours and then bill on the actuals based on an Time & Materials (T&M) billing model.
Also note that all custom code including modules and themes that were created for D6 will have to be manually converted to the D7 API and this would take additional time as well. The time for this will have to be custom estimated for based on the number of template files and the lines of code in the custom modules.
Get in touch with us if you are looking to upgrade your Drupal 6 site to Drupal 7.