237: Drupal 8 Content Workflow Initiative - 1/2

Part 1 of 2 - I got the chance to talk with Dave Hall and Dick Olsson from Pfizer at DrupalCon New Orleans about the Drupal 8 Content Workflow Initiative. This post includes the video and full transcript of our conversation, as well as links to many of the people and topics we touched on!

Mentioned in the conversation

Conversation Video - 23 min.

Transcript - Welcome to DrupalCon New Orleans!

jam: So – yes. Looking around us (and my joke of the week), we are in beautiful, glamorous New Orleans. Home of great food, which I haven’t had time to partake of this week, and amazing music, which I haven’t heard at all either, but that’s why we called it work, right? We’re here at the New Orleans cConvention Center on the sprint day of the North American DrupalCon 2016. Dick Olsen, how many DrupalCons have you been to and how was DrupalCon New Orleans for you?

Dick: DrupalCon New Orleans has been lovely for me, really. I’ve been at DrupalCon since Paris 2009. I’ve lost ...

jam: The whole time?

Dick: The whole time except San Francisco, which I missed due to the ash cloud.

jam: That was a fun con.

Dick: Yes, that was a – no, it wasn’t a fun ...

jam: No. So I had made it. So we all – we live in Europe, you live in Australia.

Dave: I made it.

jam: You made it. I made it because I went early, but a whole bunch of people couldn’t come right until the end of the week because they weren’t allowing any airplanes to fly because of the unpronounceable volcano in Iceland that was going on. So you have been to several DrupalCons?

Dick: Yes. I think I missed – maybe Washington in there. Was that after San Francisco or was it before?

jam: No, that was 2009. That was before.

Dick: Yes, that was before. Okay. So I’ve been more or less in all of them since 2009. It’s been a long journey.

Meet Dick Olsson!

jam: You’ve been in Drupal for ages as well, right?

Dick: Yes. So I’ve been in Drupal since 2007 – 2008, yes.

jam: Were you doing Drupal before you worked at NodeOne in Stockholm?

Dick: Yes, I did Drupal as a freelancer.

jam: What would you say your specialty is? What’s your Drupal thing?

Dick: I worked a long time on just general contribution to core, but my thing has really been focusing on content workflow and various topics within that. So, Deploy Module has been something that I’ve been involved with since early days of Drupal 6. I took over maintenanceship of that module for Drupal 7. That ecosystem also includes the UUID module and a few other bits and pieces. So the content workflow, content staging, previewing, content type of thing, that’s been what I’ve liked to play with in the community.

jam: UUID’s actually really great and important. That’s something that’s in Drupal 8 core now, and that means every piece of content that you create ever, has a unique identifier, which means that you can merge federated systems of sites, organize better search results, and you never get a conflict where your NID – your node ID is 20 or 200,000, and therefore, boom! Your database breaks, right? Like everything has a completely unique identifier.

Dick: Right. Which is very important when we stage content and move content around between various environments. So that was one of the first big contributions that myself and Dave did for Drupal 8. We got UI ...

jam: Segue to Dave!

jam: But that also helps you solve the problem of live comments happening while you’re updating a site in the background and – yes.

Dick: Yes.

Meet Dave Hall!

jam: Dave Hall! How long have you been doing Drupal and what is your first Drupal memory?

Dave: Okay. So I started with Drupal 4.6. I messed around with it. I first used 4.7 in anger. So I think that was around 2008 – yes, about 2008 probably.

jam: I think it was a little earlier, but talk about using Drupal 4.7 in anger?

Dave: Yes. So I had a client who wanted some content and an online store and I looked around and I already knew about Drupal. I’d done a CMS evaluation for another client and recommended Drupal. They decided to go with WordPress and I said, “See you later guys.” So yes, for this other client, I started using Drupal Commerce – Drupal eCommerce from Gordon Hayden back in.

jam: Yes. Yes. You remembered Drupal eCommerce, which is before Ubercart, which was before Drupal Commerce.

Dave: Yes. I’m one of the grumpy old men of the Drupal community these days.

jam: Get off my shopping cart!

Dave: Yes, exactly. Or get off my site, full stop. Yes. So I’ve been doing lots of stuff with Drupal over for the years. Me and Dick Olsen have actually been stalking each other for years. We both applied for the same job at one point. We co-authored the report to get the Symfony components for HTTP routing into Drupal 8 Core.

jam: Thank you. Thank you. Thank you for that.

Dave: So all of these OO stuff is actually our fault. I know Larry likes to take the credit for it but ...

jam: Oh, here we go ... Okay. I like this. Now, we can get a sort of a rap battle style, diss competition going.

Dave: Yes, I actually heard him take in credit for it when we were in Mumbai and pulled him up on it, and he didn't seem too impressed, but ...

jam: So I have to ... – I will also thank him but I have to thank you guys because not only do we get a really powerful up-to-date, standards based, great core that we can work with for years and years now, which is amazing, but that has also been a great excuse for me, personally, to go out and get really involved, meet a lot of people in the PHP community, go to a ton of great conferences, and really – so thank you. I’ve personally benefited from this.

jam: You, Grumpy Old Drupal Man, what made you stick with Drupal all these time?

Dave: I’d got into dealing with developer workflow and deployment issues around Drupal. So back in the days of Drupal 6 for a single client, I deployed 2086 production Drupal 6 sites using Aegir. That was a crazy project, and ever since then, I’ve been really interested in how do we get code, content, and configuration through the sausage factory that is Drupal development? So really trying to dig into that problem space. So, I do some stuff with content staging but Dick has dug into that a lot more, but I look at ... once you’ve got your content staging solution, how can you automate that? How can you make your config and your code and all of that stuff be able to move around in a coordinated way?

jam: So, deployment in every sense.

Dave: Yes.

What do you like about Drupal 8?

jam: Tell me, please Dick. We’ve been working on Drupal 8 for the last five plus years. What’s your favorite thing about Drupal 8, and where do you think – what sort of horizons does it open for us?

Dick: The biggest and the most important change – I think with Drupal 8 is not necessarily that it’s object-oriented and all of these things. It’s that we have changed our mental model of how we develop Drupal. Semantic versioning in our release process, because that’s absolutely going to set us up for innovating quicker and faster, engaging more people and that ...

jam: Did you see – you’re reading my session notes from what I talked about yesterday.

Dick: I didn’t, but I know how you think sometimes. No, so that’s really I think the biggest impact. Along with that comes Composer - that, I know that you talk about a lot, semantic versioning and Composer. So those things. I think if we have those, everything else will come naturally. More object orientation, more features that we want, more UI improvements. That iterative approach is what I’m most excited about in Drupal 8.

jam: Okay and how about you?

Dave: Well, there’s a strange thing that happens between me and Dick. It’s like I’m thinking something and it comes out of his mouth or the other way around. So I agree with everything that Dick said, but also, I think CMI is a really important ...

jam: Now, just called Configuration Management, I think.

Dave: Yes. Sorry. Configuration management. I work in a corporate environment. So I love my TLAs – "three letter acronyms," for those of you watching at home. So the configuration management stuff makes things so much better, like I embraced features very early on. I could say the power of features and the benefit of features, having YAML files that you can just shuffle around, import, export ...

jam: Version control ...

Dave: Yes. All of that stuff makes things so much easier, and you don’t end up with a developer going in and hacking a feature to just tweak it a little bit, and then when you go to deploy it, stuff breaks everywhere. So yes, I know they can hack the YAML files as well, but hopefully, they do that less. So yes, I’m really excited about that stuff.

Community Initiatives for Drupal 8

jam: Dries talked in public in his keynote here in New Orleans about how he thought the idea of initiatives that we started in Drupal 8, that that went really well, and obviously, there’s been a lot of talk about how to do them better. One of the ideas is to essentially, instead of sort of top down announcing, “We’re going to do this, that, and the other thing," – sourcing ideas from end users, from developers, from the people who work on it to make new initiatives that we can actually use to improve Drupal 8, six months from now, a year from now, two years from now, which is the amazing thing about the semantic versioning model. So I like the idea that there’s this sort of community sourced initiatives, and he’s announced a couple, and you are both part of the one that’s actually the furthest along already. Were you in some ways maybe the model for how to make a new-style initiative?

Dave: We’re happy to take the credit for it.

jam: So it wasn’t Larry this time, it was Dave and Dick.

Dave: No, Larry better not try to take the credit for this one.

jam: So what is the initiative that you’re involved in?

The Drupal 8 Content Workflow Initiative

Dick: The initiative is called the Workflow Initiative or to be more precise, Content Workflow Initiative, and the idea here is really to bring major improvements for our content authors when it comes to content moderation, content workflow and content staging. This will be done by doing lots of UX work and big improvements to our Entity API in core. Lots of the things that we have on our Workflow Initiative roadmap is already being worked on in contrib. and these modules for Drupal 8 has been in development for already quite a few years ... Or two years, I should say. And sort of being battle tested in contrib. as well.

Pfizer and Drupal and the Workflow Initiative

jam: You both work for Pfizer. Talk about – and Pfizer is an organization that literally needs thousands, thousands, and thousands of websites, and they use a lot of Drupal. Talk about the needs of your organization and how this fits to those ... Please use as many acronyms as possible.

Dave: Okay. I’ll do my best. So Pfizer has this thing called MLR, Medical and Legal Review, because being a pharmaceutical company, it’s a highly regulated industry. Pfizer can’t just ...

jam: (That’s an "HRI".)

Meeting real world workflow challenges

Dave: Yes. Pfizer just can’t put up a website saying, “Buy this drug, it’ll solve all of your problems.” They need to make sure that the claims that are being made are backed by research and have been approved by the FDA and there are certain disclaimers that need to be on the website. So all of this stuff that needs to go through a process, where both the lawyers and the medical people check that the content is actually accurate and legal to go on the website. Now, there may also be marketing campaigns where there’s particular stuff that has pre-approved messaging that they can use anytime. So that stuff can go through quite quickly, like say for a coupon for discounted medication or something. They need to be able to roll those out as the TV campaigns are ready to run or the newspaper ads or whatever. Whereas the changes to the content around the claims and things like that that can take a long time, so we need the ability to have multiple streams of content changes running through our environments.

jam: And I see potentially as well, for different kinds of information, different approval workflows, and then I believe you also have to deal with the internationalization side of that, and the regulations and the claims are not just straight translations at that point, right?

Dave: Yes. Pfizer's in a lot of different markets. Each country has their own regulations, and in countries like Switzerland, you’ve got four official languages in that country. So Pfizer has to deal with a lot of complexity with our content.

jam: Okay. This work that you’re doing fits into this model. I like this because this is – I think – going to be a successful example of this very pragmatic marriage between fundamental business interests and doing open source right. Pfizer has benefited from our technology and everything that we’ve put into it. You benefit because you have a great job, and now they need more and it seems to be clear that doing that in your work time that’s – and it’s still going to be Drupal, right? It’s still going to be open-sourced. So was that a hard conversation to have with them?

Dick: With Pfizer, you mean or ...?

jam: Yes.

Dick: No. The management that we have – the IT management that we have at Pfizer, specifically our boss, Mike Lamb, has a very good vision, and he has a very good understanding of open source and what it means, and what it can bring back to a company like Pfizer by doing all of these things. So it was actually Mike who was the driver behind these things, and he got the team on board, and of course, he needs to have a dialogue with his senior management, but that has been a very successful dialogue so far.

Workflow Initiative roadmap, timeframe, phased approach

jam: So what sort of a roadmap and timeframe do you have going on?

Dave: For the initiative?

jam: Yes. Sorry. For the initiative, yes.

Dave: It’s going to be a phased roadmap. So instead of what happened with Drupal 8.0 where it tried to make massive changes and get them to land as one big chunk, we’re adopting a phased approach and looking at what will actually bring benefits – the greatest benefit at each point in the roadmap.

jam: I hate to use the word ‘agile’ but you’re going to do it like a minimum viable product release? And are you going to take advantage of the experimental core modules along the way, hopefully?

Dave: Yes, that’s exactly how we’re looking at doing it. I would actually say that what’s in contrib. today is our MVP, and we’ve been iterating on it in contrib. like with Deploy, it started in Drupal 6 and iterated in 7, and now 8, and now it’s moving into core, and we’re also bringing in parts of Workbench and that started in Drupal 7, building on ideas from previous content workflows as well. So it’s very much that iterative approach and bringing in changes that help people as we get to the end-game, but one of the things we’re very conscious of is when we’re building our own MVP, we’re not going to try to turn our skateboard into a car. We are actually going to be looking at needing to build a car eventually, and making sure that what we build along the way gets us to a car.

jam: Cool. Okay. So mixing our metaphors here a little bit, but it’s also – I guess it’s more a matter of if contrib. does more or less all of this pretty well, it’s also a matter of abstracting it out to the most general use case and sort of strengthening it so that it can be reliable enough to be in core.

Dave: Yes. And there’ll also be some parts where we decide, “Okay. This will work for the 80% case or the 90% case,” and then drop in our pluggable service. So then contrib. can still extend what we’re building, because that’s the power of Drupal. We won’t build something that works for every single user into core. So we need to still allow contrib. to extend what we’re doing.

jam: Right. So we invested heavily in CK editor for WYSIWYG but we still have the – is it the WYSIWYG API – the Editor API? Anyway, we have the wrapper around it, so you can still integrate something else if you want to.

Dick: Yes, exactly. And this is very much an ongoing conversation with the whole community, in terms of a roadmap in our plan. It’s not like Pfizer stepping in here and saying, “This is how it should be done.” As Dave said, these ideas have evolved outside of Pfizer with many different companies, many different clients of both myself and Dave on our own. It’s also reflected in Dries’s survey that this is something that people are looking for. It’s one – media, I think was one of the sort of main user, and content authoring functionalities or future sets that we look for. The second one was workflow related or previewing, moderation type of thing. So this is not something where even though we will be working on this initiative as part of our day job, this is not something where we are coming in and imposing a roadmap.

jam: It’s still the community process.

Dick: It’s absolutely, fully a community process, without a doubt.

jam: What sort of help are you looking for and where should people go to find out more?

Dick: So we have the official plan issue in the core issue queue – it’s there. Just search for anything tagged with the "workflow initiative" tag and you will find it. We will also be gathering our community efforts around Drupaldeploy.org, which is going to be a little bit like – it’s a home for our contrib. modules in this space, and it will also be the home for the initiative a little bit. So those are two good places to start, and there you can find the roadmap, you can find the people who are going to work – sort of the dedicated team for this – and these are people that you can reach out to if you want to help. We have myself as the initiative coordinator, Dave as a senior member of the team with lots of experience here. So Dave will help guide the roadmap and the priorities.

Dave: I’ll play the grumpy old man of the initiative.

jam: Okay!

Dick: Then we have team Tim Millwood, Andrei Jechiu, and Andrei Mateescu on the backend coding side of things. Tim is working for Appnovation, Andre Jechiu is working for FFW, and Andrei Mateescu is freelancing.

jam: Okay. Oh, amateescu, yes, yes.

Dick: Yes. So if you’re interested in coding and the backend side of things, those are people you could reach out to. Certainly, myself as well. If you’re interested in user experience, design, and frontend, then we have Joseph Toth on the initiative as well. You can reach out to him if you want to help with the UX part or the frontend and they’re all listed in that initiative plan that you will find in issue queue. So that’s where you could start.

jam: So did Dick read your mind and say everything that needed saying?

Dave: Yep. I’ve also read the plan multiple times.

jam: Okay, all right. So this is really, really exciting and I actually – it’s especially exciting – I just want to underscore this. We can see results in – maybe not 8.2 but in 8.3, a year from now. Drupal will be better and doing more things, right?

Dave: There will actually be - some of our first phases of development are targeted for 8.2, so yes.

Wrap-up: please help out!

jam: Amazing, amazing. I love that. Thank you so much for taking the time to explain this. Please come help these folks out, I think this is the beginning. There are a bunch of these initiatives coming, and this is the beginning of this possibility where we can make significant differences in a really rapid time frame in our project, and keep ourselves really relevant and on the front lines of the web for quite a while, I think. Quite a while. All right, how was your Con?

Dave: Awesome! It’s probably – after Mumbai, it’s my favorite Con – so my best North American Con I’ve been to.

jam: All right. Big words, and you?

Dick: Because of the initiative, I’m super excited and it’s been one of the best conferences here.

jam: Fantastic! I’ve also had a good time, though I haven’t seen much of New Orleans because it’s just been one of those weeks. Thank you so much for explaining this and doing this, and anyone who wants to help out, come find these people online, Workflow Initiative.

Dave: Yes.

jam: Thanks, guys.

Dick: Thanks.

Dave: Thanks, jam.