PwC PArtners with Mediacurrent: A Mini Case Study
In January 2015, PwC US announced the launch of its new CareerAdvisor tool. Aimed to help students discover their professional goals and set themselves up for career success, the CareerAdvisor site provides links to reference articles and videos and other resources with career advice. After visitors create an account, they can track their progress with an interactive checklist of action items for career success and add a list of personal ToDos.
Adopting Drupal 8
The CareerAdvisor site is critical to connecting with the millennial demographic and building a recruitment talent pool at PwC’s target universities. However, the current site was on a custom platform that could not be extended or supported. Updates and upgrades were needed but could not be deployed to the site in its existing state. PwC also realized that they had too many different technologies supporting their website. Their solution was to consolidate into one central CMS platform: Drupal.
PwC partnered with Mediacurrent to ensure existing front end user functionality was ported to Drupal successfully while using best-of-breed Drupal implementation practices. The move to Drupal would allow for rapid feature velocity moving forward while ensuring an intuitive and performant experience for both site administrators and end users.
Project goals and objectives for the CareerAdvisor website were to:
Launch on Drupal 8
Preserve all existing content and functionality for both end users and site administrators.
Deliver a great user experience with a site that is accessible globally and loads optimally across modern mobile, tablet and desktop devices.
Ensure that the new site is easy for content managers to understand and manage.
Choosing the Right Version of Drupal
The project was originally scoped out in Drupal 7. Mediacurrent helped to weigh the pros and cons associated with adopting Drupal 8, reviewing the financial and technical considerations that must be evaluated to inform the best decision. As momentum behind Drupal 8 adoption in the enterprise grew, it became clear that Drupal’s latest version was the best choice. To shift the focus to Drupal 8, Mediacurrent scoped out a new list of modules that would be compatible and be better suited to the development process in Drupal 8. In some cases we did not need to use contrib modules as the functionality we were tasked to recreate was built into Drupal core.
“Since Drupal 8 is arguably more fleshed out than Drupal 7, the transition was fairly simple with a little bit of research, and we were still able to meet the client’s needs and deadlines,” said Mediacurrent's Senior Developer Chris Runo.
Since the development of Drupal 8 began in 2011, Mediacurrent has been learning, contributing and developing to prepare for its release. Our experience has shown that first-hand experience is the best teacher. “Mediacurrent gave me Drupal 8 training when I started and put me on projects involving Drupal 8 right away,” said Chris. “This kind of full immersion is the best way to learn (in this developer’s opinion) and mitigates many potential project pain points in architecting and developing.”
Challenges and Solutions
Quality Assurance: Mediacurrent’s goal was to ensure that all bugs were found, reported and fixed before deployment. We also tested the site post-launch to make sure all priority flows were operational. To accomplish this, our QA team:
Created a test plan
Worked alongside the developer to test tasks as they were completed
Engaged in exploratory and regression testing
Executed smoke test post-launch to ensure all modules were operational
Refining UX: Since the site design did not change from their legacy system to Drupal there wasn’t much wiggle room in the ways of improving user experience. Two small but notable touches were making the site logo clickable to lead to the main dashboard and adding tooltip highlighting to user action buttons.
Better Maintainability through Drupal: The site was previously on a completely custom system utilizing an outdated version of AngularJS, Orchard, MSSQL, and C#. By migrating it to Drupal 8 the site became much easier to maintain for developers and site managers.
Improved Authoring Experience: Early-stage feedback from the PwC team on the admin side of the CMS has been very positive. Specifically, site admins have noted that the new site is significantly easier to use than their old system.
Development Highlights and Key Modules
Flag, Migrate Tools, Migrate Plus, and Config Pages were critical modules used to build PwC’s CareerAdvisor site in Drupal 8. Config Pages serves as the most straightforward, user-friendly way to set up one-off pages. Migrate Plus and Migrate Tools were necessary to get the full use out of the migrate module in core. Finally, Flag provided the functionality needed to for users to set their own status of globally available nodes.
Flag provides complete/remaining and deleted/not deleted states for ToDos. It served us in two ways. First, we were able to use it to mimic the functionality we were looking for. In this case that each node can have a certain status set for each user (completed/deleted). Secondly, since we were using the migrate module for getting the bulk of the original site data into Drupal, and since flagging is entity based, we were able to easily write a standard migration class to bring over the status of all nodes for the users.
The Video Embed Field module provides YouTube integration as a field. This Drupal 8 module gave us a quick solution to adding a video field to nodes that take in a YouTube link as input. It’s a great example of a simple module, with little to no configuration required, and adds great value to PwC for its simplicity.
Config Pages provides the ability to add one-off pages with configurable fields.The Config Pages module allowed us to take what usually seems like an easy task, but can actually be tricky to add into the site architecture gracefully, and effectively implement a way for the site to have one-off pages like ‘Home’ and ‘Help’.
Rather than create custom forms, we were able to utilize the config pages module to use the UI to create the form using existing field types, saving time on development. We were then able to use Drupal 8 routes and controllers to build the pages.
The fully extendable migration modules Migrate Plus and Migrate Tools allowed us to better utilize the core migrate module to import content and users out of data exports from the legacy MSSQL database. Migrate Plus adds some functionality to the core migrate module that we were used to seeing in Drupal 7. These include groups, which is great for migrations that need to use different sources or source types, prepareRow events, which is key for doing data manipulation where a process plugin would be overkill, and examples, which is good for any developer to look at for reference.
Migrate Tools adds in some drush commands that are very useful to use when testing, troubleshooting, and running migrations
migrate-status - Lists migrations and their status.
migrate-import - Performs import operations.
migrate-rollback - Performs rollback operations.
migrate-stop - Cleanly stops a running operation.
migrate-reset-status - Sets a migration status to Idle if it's gotten stuck.
migrate-messages - Lists any messages associated with a migration import.
These two modules are key to any site doing migrations.
Contributing code and sharing knowledge to strengthen the Drupal community are at the heart of Mediacurrent’s core values. We view every project as an opportunity to give back. As a result of this project, several contributions were made back to the Drupal community:
A patch was made to the Migrate Plus module which fixes a bug in the migrate example modules. It also added some drush commands that help speed up development when using Migrate Plus.
A bug was discovered with the core Rest module that has been added as a support task for the project to help fix and contribute back.
A patch was made to the Mass Password Reset module which fixes a bug where user role-specific mass password resets threw an error. This occurs when there is one or more role selected. The issue can be found at https://www.drupal.org/node/2855808.
45,000+ hours in Drupal 8
Since launch, Mediacurrent has reached a major milestone, clocking more than 45,000 hours on Drupal 8 client work. For more Drupal 8 case studies, check out Manhattan Associates, Brand USA, and this leading international non-profit.