 Awesome. Well, good morning, everybody, for afternoon, for evening, depending on where you are in our global Drupal audience. But this is Holly Ross, I'm the Executive Director of the Drupal Association, and I am really excited to bring you today's webinar, Drupal Eat in Practice. Now that we have our first release candidate out, I know everyone's eager to start building a Drupal 8, but these brave souls did it first. Or close to first. And so they want to share some of the lessons that they learned along the way as you begin your Drupal 8 journeys. So we're excited to have them. Before we get started and talk about our presentation though, just want to share a couple of housekeeping announcements with you. So the first is that we are recording today's session, so you will be able to reference this again and share it with your colleagues. We'll get that out to you a little later this afternoon. And then the next thing that you need to know is that we do have everyone muted today just to keep the background noise to a minimum, but that does not mean that we don't want to hear from you. So feel free to share your questions throughout the session today, and you should have on your GoToMeeting control panel there a question section where you can throw your ideas and questions into, and I will help moderate those today. We'll try to take some along the way, but we'll just see how things go. But feel free to use that. And I think those are the important notes from today. Let's see. We have a high from Serbia. So we do have a very international audience today, and it is evening somewhere. Hello, Serbia. Awesome. So with that, let me turn things over to our content today. It's the reason you're all here. This presentation is brought to you by Phase 2 and Memorial Sloan Kettering, our, oh, thank you very much, Frank, our speakers today. We've got Frank Febrard, the CTO at Phase 2, and Jonathan Headstrom, their software architect, and they worked with Jake Rockwoods and Evan Liebman at MSK on the site. So I'll let you guys do the real introductions and take away the content. Thank you. Thanks, Holly. My name is Evan Liebman. I'm the director of digital communications at MSK, and I oversee our development group, our technical group, and also the user experience strategy for MSKCC.org and SloanKettering.edu. Jake. Hi, my name is Jake Rockwood. I've worked with Sloan Kettering as a consultant for the past almost 15 years, helping them navigate through a custom-built CMS to Drupal 6 and to Drupal 8 finally. Hi there. I'm Frank Febrard on the CTO at Phase 2. I worked with the MSK team kind of from the beginning, from the decision to move forward all the way through to the end. I was served as a technical advisor for the team. I'm Jonathan Headstrom. I've been working with Drupal for nearly 10 years, and I worked throughout the MSK project helping them address issues that they were encountering in both core and contrib. Fantastic. Evan. Sorry, I was on mute. Can you hear me? Yes. So researchers at MSK regularly push boundaries to innovate, and we're inspired by their relentless efforts and are driven to do the same in our space. So Frank, if you can just go ahead to the next slide. I just want to share with you some of the reasons why we chose Drupal 8. And so first, I just want to take a step back to April 2013, where Jake came into our office and made a presentation to our group to talk about Drupal 8. And at this time, we had just launched a Drupal 6 site in November of 2011 where we weren't starting to yet think about moving to a new version of Drupal, let alone Drupal 8. So Jake had this mantra of D8, don't be late. And there's a lot of things that shape up to why MSK chose Drupal 8, but it was really, initially, it was Jake driving us there. And Jake, as he said, he's been with us for about 15 years. He is a developer extraordinaire and very brilliant in many areas, and he helped us get onto that path. So at MSK, we are Memorial Sloan Kettering Cancer Center. We are a hospital, also a research and training facility. And so what we believe here at MSK is strongly in a culture of innovation. And we believe that it's a relentless pursuit of unmatched expertise that results in breakthrough advances. And so we have researchers and clinicians who regularly push the boundaries to innovate and generate new knowledge and to continually develop new methods for treatment. And we're inspired by their relentless efforts and are driven to do the same in our space. And so when this idea came forward from Jake, and we started to think, well, how does this circle up to our strategic pillars and the things that we like to think about here at MSK? The innovation factor played a major role in pushing this forward because if we think about what's being done here and we want to strive to push the boundaries in our space. And so that was really important to us. Another piece was, well, it says sustainability here, but really what is financial sustainability? Every update that we've done, you're going from that proprietary system that Jake had built for us years ago to Drupal 6 and into Drupal 8, it's always been tied to a redesign. And so when we finished the D6 site in 2011, we had just missed the boat on D7. And we didn't want to go into D7 with a new redesign and then start thinking about moving to D8 and a new redesign right now. And so we sort of had this goal to push forward a redesign site to match up with our competitive advertising campaign. And so had we, you know, and we wanted to do that in April, May 2015. And so we didn't feel it was sustainable to launch something and launch a D7 site at that time and then start thinking about D8. So we kind of knew right away that the financial piece to this wasn't really shaking up to a D7 site and it helped propel us towards D8. And another piece here was talent recruitment. You know, I think everyone will sort of nod their head in agreement that talent is really hard to find, right, Frank? That's probably a challenge there. Everywhere, at every organization. And so, you know, we, you know, one thing that I looked at that I don't really know will come to fruition, but, you know, I thought about symphony and object-oriented programming and thought, well, there's people out there that are doing that now that may not even be thinking about Drupal and working in Drupal. And to me, that sort of broadened the talent pool. And, you know, we've done a pretty decent job here in recruiting over the past couple of months to build our team here internally. And, you know, it is very challenging to recruit, although, you know, I think also the push to D8 helped us do that as well. So being an early adopter and, you know, people being really interested, like, oh, you're in D8, that's pretty cool. That's maybe something I want to do. And so, you know, that's the idea of symphony, object-oriented programming, broadening the talent pool, and being the first in Drupal 8 has really helped push us towards Drupal 8. And then finally, the community piece. And this is, you know, this is really important work to us that Jonathan really helped push. And, you know, there's thousands of contributors to Drupal 8. And, you know, we felt it was really important because we've always taken a little bit from Drupal. And we felt that it was really important as an organization to give back, even if in a small scale or whatever we felt, you know, whatever you're able to do. And we just felt that we're all trying to solve similar problems and we can leverage people's work and people can leverage our work and bigger problems could be solved. So being able to contribute to the community was a very big deal for us. Right. And so if we want to talk a little bit more about the CMS landscape in general, I mean, MSK had some pretty big goals there. And, you know, when we talk about the CMS landscape in general, we're seeing a lot of shifts in consumption. So the world of content and content management is kind of changing more rapidly than ever before. And at the same time, consumption is both being fragmented and consolidated. It's kind of weird, but I'll get into that for a sec. Like, it all started with mobile, obviously. And, you know, mobile accounts for over 60% of content consumption on the web right now. Which is amazing. And it went from mobile, but now it goes into all sorts of other things like Internet of Things devices, over-the-top things like Roku apps and Xbox, and things like wearables. And, you know, at the same exact time that there's more and more places that content can get consumed, fewer and fewer apps are in some ways actually controlling the consumer experience. And it started with things like Flipboard and it's progressing now into places like Facebook and Apple News where there's fewer and fewer sometimes places that people actually go to get their content. And, you know, having a platform that can support both this fragmentation and consolidation is an important aspect. When we get into modern architecture, so while the content ecosystem's been morphing over time, the way that we build those systems also has been. So in response to both the way content is consumed and how these systems need to morph and scale quicker, the decoupled architecture of Drupal 8 is kind of in direct response to the need for things like rapid deployment and the evolution and responding to your audience's needs. And then, you know, things like not always wanting to have to bundle an entire release of everything in order to ship something, like to be more nimble, to be able to ship front-ends faster without having to bundle that with a backend deployment, like those things have changed the way we build systems as well. And when we speak about the front-end, kind of, I would say that long gone are the days where the primary driver of how you engage with your audience is like limited by what your CMS can deliver. You know, the CMS can't really be something that gets in your way anymore. It has to be more of an enabler for the things that you want to do. And, you know, where in a world where context and reaching your audience is kind of more important than ever, you kind of can't just rely on your CMS anymore. I mean, there's all sorts of things, Facebook and Instagram and Tumblr and all these other places where you actually engage with your audience. And we need to be able to kind of support that. And the integration capabilities of your CMS kind of has to play more of a unifying role to bring all that together, and that's kind of more important than ever before. And I guess to quote myself, here's, you know, something that I've said that your CMS no longer needs to do everything, but it's increasingly becoming the place where everything comes together in your continuity system. So let's talk a little bit about some of the features of MSKCC.org. Yeah, so... Sorry. No, sorry. Okay, thanks, Jake. So just to give you a sense of the scale of the site, you know, this is a pretty major, a pretty big site we've got here, and you can see here what we've put in front of you, 32 content types, 30,000 plus nodes and so forth. I mean, I think the point here is that this is not a brochure site. This was a major move towards... This was a move towards a major upgrade in Drupal 8 with a very large website that serves seven personas, that has related content, faceted search, web forms, online payment, prediction tools, LDAP authentication, and you know, just to speak to the analytics piece, we get about 5.5 to 6 million unique visitors per year. So being able, you know, Drupal 8, I know there's some thoughts about D8, you know, might work well for your blog or might work well for your organization website or your brochure site, but you can go ahead and even at this time and release candidate, put a major site into Drupal 8. Jake? All right, Jake. You want to talk a little bit about some of the features? Yes. This is the screencast. It's going to start in a second. I'm just walking through a couple of quick features in the site. I'm actually starting with search because it's a really simple feature, but it brings up a really interesting point about Drupal 8 is it's just using Google site search. And this was actually pretty easy to implement because Google site search is a well-documented API and Drupal 8 is very good at consuming APIs. And it's also just showing all the teasers on the site, which I'm going to get to more with the front end. And I'm walking through the different facets of the site. So we're looking at clinical trials and finally locations. And I'm going to click through location detail in a second. And the next feature I just want to show is kind of layout, that we have custom layouts on the site. This is done with some custom code. It allows a flexible layout with dynamic content. This is an example of a location page. And a better example would be there's a campaign called more science less fear. And this is a very rich page with a lot of interactive features. I'm going to show a video. And even the video playing is just another example. It's really not hard to implement a YouTube video on your site. We also do write code and the dialogue is just core. And another common thing besides layout that we're going to move on to in two seconds is making an appointment. And this is a very simple, another text driven layout. But the appointment forms, one of the most important forms in the site, we were able to implement a custom form module that allowed to leverage all of DrupalCore's form API with a little bit of YAML to help support it and store some data. Now, the next part of this is I want to show the prototype because it's frankly brought up the separation of front end to back end. So this is a front end static HTML prototype. And what I'm going to start walking through is all the static comps that you just saw. And they were all built completely outside of Drupal. The front end people had no knowledge of how Drupal worked. They did all the code outside of Drupal. And then we brought this in using the twig and the other improvements in core and all the HTML CSS JavaScript was just brought into Drupal. This is now showing just the forms all done outside of Drupal. And then the final piece is also the teasers. Every single teaser widget on the site, call up to a note, is done in this front end. It just definitely, like our approach, we didn't do 100% headless Drupal, but we definitely developed the front end of the site outside of Drupal and then brought it in. And I think the key thing there, it goes back to, is you can definitely separate your front end and back end, your resources, your concerns. It makes it possible to change the front end at a different point. That's it for me. Frank, this is Holly. I just want to interject. We had one question, which is, are you linking your site to a CRM and what is that if you are? So, this is Evan. We're not linking to a CRM. There is a goal for 2016 to bring a CRM on board, but at this time, there's no link to a CRM. What about profiles? You link to a profile system, don't you? To address that, the site right now is all anonymous traffic from the front end perspective. We use Shupuls on user profiles for just internal users editing content. We do have about 300 people editing content on the site. All right. Jumping ahead, so these are some of the things that Jake just talked about. They were search and layout forms and the prototype library. Now, we're going to talk a little bit about some of the building blocks that the site's built on. Yeah, so this is Jonathan. One of the really interesting statistics of this project was that the Drupal 6 site had 114 Kintrip modules, and this list right here is the sum total of all Kintrip modules used in Drupal 8, and that wasn't replaced by custom code either. I think there's one more custom module in Drupal 8 than in Drupal 6. So that really speaks to, A, how much more functionality has gone into core for Drupal 8, and B, how much easier it is to do complex things with less code. One of my favorite examples of the upgrade that we worked on, we helped in one way or another with the Drupal 8 modules to 8, but the redirect module in Drupal 6 has a lot of different hooks that has to implement a lot of boilerplate. In A, aside from the configuration form, it really boils down to a single event listener class that just intercepts incoming requests, and if it finds a redirect, it acts on that. Along the way, the global redirect module was also integrated into the redirect module in a matter of days. The cleanness of the code makes these upgrades a joy, rather than I remember upgrading modules from Drupal 6 to 7, and at the time it seemed okay, but you were in retrospect really just renaming some hooks, and in contrast, the 8 upgrade allows you to just cut out so much cruft in boilerplate. If you can go to the next life rank. Along the way, I think as Evan mentioned, at least Jake started with some semblance of a prototype in Drupal 8 way back in 2013. I came onto this project almost just over a year ago, I think, and as they were building back then that would have been beta 1 or beta 2. A lot of core issues were encountered, and so my job for the most part was to take the bugs and the lack of features Jake was finding and go try and address those in the issue queue. One of my favorite and also hardest patches to get in was views integration for the date module, which prior to that patch, the only views integration for the date module was it treated date fields as a string, so you couldn't do any sort of relative date handling. That patch got committed three times and reverted twice. That was quite the battle. Another really powerful thing that's in Drupal 8 but has no UI is the concept of moderation, meaning that built into core is the idea of forward revisioning, meaning all of the complexities of having different revisions, like a draft state is in core, there's just no UI for it, so there was a relatively straightforward patch that we worked on for MSK that allowed node moderation, meaning they can edit things in draft and people with permissions can look at those drafts while the live version continues to be unchanged. There were numerous, numerous bugs of all different severities that were encountered both in APIs, just missing fundamental functionality or fatal errors that you could encounter through the UI. And then once they went live in May on Beta 7, there was the occasional security patch that would get committed and those we needed to backport immediately to the site. Yeah, could you go to the next slide Frank? After they launched in May, they were on Beta 7 and the core the official Beta to Beta upgrade path didn't become a thing until Beta 12. So in those months my job at that point became pretty much solely focused on the core upgrade path that meant working on core issues that were blocking that upgrade path and also starting to work on the actual upgrade path that would be unsupported from Beta 7 to Beta 12 and that work took place in the contrib head-to-head module along the way of working on that unofficial upgrade path. I think we found at least half a dozen core critical issues that were related to all upgrade paths. So that work in addition to pushing the core upgrade path forward so that eventually RC1 could come out last week it also found many bugs that might not have been found had people not been working on that unofficial upgrade path. Great, thanks Jonathan. So the question that we always hear and get to ask should you consider Drupal 8 for your next site? And some of the questions that we like to ask about whether your current CMS whether usually if it's not Drupal but sometimes even if it is are you able to present content in media through a variety of channels? Is it responsive? Does it support engaging experiences? Is it supported by your vendor or a community? Will it continue to be? This might be a question for much older versions of Drupal as well as other CMS that are out there. And can it easily integrate into your existing enterprise architecture? The multitude of systems is growing and no longer can you have these stove piped applications inside your walls so your CMS is one of those. So when we think about what makes Drupal 8 really good for the enterprise these are some of the things that we think about. We think about omnichannel capabilities which is basically allowing for the continuity of experience that your brand needs today across all the channels that you're interacting with. Responsive design it's built responsively from the ground up to include the administrative experience this is a big deal for organizations that need access wherever they might be. We talked about the decoupled framework which is it allows systems to be built in a more future proof way developing systems in more of like a microservices fashion allows less coupling of systems and more flexible both development integration deployment. Improved developer experience this is something that Jonathan just talked about before when upgrading modules using modern PHP features and the frameworks that we brought in from outside the Drupal community have been really great it allows everybody to do a whole lot more with a whole lot less. The result is kind of more productive and happier team members and that comes from knowing that you have this truly powerful tool in your hands and it's like a really good feeling it's empowering for folks working on these things. As Jake showed with that prototype library the front end requires less Drupal specific expertise and that allows you to pull from a much broader pool of design and experience folks to really help you connect with your audience. Multilingual support I mean these days obviously with online borders are less and less relevant being able to connect to your audience both where they are and in the language they speak is really key and this is really the first version of Drupal that top to bottom has this wonderful multilingual experience even in Drupal 7 to get the right thing to happen in a lot of cases required almost sometimes up to 20ish contrib modules and now I think it's down to about 4 or so and they're all in core it's all there and it's really great. So the question like we said is Drupal 8 right for you if you've been waiting now that there's RC1 out we think it's even more of a reason to jumpstart development even if you don't have something that's going to be built right away I think it's a really great time to start to understand the platform and play with it and bring your teams up to speed you know is proof that major Drupal 8 builds can be done and think about how far in the past they started I mean this journey for them started 18 months or more ago and Drupal 8 was much less mature but we were still able to work together and get a great deployment happening so here are some of the things that we like to do so Drupal 8 obviously still RC contrib isn't fully updated yet so one of the things that we say is that plan for the D8 learning curve your team is going to start a little slower than they currently are if you're working in earlier versions of Drupal things are just different there's new paradigms that need to be discovered and kind of ingrained into the team's collective knowledge but you know we found that after just a couple of weeks once everybody is up to speed there's really just this increasing pace which is really great to see once the platforms understood like I said doing more with less is really great if you have the right team you should totally see that with respect to the contrib space there's the question do you wait for contrib to catch up do you wait for the things that you need to be out there before you start building and the good news is that since this is an entirely different system sometimes the things that are in contrib that you used previously you don't need anymore there's other or better ways to do it or it's built into core things like views being in core it's a wonderful thing it's a great way to be able to rely more fully on core to do the things that you need than contrib but you also have a really good opportunity to push the contrib space forward too and to take on like a key module for you and to help the community upgrade it's really great to give back and to get those advanced use cases into the contrib space for other folks and then with environmental consistency this is really a really key factor in mitigating risk and especially in Drupal 8 it's really new so there hasn't been deployment across a wide variety of platforms with Drupal 7 it's basically been installed and run everywhere so a lot of the gotchas have kind of been figured out with Drupal 8 it's still a little bit more narrow in the places it's been deployed so getting something strong and stable from the beginning from dev through to production getting your environment set using dependency management and things like that so that you can ensure that you have the right versions of both software and operating system and the right versions of core and contrib things like make files and composure files and stuff like that are all really great there and these days there's also the hosting providers like Acquia, Pantheon and PlatformSH are all D8 ready these days so that's another option with respect to having good environmental consistency and mitigating risk via prototyping obviously exploratory development early on to see how core and contrib will help meet your needs that's a really key aspect of any early release cycle development and the quicker you know which problems are going to be challenging to you the better you can plan for your contingencies sometimes you have to have a plan B and sometimes C and knowing where that is early will allow you to address your risks early and get them out of your way so what's next for MSK a lot actually so one thing that is on our radar right now is integration into our patient portal MyMSK using the REST API and so Jake's doing a lot of work there to get over to this MyMSK patient portal on a .NET platform lots of content that we have for our physicians for our disease guides that patients are able to see that information in that experience under MyMSK and also starting to think about the CRM piece as well and how that relates to the REST API but that's probably something for 2016 refactoring templates moving to pattern labs is something that's on our radar that we're starting to set up for right now some API cleanup better test coverage performance optimization starting to pull in contrib modules for new functionality and one thing that we're grappling with right now is the upgrade to I think we're on beta 15 now and we are grappling with move to 16 or move to RC1 just some of these concerns are related to resources but just trying to figure out what is the best move for us as we have sort of a lot on our plate right now and then lastly thinking about building a platform in the eight in 2016 for other MyMSK departments who want to have external content but their material, their content doesn't really belong on our site so it doesn't fit well there I should say so thinking about doing that platform in 2016 as well and that's it great so yeah you know if you're you know if you think you're ready to take the next leap to Drupal 8 let's get some questions answered we have some time here to answer some questions and Phase 2 is available to help awesome thanks Frank and everyone for that that was really interesting and we're going to let some folks filter in with the questions but I was actually just really curious so at John's room I was saying that they found that porting some of the modules over to Drupal 8 was much easier this time and I didn't know if you wanted to share a few more details about why that was so we have lots of contributors out there who are going to start doing that path shortly and it'd be great to hear any lessons learned about that sure like I mentioned with redirect there's just just to get access to the low level functionality in 8 where you need to interact there's you can do that with just so much less boilerplate so rather than having to implement 10 different hooks just to get your one key function called you can for the most part just get that function in a class and hook it in the right place and then it'll work and then another big piece is so much wanted to core including things like entity reference at a very low level so even things like organic groups which were these behemoths in Drupal 7 because they were doing so much outside of core I'm not going to say organic groups is going to be easy but it will just be leveraging concepts that are now native to core rather than inventing a whole system like entity reference outside of core and then adding all the access control on top of that um yeah and for modules for modules that were upgrading like features um you know in Drupal 7 features was doing both import and export of configuration as well as the bundling of configuration into kind of more use case friendly modules and you know for us with CMI getting into core all of the work that had to do with import and export got to go away we didn't even have to do that CMI handled that for us which was fantastic and then the places where we did have to do overrides instead of building entire different subsystems just to handle the override we were able to just extend a couple of services and override a method and that was it it was uh it was pretty amazing awesome um see I think you guys also mentioned you have about 35 content types can you talk a little bit more about those and the process that you went through to understand what content types you needed um I can address that I mean one really important thing to state about the hospital's website is it really is two and possibly three websites because it's addressing patients and some caterings research institutes so it's like the clinic clinicians patients and doctors and then you have researchers which are people working in labs then they have their lab members their staff members their students um and then there's another side with doctors is referring physicians kind of a slightly different take on the doctor and what kind of happens is each one of those requirements just broke down content types in different sections so for example we don't have a generic bio content type we have a doctor content type and we have a researcher content type we have a clinical staff member which is can be someone like a nurse or yeah basically it's for nurses or executives or you know people working on that side of the hospital and then we have a research staff member and that specificity on site kind of required this the 32 content types um I should get into listing most of them but I think that's a little crazy um and then we have the standard ones which I think are just important to emphasize is like we have events, locations, blogs forms um we do teaser content types to do the little call-outs on the site so we just need a title on an image and that's one way to do it um I think that hopefully addresses the question yeah and can you talk a little bit more about the content process in general I mean so 30,000 notes of content um so when did the work on the UX and the information architecture and the content study in general when did that begin did that start before the 18 you know the 18 month timeline you mentioned um or did it start earlier than that yeah I mean even from the migration from a customcy message dupal 6 like we took what we had and use that as a starting point so I was just migrating we migrated the content types as is and then when the discovery was done on the jubilee site we manipulated some content types we removed some content types we merged a few um and so it's kind of been an evolving process I'll admit we don't start a new site and say we're going to start from scratch on every content type it's kind of that becomes overwhelming and there's been a lot of previous work done and discovery on that we really didn't need to keep doctors and researchers separate it did come up to merge them and the conclusion was it's easier and one of the key points there is researchers actually maintain their own pages and doctors do not doctors have a single node they go um they send their resume or whatever information they want to someone and they fill it out but researchers have going constantly updating their staff members and projects um yeah that's so the content types have been an evolving process over over 10-15 years and to answer a piece of your question um so the strategy UX engagement actually began in April 2014 um and that's something MSK worked with um digitized LBI on and so we can't you know we work with two agencies in this process um and um a lot of the so much of the content carried over from the D6 site um there was some new content um that was created but we also cut a lot of content um and to the point of contributors um I guess there's probably four large groups of contributors there's the researchers that Jake described who um go into their lab pages or a lab member goes in and edits that content um we have a pretty large about herb section um under integrated medicine um they've got a few writers editors there and producers that are um creating content um and patient and caregiver education materials is also a major chunk of that 30,000 uh set of pages that has their own group of writer editors that that contributes and um within communications which is um the group I'm in here um we have a large group of writer editors as well that really focus on um patient content and healthcare professional content and Holly I'll add one little administrative thing is so we have 32 content types there are actually 32 admin views for each one of those content types so the person responsible the team that's responsible for herbs gets their own admin table that exposes certain hidden fields that they might need to monitor like they like to track their images and patient ed has a lot of they have translation so their admin UI has support for sorting by translation and that pattern has helped significantly with droop blades so every single content type has an admin it's a table it's basically a table with a lot of exposed um form fields Thatcha lots of lot of stuff and it's interesting to me because I it's just that uh Ned camp over the weekend was just listening to other people how to handle content um so it's been uh there's lots of different ways to do it for sure um let's see one more one more question here uh about uh this one's about search so um you you mentioned that um search in D8 was a little more out of the box but that definitely looks like a different implementation of search than we've seen um for most sites so can you talk about how you implemented it and did you use FAPS or well we had two search options so it was like Google site search and Apache solar and Apache solar did not was not had not been ported to Drupal 8 yet and personally I was a fan of Google site search because I felt the results weighted a little better and we did and confirmed that for MSK Google site search returned better results generally and all that stuff is done in the Google site search API like it's all done in Google service um the facets are just basically tagging URLs based on patterns so the URL pattern on MSK is like mskcc.org slash doctors and so in the Google site search you're able to just set up those facets and then from a code perspective all we had to do was call Google's API and present the results and it's the front end of that site search was done outside of Drupal so then I just kind of set those facets in the tabs um and we are using core search I just want to add that if you go to like the blog and you do a search core search allows you to do integrated searches with the views so you can have a keyword search and a filter by tag working together and so we are leveraging core search for some of our smaller searches on the site it's fine because those searches only search somewhere between 500 to 1000 records usually gotcha okay do you have any commerce functionality on the site? yes and we have a very simple requirement I think this brings up when you might want to approach custom code is we just need people to make payments when they are registering for advance we are not having a login the site is totally anonymous and just as they fill out the form at the bottom they need to pay with a credit card so we just wrote a custom module to collect that payment we are also using a custom web service backend to deal with that transaction so that was our approach if you needed a full e-commerce site I would strongly recommend to wait for a contributor to catch up great okay so one of the things we hear frequently is that the learning curve from C7 to D8 is going to be a little bit tough and so one of the questions we have is are there any references or materials that you found really useful in helping to make this project happen? Dothan do you want to take that from your core perspective on how you got up to speed on D8? Yeah I mean from my perspective one of the earliest ways I got into D8 was writing tests back almost five years ago and that helped a lot but that's certainly not for everybody there's a variety of approaches one thing I recommend heavily is if you know a core module in Drupal 6 really well how it works from an inside out perspective just go take a look at how that has changed in 8 as an exercise the list of changes there are thousands of them but if you encounter a function or a hook that you were relying on in 7 if you search for that by name in the change logs you will find hopefully only one record of how it's changed so that's a really good low level developer asset but for site builders not a whole lot of the concepts have changed you know if you're going through the UI it's better, much better but the concept of adding fields to things is the same as it was in 7 there's just more types views is there out of the box the views to UI hasn't changed at all that I know of yeah and then you know aside from that just dive in and start trying to do something you know how to do really well in 7 and I don't have a list of 3 magic blogs or anything I have one good place to start is to learn all of the powerful features of PHP kind of in the OO aspects of it so classes and extensions and interfaces traits and kind of all of those things and then dig into a little bit of some of the components that's built on the router, look at some of the testing framework so kind of if you get up to speed I think on a lot of the foundational technologies that it's built on you're better able to read the code you're better able to kind of walk around and check it out there's also places out there that are doing like some quick like PHP for Drupal 8 boot camps I think like PHP architect is doing a pretty quick and easy code boot camp that kind of helps you get up to speed so there's a lot of things to learn but these are all just really good things like whether or not you're doing Drupal 8 even specifically just being able to go from more procedural languages to OO languages to using more common frameworks like these are just all good things for people in their careers to know anyway so there's a lot of good motivation for both learning Drupal 8 and picking up those skills so I like I was solely a functional program where that was my mindset I did a lot of JavaScript early on and then I went to PHP and Drupal Drupal 6 is all functional programming and my take when I was pretty much overwhelmed by symphonies I stepped back and I focused like symphonies is integrated into Drupal I stepped back and focused solely on just understanding what symphony was doing and there actually is one tutorial I did which was called Simblog which was building a blog in symphony and it just walked through all the different parts setting up pages, routers, validation, emailing, even authentication in symphony which isn't applicable to Drupal 8 but it helped to do to step back and approach Drupal 8 is a complex machine and to approach symphony objectoring from a smaller perspective helped a lot one other key thing I can't emphasize enough is definitely you need a good IDE especially because there's no documentation so you need to be able to navigate D8's code I use PHP storm that's becoming very popular if you run into an issue you can inspect the objects, look around at the implementations and going back to tests that to me is the best documentation right now for Drupal 8 if you run into an issue you need to find a test for the component you're working with and read it and see what it's doing Jake reminded me of even though I said there weren't magic blogs there is a 12 part blog series by Fabien Patentier the symphony lead about dependency injection so if that's an entirely new concept he walks through the hello world of a PHP app all the way through how you can leverage dependency injection alright that's the on that elaborate each one it builds on the next it's fantastic for just getting that concept alright and recognizing that you guys are all you guys all sit on the back end of the code do you have any front end resources that you would point out well I think obviously learning learning twig is important but you know one of the good things that we're saying is that in a lot of cases front end is not so much coupled to how Drupal does so many things anymore so there's a lot less there's a lot less of Drupal you have to know if you're going to be very pure front end yeah I think that's quite a design right so that's a little easier yeah I mean everything that's been done has really been about broadening the pool right bringing in OPHP bringing in symphony that allows people from outside of pure Drupal world to contribute and then decoupling front end more allows people with less PHP and even more less specifically less Drupal skills kind of come into the mix as well so it's done some really great things yeah and I'll just point out that both front end and back end developers build a module and Drupalize me have a lot of Drupal 8 prep and a lot of it is free so you can definitely go check that out for sure too those are both great services yeah let's see we still have more questions I hope you guys can keep going for 10 more minutes so one of the things you talked about when you were talking about content types you mentioned you basically created some admin controls for each sort of area of content control so that your content editors could manage their own content can you talk a little bit about how you train them and what it's supposed to help your content editors get up to speed oh that is a tricky one well you know I'm really fortunate on this site that we have a lot of experienced very smart content editors like the administrators the people doing the heavy lifting on the site no HTML they're very comfortable learning it I taught them YAML because sometimes it was easier to have them edit a YAML configuration file to manage the site going back to content types I did a lot of I did some additional cleanup to the node edit form to make it more manageable a very simple one this is all included in core edit form up into tabs as well as used to the sidebar and I kind of broke it down into tabs that made more sense for the content an example would be when you get to a doctor bio there's a publication tab and in that tab they can edit just the publications associated with the doctor so I did do a lot of work on the node edit form to make it easier to use also another thing is that the entire admin is built on things like views and what not whereas in Drupal 7 a lot of the kind of core administration forms and things those were kind of hard coded and you had to either work pretty hard to change them or just kind of build your own parallel administrative tools so Drupal 8 allows you to do a lot more customization on the administrative tools themselves to kind of have them more purpose built for your audience that's a pretty powerful thing too so you could lower the amount of training needed by building the tools that they understand better great yeah UX for your admin is certainly important right yeah excellent can you talk a little bit about the resources required for the project so you know what the spend was how many staff it took on the MSK side those sorts of things sure so sometimes I'll have to count as I'm seeking to because there's quite a bit of resources here so within MSK our lone developer at the time was Jake and so also on this team we had somebody who sits on the UX side also a web producer and a QA analyst and then outside I'm sorry one more piece here internally at MSK which I think was really important to the success and speed of the project was a program manager so we set up this project management office structure with executive sponsors program manager, product leads, work stream owners and that really helped set a lot of the finer goals but also meet those goals as well and the time that we did and internally we also had our team of writers and editors at MSK so we had people here internally step outside into phase two we had three front-end developers dedicated to the project Jonathan contributing to CORE and one back-end developer is that right Toby okay so that's another handful of people plus you know Frank's leadership and Mike Leduc also somebody else who worked at phase two who was very insightful during the project and the account team as well and then Digitas sorry so Digitas focused on UX strategy design, the creative piece but also did a lot of the front-end development sorry most of it the front-end development that was done outside of Drupal and then the phase two team put that into Drupal so you're probably looking at like another 15 people on the Digitas side if you add in all the strategy piece to UX the development so you're probably pushing like 25 people 30 people for the project sorry to count that off without my headlines I think it was good though to show how kind of multidisciplinary it was it's not just a couple of devs in a room knocking things out it's full team effort from brand to implementation and then there's the folks in IT who tried to help us get the environment set up and everything so Devops we haven't talked about if there's any questions I think we can answer them big sites take a village yeah exactly okay let's see here I just want to see do you guys have a checklist or any tools that you developed coming out of this that you might be able to share that people can help you walk through a six to eight migration that's tricky we did a custom migration we didn't address that we had to because the migrate module is still under development I don't recommend doing that the key thing with any migration you got to make it repeatable and have service set up to repeat it every night and you go in and do it over and over and over again and then you slowly wind down you stop tweaking things until a week before your final migration you freeze and make sure the site is moving over I also think it starts with something like a content inventory you have to know what you have and then you also need to know what you're building on the other side on the eight side does your information architecture change what's your content strategy how is it going to be different in a lot of cases if you're going to be building a version of Drupal that doesn't make the best sense you kind of take this as an opportunity to do the next evolution of how you interact with your audience so you kind of have to know where you're going where you're coming from and where you're going so that you can kind of plot that course between Frank you reminded me so we did do Larry Garfield the Palantir did a blog post developing Drupal sites planner parish and he shared a little spreadsheet I was just going to mention that we used it completely I would go with I had 25 tabs breaking down everything from image styles, content types, fields users, taxonomies everything dumped out into a file so I did that before we even approached Drupal shops to help us so everyone could get a sense of the scope of work so I definitely recommend it was just done a very long time ago that I forgot that we did all that work I'm going to put that link in the chat for folks too because I think it's really interesting and helpful so it's really detailed so be prepared to sit down for a while We've got tools to do the export by the way there are modules that are starting to do that like in 7 that they'll dump out spreadsheets for you so you don't have to manually type out every content type Great and then just a couple of hopefully quick technical questions what are you integrating the site with any other services and how is that working We're doing a lot of internal integration so we have Oracle, we call an Oracle database to pull our clinical trials over LexiComp, there's a lot of little snippets like they have an FTP we pull medications off of the LexiComp server it's actually a zip file on an FTP server there we pull down unzip, use you know cores, code, cores, apis whatever it's at, guzzle is what's included in core now with third parties we have full bright code integration so we pull the core bright code api and get data about our videos so that we can kind of embed them on our site trying to think of other a couple of web services that people have set up internally to get us data Nothing very heavy like we're not posting blog posts to Twitter automatically through the website and it just wasn't really a core requirement for this site and the last one last question we have in the whole queue and you guys got some also, well played someone noticed that my MSK is not using through all is that true and why that is true they're using Sitefinity on a .NET platform it's for security purposes I think they put that into place, Jake how many years ago my MSK came in like seven or eight years ago and at the time they were just thinking a different platform that they felt was I mean more so they did not push towards Drupal at that time and I don't think there's any plans there I'll also add some countering is primarily a .NET shop they have a lot of Windows developers and my MSK CC needs to integrate with many backend systems and I think .NET is the right solution for that integration All right, well we made it and you guys were so amazing to share all of that and then take answer all those questions so thank you so much for being at the forefront of this and being the organization that was willing to learn all the hard lessons first and then to share those back out the community that's obviously what Drupal is all about so I'm just so grateful for that and thanks again for your time today and we're going to go ahead and wrap close things down but for those of you who were attendees today I just want to let you know that we are recorded today so we'll be getting that out to you a little bit later and if you have further questions feel free to let the association know and we'll try to connect you with our speakers today so you can get those answered thanks again everybody and we will see you next time thank you everybody take care