The Regional Water Providers Consortium (RWPC) came to my team and me with an existing Drupal 6 website that was difficult to maintain and in need of some feature enhancements. They knew that their site had been built with custom code in places where it was not needed, and hacks to community-contributed modules that did not follow best practices. I reviewed their site build and came up with a plan for upgrading them to Drupal 7, and rebuilding their theme to be responsive.
After reviewing the modules and functionality on RWPC's Drupal 6 site, I determined which ones had Drupal 7 versions, which ones could be replaced with different community-contributed modules for equivalent functionality, and which ones needed to be manually upgraded to Drupal 7 custom modules. I also discussed with RWPC which custom modules were a low priority and did not need to be on the Drupal 7 site. In the case of the Drupal 6 custom modules that we determined did indeed need to be upgraded to Drupal 7 custom modules, I made updates to the code such as converting SQL queries to use Drupal 7's new database abstraction layer, and converting code for Drupal blocks to use the Drupal 7 block API.
In the case of the Drupal 6 custom modules, some were really just forks of existing contributed modules, with a few minor variations. For example, they had a custom module named Constant Contactor, which was identical to the Drupal Constant Contact module in most ways. The custom module had some variations in the email newsletter subscription signup forms. The problem was that the custom fork of the Constant Contact module could not take advantage of ongoing updates for the original module, such as bug fixes and security releases. On their new site, I used the community-contributed Drupal 7 Constant Contact module, and wrote a smaller custom module that used Drupal's hook system to override the behavior of the Constant Contact module, where necessary.
I felt that it would be best to give the RWPC a more tangible benefit to the upgrade than just under-the-hood changes, so I suggested we convert their theme to be responsive as long as we were upgrading it to a Drupal 7 theme, anyway. As I told the client, it would be less total effort to make the Drupal 7 theme responsive during the upgrade than to create a non-responsive Drupal 7 theme initially, then go back and try to retrofit it to be responsive. I came up with suggestions for changing the layout and font sizes at various breakpoints, and once the client approved those, I refactored select portions of the CSS from the Drupal 6 theme into Sass in the Drupal 7 theme.
Project Management and Training
This project had a very limited number of hours available – less than 150 – so I had to keep very close watch on every minute of time spent. I also had to work closely with the client to identify which features were truly priorities, and which did not have sufficient value to include in the upgrade. I made sure to set aside some time for training, so that the client would be fully equipped to continue administration of the site's content using the Drupal 7 administrative user interface.