It can take months for product owners to develop content, a process that relies on writing the content and managing internal feedback cycles from the CEO to program-level staff. Clients who envision a seamless transition between development and launch are faced with a mad dash of content entry, or a protracted pre-launch period where the development team is no longer available to respond to questions.
Many of the current solutions available to developers and content strategists pose problems as well. Allowing clients to access the development environment so they can add content as the site is built can introduce unexpected configuration changes and create duplicative work when developers need to make architectural changes to content types or taxonomy. Updating and restructuring content on an existing Drupal 6 or 7 site in preparation for migration can limit the client's ability to restructure content. It can also create missed opportunities for the client to update critical information architecture structures like the primary navigation and taxonomies.
To minimize this issue, Palantir.net gave AcademyHealth, an external content development tool, GatherContent, to integrate into their Drupal 8 development process.
In this webinar you will learn how to:
Use GatherContent to create content
Migrate structured content in conjunction with Drupal 8
Collaborate with clients in planning, structuring and curating content prior to development
12. Client evaluated how
their content and
menu structure
functioned within the
site at the end of each
sprint during
development.
Outcomes:
Content showcased
during development
20. Guide clients away
from unstructured
content found in .ppt,
.doc or .pdf formats as
it cannot be easily
migrated.
Our Approach:
Structured content
21. Bonnie J. Austin, J.D., M.P.H.
Vice President
email@academyhealth.org
Bonnie J. Austin, J.D., M.P.H. is a Vice President at
AcademyHealth, where she leads the organization’s strategic
planning and staffs the Board of Directors and board
committees.
25. We used real content
as the foundation of
our design and to
inform the hierarchy
and selection of
design components.
Our Approach:
Content in the
design
30. #1: Client can
experiment and
explore content
hierarchy independent
of design or technical
implementation.
Content
Development
Tools:
GatherContent
31. #2: Great API = great
migration data source
Content
Development
Tools:
GatherContent
32. #3: Fast turn around
time between
development phase
and site launch.
Content
Development
Tools:
GatherContent
33. Limitation 1: Client
may lack familiarity with
tool.
Limitation 2: Cost.
Content
Development
Tools:
GatherContent
34.
35.
36. We’d love your feedback.
Please fill out our brief survey at the conclusion
of this webinar and share your thoughts.
37. Connect with Palantir.net
on web strategy, design
and development
@palantir
facebook.com/palantirnet
linkedin.com/company/palantir-net
Bec - Palantir.net is a full-service web agency that works to strengthen humanity by helping others discover, create, and share knowledge that works. We do a lot of Drupal development for institutional nonprofits like universities, hospitals, and research and membership organizations like our client who we'll be talking about today, AcademyHealth.org.
Michelle
Bec
Hi, I'm Bec White. I'm the Development Operations Manager for Palantir.net. I've been working with Drupal for the past 10 years, first as an engineer, then as a tech lead, and now as a architecture, devops, and implementation strategy resource for all of our projects. I led the Drupal 8 adoption here at Palantir.net last year. AcademyHealth was our third or fourth Drupal 8 project.
MJ
MJ
Bec
So, typically we're not building apps, or games, or sites where the primary content is user generated. The organizational voice is key to the sites that we build. So for each of the various pieces of functionality we built for AcademyHealth, they're essentially invisible before the content is there.
MJ
Fully updated content
Integrated real content during development
Fast launch
User testing
MJ
AcademyHealth is a membership-based organization that supports and disseminates research about health systems. They're based near here, in DC.
MJ
Our clients touched every piece of page content before it made it on to the new site
Some pages they copy-pasted from their previous site
Others pages they rewrote entirely
We worked with them to develop an initial menu structure and validated this with IA/tree user testing using their primary audience - members
Bec
So, maybe you're familiar with agile, but we work in two week chunks called "sprints"
At the end of the first sprint, we were able to show them their page content and menu structure.
In bartik, drupal's default theme.
Bartik isn't very relatable to clients; it doesn't look like anything that could represent their organization.
But because their content is there, the site becomes real. Their work was immediately visible in our work.
Bec
When we wrapped up development, we did a final migration and all the stuff they had worked on was there
Client didn't need to create/fill in their "about" page.
Just needed to do a final review, like they had been doing after each sprint demo
Could fill in additional Drupal-specific fields for things like call to action blocks in the sidebar and related content
This took less than two chill weeks, rather than an impatient, month-long scramble
MJ
You must have real content in order to test user experience, because users navigate based on real labeling and are looking for real things.
Developed an initial menu structure
Validated it with IA testing using "treejack", which tests users' ability to find stuff within the menu tree
Then implemented the menu structure in the content/on the dev site
… and did in-person user testing using the real development site
Didn't have to wait for the site to launch, because we already had real menus/real content!
Some user testing feedback indicated a need for dev and design changes, but a lot of it pointed towards menu item labeling, organization, and content updates… which the client was able to address on their own!
Michelle
Scheduling
Structured content
Content in the design
Automated migration with GatherContent
Michelle/Bec
Content is a dependency -- of understanding the scope of the website, of the design, of the site launch itself. Crucial for making decisions during the course of the project.
Bec
Content includes pages, menus, taxonomy
Content is also the home page slogan, the footer wording, and text for important "call to action" blocks
This bit is crucial for the design
And then there are other existing sources that we use as-is as migration sources. For AcademyHealth, this included a WordPress blog, and some resource directories that lived in MSSQL tables
So we factor all of these into our scope and schedule
Michelle
AcademyHealth had a clear deadline, so we were able to work backward from that and create internal deadlines for content curation.
Content is necessary to make design and development decisions; if there isn’t a clear cutoff, may have to overhaul design if there is new information about content.
Includes both newly developed content
AND existing data sources (csv/excel, database dumps, xml… whatever)
Bec
So when we plan for source data
Clients don't automatically know what source data should look like
Getting the right source data will make migrations MUCH smoother
So tell them! Early deadlines allow the client to fix data problems, so that we don't have to use dev time to work around messy data.
We had to modify our migration timeline… couldn't even fully specify some functionality… because we didn't have an export with all the necessary fields.
Bec
When I say getting the right source data will make migrations MUCH smoother
The right source data is structured. So making sure that we're getting structured content from the content development process is going to make migrations possible for new content.
In order to get structured content, we need to impose some guard rails/limitations.
Keep clients focused on the most important fields.
Help clients prioritize content development -- both the parts of the content and the pages -- the same way we prioritize features in development.
Bec
Dictating the structure for content to be developed is kind of the secret sauce.
Unstructured formats can't be migrated -- if we want to utilize this type of content during development, it's a purely copy-paste operation. Who is going to do that before every demo?
Bec
Here's a resume. This is not structured content; there are separate pieces of information, but this document uses formatting to convey meaning. It's easy to forget pieces of information, or include extra stuff, and you have to copy paste to use it.
Bec
For AcademyHealth, we set up fields in GatherContent based on our conversations. These were key fields, and matched the Drupal field configuration.
Some Drupal field types don't translate to other platforms, like you can't do references between content on GatherContent
That's ok! We need to focus on the content MVP
One exception to this would be a defined taxonomy -- if you're using that for your content, apply it ASAP! Having tagged content during development will make those taxonomy listing pages so much more manageable, and will illustrate how tagging affects the site functionality… so the client have a chance to prune or rearrange their terms before going live.
Bec
This is a "profile" on GatherContent
Has the person's name, their title, the organization, a biography
So it's just the important stuff
Bec
These fields flow directly into the design
Michelle
Content in the design
Use real content -- from the current site if that's what's available, or from new content the client is developing. Clients have a hard time relating to lorem ipsum, so real content makes the site concrete to the client. Real hierarchy and real initial content has to be there.
Bec/Michelle
So what happens in the design when their text is super long?
How do their real taxonomy terms look in a list? (does the list need to be wider/different for their compound terms?)
Are the terms different enough when you put them next to each other on the page? "Making Health Care Better" vs. "Making Research Better"...
Bec
Scheduling + structure + design… then we use our superpower, technology.
Consistent/structured source data means we can automate
Automation means that our work is repeatable and testable, and therefore more dependable
Any content changes can be automatically reflected in development
***what we've done here is take a messy human process (creating content) and turn it into a data source.***
Bec
So we implement initial migrations in sprint 0, get "real" content immediately. Clients can see the impact of hierarchy decisions and incomplete content on the site.
Because we're a dev shop, I wrote a migration source plugin, which allows automating the integration with GatherContent. (Get it on GitHub, the link is at the end of this presentation)
So we pulled our client's work from the GatherContent API with a migration
This was a yaml file (hi Drupal 8), 43 lines of config to migrate pages
There's also a GatherContent integration module but using a migration allowed us to automate, don't need to manually configure or run imports
Bec
So that's our approach. We also want to talk a little bit about the tool that we used, so that you can think about what you (as a strategist or tech lead) need in a content development tool.
For content migrations, we can work with a lot of different data sources (excel/csv, xml, mysql, … mssql)
Some of these are easier than others -- and not just based on the format. Also based on how much we know about the data.
And really the thing we did for AcademyHealth is we turned their content development process into a data source for migration, so we knew EVERYTHING about the data
GatherContent is a paid service, and we like it, but you can find the things that we like about it in other tools too.
Bec
Clients can work independently and rearrange things
And they can have as much or as little content development workflow as they want.
They can involve who they want.
But it's structured enough to give us, as a dev team, consistent data
Bec
What's an API? For us developers, it makes it easy to interact with gathercontent programmatically
Can get specific parts of the data
We can just vacuum it all in by pressing one button
Bec
And we can do it often, so that content/nav changes are reflected at each demo
If we're pulling content from gathercontent frequently, then pre-launch is no different
We pull the latest changes, and then hand over the site
The client just needs to review
Bec
GatherContent is a new tool for our clients. It can be hard to get folks on board with a new system.
Luckily the folks at AcademyHealth were prepared to jump into Drupal, and so they were ready to learn. GatherContent puts your content right up front so it was pretty easy for them to get started.
How much should we accommodate unwillingness to learn new things? I've seen some of the web site managers we've worked with on the client side be incredibly successful when they're proactive about their content and willing to adopt new tools and processes, and willingness to learn new things is fundamental to moving to a new web platform. So we shouldn't accommodate it.
Except… it has to be something the content folks are going to use.
It costs some money, but as an agency we've found it helpful to have an account that our clients can use.
Bec
#1 it needs structure
the other #1, they need to use it
Bec
Work with clients by setting expectations and a schedule
Use structured content to set boundaries
Automate imports/migration so that you can work independently