 All right. I think we'll get started here. It's about five after I let folks keep trickling in but we don't want to run late So we can get to the Q&A session I'm gonna Walk and talk with the mic That's just my style. So thanks everyone for coming I'm really we're a Brian and I are both really excited to be here for folks just trickling in this is the 2014 State of the Union Address Session that we're about to start here. So Really quickly, I'll Just do myself and then Brian will introduce himself a little bit later when we we get to talking, but I am the as it says on the screen. I think or it doesn't Director of new media technologies at the White House. That basically means We oversee all the teams that do the development and operations of all the White House's online engagement platforms basically we build engagement tools and so We're gonna talk to you today about Basically a case study of us of a specific event the tools that we that we built the features we built for that specific event This would be the 2014 State of the Union Address and the role that That open source Technology and actually building for open source Regardless of whether or not you're going to to release the code why that's important and how the the principles of that got us the ability to to build some really fantastic features Really quickly with a high degree of reliability on a very very critical day I'm gonna start pretty much what we'll say is I talk about the why and then I'll hand off to Brian And he's gonna talk about the how so I'm gonna open by talking to you today a little bit about the strategy that went into the the features we focused on for this year's event and How that played out and why why some of those strategies were so important to us and why it was critical that we we implement them for us so our strategy for this year's event distilled down to basically three principles and I'm gonna talk primarily about the first two and Brian's gonna hit on Those two plus the third one But our biggest priority for this year was to focus on an epic mobile experience to have a fantastic fantastic mobile experience for anyone who wanted to engage about the 2014 State of the Union through White House that gov or if you were watching the stream through one of our partners And so with that in mind it was very important to us we knew kind of off the bat that responsive design was going to play a major role in that and I'll talk a little bit more about why that was because it wasn't just about sort of we're building something new We should use the latest, you know the latest cutting-edge technology in in website design. There's actually real You know strategic reasons behind it and then the other part that I'm gonna be talking about today is a social engagement that Like I said, what we do as as part of the new media technologies team is that we collaborate with the digital strategies team Which is basically the content team to To essentially figure out what are the new features to come up with the features that will continually Improve and increase and broaden the president's and the administration's level of engagement With with people who want to interact with us online and that's not just citizens That's that's people all over the world And so part of that also was adding features that could really accelerate the social engagement part Of the speech because we know, you know as as many of you I'm sure on Twitter and Facebook, etc That big events like this, you know lead to like very big very strong Conversations online and we wanted to make that experience better improve it make it easier To talk about it and make it easier to engage us in that conversation as well. Oh And the other thing we had eight weeks to do it I'll talk a little bit really quickly about why that is that we essentially I'm sure this is an experience That's when I tell this like people Come to me a lot and they're like yeah Can you talk more about the experience of how you deal with these tight timelines and because it seems like it's a pretty common experience that? You know we're essentially especially at an event-driven space that we work in a political space We're sort of essentially always having these you know We're rolling from one critical thing to another and so although we know the state of the union is coming We know kind of when it is the work of the White House and the work of you know You know engaging with the president's message online You know doesn't stop we can't just hit the pause button on all the other things and so we'll have other initiatives happening like you know Whether it's the environment or whether it's You know whether it's whether it's increasing the minimum wage all of these things that we work on We can't stop work on those features those projects to get started even though as much as we want to And that's the environment that we work in and so Brian's gonna be talking a lot today about the The methods that we've adopted to essentially stick to our core principles and continue to develop Open source and the advantages that we get from that So I want to talk really quickly about why this mobile strategy was so important for for our approach to this year's event and This next graph Probably many of you are seeing something similar probably looks completely different But the data that you're seeing mirrors this at your own your own organizations on your own sites And what we're seeing here is basically the the redoubt that the decline of desktop viewership on Whitehouse.gov the the visitors on Whitehouse.gov, you know four years ago Almost everyone was coming on a desktop browser And as you see sort of 2010 or so that that light blue bar starts this that wedge starts creeping in There's our our mobile presence growing and it's now a quick straight linear growth You know 2011 iPad launches and we start seeing that gray bar at top where we start to see the tablets rolling in So now we're at you know nearly a third of our visitors You know week in week out are are on some kind of mobile device and so in and of itself That's a compelling reason and we're all kind of having this conversation I'm sure many of the folks in the room are about why it's important to do this because it's like here's a An unambiguous situation where our audience is telling us how they want to interact with us and so just on that part It's interesting. It's compelling. Sure. We should do it because people are telling us they want to do it but there's more to it than that and it's a much more Important thing to you know it to me in particular, but I think to other folks especially in the in the public sector space because You know what we know Pew has done a bunch of research and many others What the big trend we're seeing growth of is people using their mobile devices as their primary internet access And so Pew's study last year came out and said 34% of people who own a mobile phone Use it as their primary way of accessing the internet not desktops not laptops But through their mobile device and so that's again people are doing that that mirrors the number that I showed you in the previous slide But when we actually look at it from a demographic perspective that a new story emerges, right? when we look at the rates of people who use a Mobile device for their primary way of accessing the internet, you know, and we look at people of color We look at young people people of low income. We see that number goes high as 60% way above the national average Way above at the national average and in particular when we look at the most of these these these groups Remember, this is the president's message to the country. This is the this is a conversation You know, it's a message to Congress. It's a met. It's the president Basically stating his agenda for the year and it's not just a speech to people who have cable TV cable networks Broadband and desktop computers. It's to everyone and so when we look at these demographics In fact, you know, this is about creating a fully featured experience in particular for those citizens who are oftenly served by Technology and that's where the compelling aspect Like of the mobile strategy comes in it's way more than just our audience is saying they want it It's that there are people who stand to benefit the most and it's important to us And I contend to everyone in this room to really address those constituencies So what we did was here's a look at the 2013 page. This is what we were sort of the baseline that we were starting from It's not responsive and Sort of the core features the player up front now I need to stop for a second here what you're seeing on the right hand side of the screen there We since 2011 we've been producing what we call an enhanced live stream So what's different about when you come and watch the live stream on Whitehouse.gov or on one of our partner channels You're seeing additional content more than just the president talking but a series of Supporting graphics supporting content that goes with this really quickly actually how many people watch the State of the Union this year Go ahead raise your hand. We won't judge you. Well, I won't judge you if you don't raise your hand Okay, how many people watched it online? Excellent fantastic probably about not quite a third of the room. Okay. How many people watched on TV? Great, okay. I'm gonna be talking to you guys again in a minute. So remember that you raised your hand so all those folks watching online what you got was this experience where you saw the The graphs like scrolling by now that I need to stop and say our eight week achievement was really exciting For us from for you know for software developers for software engineering, but we also have a team of designers who I Have to call out to whenever I get an opportunity. It's really got nothing to do with Drupal. It's got nothing to do with open source It's just a really amazing accomplishment. There's this team of four designers They get a draft of the speech about four days before the president delivers it it's the first time they get to see a draft of it and they have to start working on these Supporting graphics the supporting images in that span of time. We produce around 120 of these We only end up using about a third of those because the speech changes so much Over the days and in fact even changes as he's delivering it So we have the the transcript as prepared, but he deviates from it And so if we have you know a graphic that goes with a particular sentence and he chooses not to use that sentence We can't use that graphic so they produce about 120 of these graphics that have to be Fact-checked they have to be spell-checked proof read We have to make sure we have the rights to use any of the images that are in it and on top of all that It also has to meet with the design standards of you know, what is expected from the White House brand And so it's I really it's it's amazing to watch this thing happen This is a group of people who basically kiss their families goodbye on a Wednesday and say I'll see you next week And that's the end of it never leave It's really amazing and so we really Put a lot of effort into this enhanced speech, but the way we implement it Those graphics that you're seeing are embedded into the stream itself Which is really helpful for sharing the stream with our partner Networks so if you're watching on YouTube or Hulu or something like that you can see these supporting graphics But what the downside is is that you can't interact With this or you can't easily interact with it, right? So if you see this graphic and you say want to share it with your friends on Twitter or Facebook You got to be really quick with your fingers grab a screenshot and then tweet it out So in addition to sort of putting a lot of burden on you to do that It also means that we get left out of the conversation the the the cohesion that exists in social networking We're essentially losing that piece of the conversation and it's actually not just a detriment to to us from an engagement perspective But it's actually the larger conversation loses out on those interactions because we're not speaking from a common framework So this is what the page looked like this year Now I'll point out there's a it looks very similar, but it's a responsive player and all the functionality is much more responsible The player scales down and now what you see below it is this section here And you see the content that slide now is replicated only now you've got a tweet that goes with it and A graphic that goes with it and that graphic scales I didn't silly of me get a screenshot of it while it was happening But if you look at this on a mobile phone You know the image is smaller and the tweet button is below it and the text kind of slides in underneath it So you can imagine What's that what that's like and now boom? There's a button for you to hit and you don't have to be quick And you don't have to know the key sequence for getting a screenshot and you get to tweet and it's it's it's with our Twit pick and it's like this is now many people tweeting the same image in the same way and getting to share a conversation Now Really quickly raise your hands again if you were watching on TV Cool now of those folks keep your hands up how many folks With your hands up now also had your tablet in your lap or your phone out and you were you were tweeting along with us About three four people did that okay? That's given the numbers we have here I'd say that third that we said that engage with us online Initially now we've raised that to let's call it 20, you know 39 percent not quite 40 percent And so we had something for you too So if you look actually in the just above the president's head there There's a little another tab there that says hey, are you watching on TV? This is called the second screen experience for those who haven't already heard the term But it's this idea that like you don't have to watch our live stream There's a high probability if you're watching on TV especially for events especially for political junkies and people who are you know really Everyone you know who's watching on TV whether it's the state of the Union whether it's the Super Bowl whether it's you know Ice skating on the Olympics people are engaging about the content and we say we want to be a part of that conversation too So now we've created another tab again fully responsive image scales text shifts around But you don't need to be watching TV we close down the player So you're not you know burning bandwidth on something you don't need an upfront and first is the ability to tweet Images so you're hearing the president talk, you know about the ps plus one negotiate p5 plus one negotiations with Iran and In your phone or your tablet pops up a graphic about it that you may or may not want to be with your friends and so The tremendous, you know focus that we put on this mobile and social strategy Like we really believe it played some massive massive dividends for us and so first thing Biggest state of the Union we've ever had our live stream viewership went up nearly 40% this year And like as a footnote to this all the television networks were reporting that viewership was down overall and The story that's told is that its people aren't watching But in fact we have the data show that they're just not watching on TV Now like us and other partners saw a huge inrush this year of people just saying I want to watch this I want to consume this online huge success with that like I said busiest most state of the Union traffic We've ever gotten since we've been doing this and that's since 2009 As a live stream and those features that we built for for social engagement 90,000 tweets and 70,000 shares on Facebook of our of our content so huge huge Effectiveness of those tools that we built For folks who are wondering The most tweeted slide the most sweeted content from that can hence live stream was this one here It's about the lifetime cost lifetime impact of the wage gap lifetime income gap for women and This is obviously a compelling slide here. It's a topic that we all know to be very important to the president But what we also have from this and from having this online engagement strategy. We have unambiguous data-backed Information on like what topic resonated the most highly with the people who were Engaging with us online about the speech and we can bring that to all manner of audiences and so that's You know, that's a big part. That was our strategy That was the achievements that we focused on that's why we did what we wanted to do and so With that I'm gonna hand off to Brian here and he's gonna actually talk about the the how we how we did it all This is Thanks I'm Brian Hirsch I lead Lee's web team and Before we I actually dive into the the way way behind the scenes part of this talk I'm curious to know who we have in the room here with us. Can I just see a show of hands? How many folks here are developers? Okay a lot. How many people here are project managers program managers Product owners. Okay. How many people here are either government employees or government contractors? Okay a lot Great. Okay. Well, thank you again for for coming So today five years after President Obama issued his open government directive more agencies conduct business online and more electronic data is available than ever before and a huge amount of that stuff is powered with open-source technology and that's great But there's more work to do to make this stuff Reusable so, you know, the ideal scenario would be that as we're investing in these solutions We we can reuse a proven solution over and over again at the federal state and local level at a fraction of the initial cost and so What I'm gonna be talking with you guys about here is Specifically the technical victories behind the scenes that we had during the State of the Union in achieving reuse so We had a big we had a big success with content administrators feeling personally the benefits of building reusable tools with the long-page tool that we used to build the State of the Union so to page we had an Opportunity to reuse a scalable queuing back-end that we had built for a totally different applications We reuse that in the White House.gov so to page and all of that work is released on Drupal.org and reusable by others and then we also With the tweet server distro that we built to power the Twitter tool that Lee was just showing you all We had an opportunity to test and validate a new workflow that makes building and releasing reusable stuff a lot easier for us and And then we also packaged up that workflow and some Drush extensions that are now open-source projects as well So first I'll talk about long-page Drupal gives us lots of tools to make things reusable, right? We have Designs can be made reusable as themes Features can can be made reusable as modules or whole web applications can be made reusable as Drupal distributions But making things reusable Isn't just about saying to our developers Can you please make us modules themes and Drupal distributions and in applications like White House.gov? non-technical stakeholders and content administrators have a critical role to play in building for reuse and I think that the Long-page feature is a great example of how this sort of thing Should go we had multiple different Departments each investing in different pieces of new functionality and everyone got out of this tool more than their department put into it So first the Office of Digital Strategy built this preventing gun violence page in the wake of the Sandy Hook shootings and Like a number of our legacy pages this was done as a code-in-the-node one-off Code-in-the-node is what we call pages that are built by storing HTML CSS and Javascript Alongside content and saving it into the database So one of the downsides of the code-in-the-node approach to building pages is that this stuff isn't reusable So we enlist a front-end developer to work on a page like this and then after you know The event or the campaign or whatever passes the work that went into this page can't be reused after that so next the Office of National Drug Control Policy ONDCP came to us. I think a year before this big report launch that they were getting prepared for and Coming to us with that much lead time. We had an opportunity to actually build them a tool Not just a page and so we knew that they really liked this Preventing gun violence page that the Office of Digital Strategy had made so we said why don't we treat this like a proof of concept? Like a static HTML mock-up of the kind of thing that we want to use for your report launch But what we'll do is we'll set up some content types and we'll build you some administrative tools so that your staff Content administrators and non-technical people can build pages like this all by themselves without a front-end developer. So Here's the drug policy reform page that they put together with our new long-page tool in contrast to the preventing gun violence page It was built by ONDCP program staff And now anybody who can create content on whitehouse.gov can make pages like this without knowing any HTML CSS or JavaScript and And I Not sure Well, so another benefit of that I can't remember if I was supposed to say it in the last slide or next Administrators can change this stuff on the fly whenever they need to it's really easy to make last-minute changes And all of that can be done without any any code changes without any hot fixes. It's safe. It's stable. It's easy So as people throughout last year have been reusing this tool for all kinds of things we never imagined like this foreign policy page We've added new navigation options We've had new we've added new content sections like this highlight section in this latest new section new styles Other new sections that we've built to go along with the new styling on the consumer hub tools page So all of this stuff is now part of our long-page toolbox and you know reusable with our new our new long pages And so by the time the State of the Union rolled around We this we had a lot of infrastructure in place this was going to be another long page and It would have some new styling and some new tools But you know we already showed what it looked like so I won't go back through that again, but the point is that Reusable tools like this don't happen overnight. They take several iterations. They evolve over time They require a tight feedback loop between content creators and developers and even though this page looked and felt new it was running on stable field tested infrastructure and it was all possible because One department had it available to them from another department investing in reuse So the long page is a great example of what reusability what building for reuse looks like Internally inside a single application from the perspective of non-technical stakeholders, but there's more to this right We don't just want to make things that are reusable Inside one website. We want to make stuff that we can reuse across different web applications so the AWS SQS module is a great example of Realizing that vision For the for the back end of the State of the Union so The State of the Union is the White House's largest Predictable high-traffic event that we have each year So tons of people tune in online to view the online broadcast and that's a great opportunity to Give people a chance to sign up for our email newsletter, for example But there's a catch with this if we put a form like this on the slash so-to page That is submitting data that submitting form submissions directly to Drupal's my sequel database We open ourselves up to the possibility that we could receive more submissions than we can handle at once so When everything gets funneled into a single my sequel database at some point the pipe just gets clogged right so This could be because of a malicious Distributed denial of service attack, but this could also be because there's just an overwhelming volume of legitimate Submission the submissions coming in and we're effectively D dosing ourselves at that point And obviously we don't want to take our own site down in the middle of one of our biggest events so So our CDN We offload a huge amount of effectively all of our read traffic to our CDN our content delivery network Akamai during the State of the Union, but but something that we can't offload to our CDN is Rights or form submissions so to solve that problem when we have huge spikes and form submissions We need to be able to bring up as many You know servers as we need to handle the influx in traffic so you can see lots of servers coming up as traffic is increasing and then we need to be able to route those submissions to a Scalable queuing back end so this cloud represents our our queuing system in in the cloud that is scaling as as Submissions go up and then on a separate process You see another server in the background here that is dipping into the queue and then pulling things out of the queue to Process and send to my sequel at a rate that we control that we know is not going to put our infrastructure at risk so It just so happens that we solve this exact same problem last summer for petitions dot White House dot gov Are we the people? Petitions application so that's an application that has huge unpredictable spikes in traffic and We're building this new Right API that lets people build third-party Applications against the we the people tool which by the way is in beta right now if anyone's interested in developing With the the we the people API talk to me about it afterwards. I'll get you a key But so to solve that problem for petitions dot White House dot gov We worked with nick venehoff on Drupal org To build on top of his proof of concept AWS SQS module We rewrote it using Amazon's latest ph psdk to swap out Drupal's default my sequel based queue backend for Amazon simple queue service, so that's what the AWS SQS module does and so with that Infrastructure already available to us all we had to do for the State of the Union was stand up a really simple new Drupal 7 site and Snap the AWS SQS module into it and put a little form in front that we could iframe into White House dot gov on the slash so to page and That way when form submissions were coming in we were able to send those to our scalable queuing back end Not directly to our my sequel database, you know and handle the influx informed submissions So and all of that stuff is available on Drupal dot org So any other government agency or any other Drupal user that wants an easy way to scale writes You know it's available for you there. So that's that's what we think reuse looks like So now we've got administrators who are excited about reusable tools Rather than building one-off pages We've got Lee and other Department directors who are seeing a great return on their investment when we're investing in reusable tools On the back end of our infrastructure So how practical is it though really to make everything reusable to open source everything we build how many people here? I'm curious to know just by show of hands again have either Decided not to to open have either found that open sourcing something took extra time or cost or you decided not to open Source something you were working on because someone told you it was going to take more time or cost extra money anyone Okay, so that's no good, right? Open sourcing our work should be simple should be easy. This is what it should look like Hey Brian remember that thing we built that time for that other thing. Yeah, we should totally open source that oh Lee That's such a great idea. We totally should so then I should be able to do this Here you see me inside of the tweet server code base You'll recognize this probably is a Drupal doc root And so these are the contrived modules inside the code base that we built and so here I'm typing drush subtree push Twitter API to push changes from the Twitter API module out of the tweet server site repo up to Drupal org it says complete That look easy Come on someone not that looked easy, right? Okay, that's the world that I live in now in the executive office of the president and This year's State of the Union gave us a rare opportunity to build a whole new Drupal distribution from scratch Starting with a bunch of new policies and workflows that we put in place and the workflow that you just saw is the product of that new workflow and So I'm going to give a quick overview of how the tweet server distro Fit into the State of the Union so you understand how the pieces fit together and then I'm going to talk about how The tweet server Is the sort of next evolution of lessons that we learned since our first major open-source project our first Drupal distribution? Petitions, you know, we've learned a number of things and changed a lot of our workflow Okay, so Lee showed earlier some screenshots of how the tweet that the Twitter features worked So during the State of the Union as the president speaking there are some people tweeting from at White House on Twitter Live tweeting either quotes from the president's speech or sometimes quotes that go along with some of these graphics from the enhanced broadcast So we're monitoring that Twitter feed We're looking just for tweets that have tweet pics Associated with them because we're powering a slideshow, right? We don't want to send up the things that don't have graphics and then we're sending those up to the online broadcast and The site is then able to parse and repackage that information So it looks like a slideshow and it's clickable and shareable to people social networks. So under the hood. Here's how that all worked so we built a lightweight Drupal 7 tweet server distro and tweet server's job is to use Twitter's rest API to Watch the White House users account and watch for new tweets and as news tweets are coming in We're slurping those in via the rest API and then we're applying our own custom filter to see if it has a tweet pick Associated with it and then if it does we write that to a static JSON file that we then push up to our content delivery network Akamai net storage where client-side JavaScript is pulling to check for new tweets as they come available and then displaying them in this rotating slideshow on people screens so As an aside if we'd if we'd had more time we might have done this with the Twitter streaming API But this was perfect perfectly fine for our needs and our our time our time constraints and Really did did the job for us. So that's why we picked this this approach I think happily for folks in the Drupal community who might be interested in reusing this all of this can be stood up Very simply on any any infrastructure that's already hosting your Drupal website And if you don't have a CDN in front of your site I think with varnish in front you could probably handle a pretty good volume of traffic with this sort of thing So we built a tweet server in two weeks we open sourced the whole thing in a month and That includes the tweet server distro the Twitter API module and the net storage module So there there are ten things that we did differently for the tweet server project in contrast to our first open-source distro petitions and No single one of these things is revolutionary by itself, but taken together it adds up to a really different a Really different experience in building and releasing this stuff So I'm gonna just run us through those ten lessons learned here lesson one code code comments and Commit messages all are written to Drupal dot org standards now. So petitions was developed in private It was running it was actually powering an application For about a year before we released it to the United Nations and members of the open-source community And so by the time we released You know, there were thousands of lines of code and so many different people who worked on it There was no single person who could say with confidence We want to actually release every bit of you know stuff that's in here So we had to do this site audit and when we're doing this site audit We're not just auditing for security issues We're you know, what if someone had made a snarky comment in a in a git commit message? So, you know one day get commit messages are so esoteric that nobody even knows that Hardly any other people in the White House even know these things exist the next day this stuff is on github this could be shared on Twitter or Facebook and You know that's potentially scary to a lot of people So after petitions we formalized as part of our code review process that we code review not just code But also code comments and commit messages and all that stuff gets held to Drupal dot org standards If it doesn't meet those standards it gets you know kicked back to development before it passes QA Lesson number two release early and often there are a lot of good reasons for this But one of those reasons is that when it's time to release when Lisa says hey Brian, we should release this thing Did it all meet our standards? Is it okay to release this stuff? Someone in the room can say yeah, I was there. It's all it's all releaseable It's all ready to go. And so just an example here's here's some statistics from git that show you The number of changes in the site repository It excuse me in the code base between the first commit and the commit where we actually decided to open source the project so in petitions 633 files were changed three 35,289 lines of code were written or changed in the tweet server project we Wrote 17 files and 919 lines of code before releasing this project. So measured by lines of code We did about 3% less than 3% as much work on tweet server You know when it was time to release before the first release Lesson three code reviews via poll requests the way that we do code reviews has changed Before we left it up to developers to basically decide when something had been sufficiently code reviewed and was ready to release And that that process was error-prone even in the best of scenarios It was really easy for there to be a miscommunication where someone thinks something's been code reviewed Well, maybe it hasn't or you know some sometimes it could happen that someone accidentally clobber someone else's work without knowing it so now the way that we Do this it is like this all of our code lives on github the White House has its own github account and Anytime someone wants to work on something The White House has its own Repository its own project on github for each different site code base that we maintain or work on so here you're seeing D7 multi is that the tweet server code base? And so if a developer wants to work on the tweet server code base They have to fork that Repo so they make a copy of that project over to their own user account on github so here you can see Mariano forking a project To the right you see the Mariano Osleborn account on github D7 multi that's his copy of the project when he's doing work on it He's saving his changes to the Mariano Osleborn copy of D7 multi And when he wants to get those changes included back in the White House's Code base to get pushed out to production. He sends a pull request to the White House which Displays all of the changes that will be made if the White House accepts the changes that Mariano has submitted and All all work that comes in like this gets peer reviewed by someone other than the author of the pull request And so here you can actually see a code review or I'm commenting on a pull request that Mariano submitted a week before the State of the Union and This surface this workflow surfaces all of the specific changes, so it's impossible to for us to have one of these scenarios where Something slips in without getting reviewed or someone accidentally clobber someone else's work because it's all Surfaced and and right in front of you there. This also makes it really easy to make very specific Comments on people's work, which is great for giving feedback and code reviews So since we've switched to this github pull request workflow the number of regressions number of situations where a fixed bug You know gets unfixed accidentally has basically dropped to zero on our projects So now we do pull requests Lesson number four project names So here's another thing that's trivial to do if you do it as you go and it saves a huge number of headaches down the Line so a number of people in our community are in the habit of Naming custom modules with this pattern my company underscore my module or my agency underscore my module so that may seem innocuous or trivial, but It's a major obstacle to maintainability down the road. So In our White House code base someone at some point. I'm sure for a reason that made sense at the time And named one of the modules in our petitions code base wh underscore something Excuse me and So then after that our developers just started following that pattern anytime someone created a new custom project a theme or a module It would get named wh underscore my module and so as as time passed You know No one follows that pattern on no one follows that pattern on Drupal org And so I think people reasonably assumed the stuff isn't destined for Drupal org. It's internal stuff and if it's internal stuff Why not write you why not put White House specific things into those modules? And so over time we we accumulated this pile of modules that are all prefixed wh underscore something and they've all got mixed up in them White House specific logic or White House specific configuration that is co-mingled with generic website functionality And so to open source any of that stuff on Drupal org or to share it with another agency You know someone would have to go through the time-consuming and laborious process of like picking apart the generic and White House specific stuff and putting it in their own projects renaming Every file and every function in any given project that's named wh underscore so Rather than let the perfect be the enemy of the good We just drew a line in the sand about two years ago And we said from now on we write everything as if it's going to get contributed and actually this year Lee has told us The new default is that all of the code we write gets gets open sourced unless there's a good reason not to So that means it goes in a module that's not named wh underscore something and we only put something in a wh underscore something module if it's absolutely White House specific and this force is a really helpful Architectural conversation during code reviews. So if someone adds a new module or a new theme to the code base and it's prefix wh underscore the code reviewer inevitably says is this really White House specific does this really need to be White House specific and in the overwhelming majority of Situations it turns out that whatever seemed White House specific is really something that should just be made Configurable by administrators and so, you know, that's that's a releaseable That's not a wh project and in the you know Once in a blue moon when we do have something that's White House specific We separate the generic functionality from the White House specific stuff And we put the White House config or the White House form alters or custom theming into a wh module Lesson number five require readme's when adding new projects to the code base for time I'm gonna not say any more about this it says a lot of headaches right readme's Lesson number six so lesson six through ten are pretty geeky So I'm gonna just give a quick sound bite on each of these and if there are developers who want to dig Deeper into any of these details. I'd be happy to do that during Q&A So lesson six make installation profiles They're testable and they make local development so much easier and that really improves velocity in development Lesson number seven manage patches with Drush make Otherwise, it's a very fast downward spiral into maintaining forked contributed projects. Oh, shoot. Thank you pleasant seven Drush make Otherwise, there's a downward spiral into maintaining for projects. Thank you Lesson eight subtrees are the answer to for us subtrees are the answer to Maintaining contrib projects outside of our site repository when we're doing work inside of set repositories Related lesson number nine don't nest contrib projects inside other contrib projects that's a really popular pattern for installation profiles and Whether like us you're using get subtree or you're using sub modules or a subtree merge strategy This is the this is we have found is the secret to frictionless project maintenance And rights. Thank you And we've got a boss coming up tomorrow about build manager and Drush subtree if people are interested in that workflow In lesson 10 automate builds if it's just as easy to release or if in the same step We're pushing to our Drupal dot org repos as at the same time as we're pushing to our production site You know gets us eating our own dog food and it just means we're releasing early and often internally and externally and that's helpful so With that before I before we do Q&A here. I just want to ask if we have any Core contributors in the room It's good. We just see your hands or any members of past or present of the White House dev team Or anyone who's contributed to a contrib project that you know, you know that we use in the White House code base So I just want to say thank you to you guys, you know, we're standing on the shoulders of giants In all of the projects that we're working on You know none of this obviously would be possible without the the great work that has gone into the things We're building on top of and we really greatly appreciate it. So thank you. So with that Here's how you can find us on Drupal dot org on github Developer info on White House gov and a list of our projects on Drupal dot org And if anyone is interested in Reusing any of our stuff or working with us to make our stuff reusable for you We would really like to help people, you know use this stuff So I'll be sprinting on that Friday if anyone is interested to join me So with that should we do questions? Just make sure you make sure you come to the mic for a question because we're being recorded Hello I'm like a huge fan of the White House gov. We're redesigning our website. I was in the government sync up with you guys yesterday But can you talk a little bit about the user experience on the site because it's a massive amount of information That's on the site, but somehow it's just elegant and seamless and can you just talk a little bit about that process of how you got there? I mean it To be honest, it's a it's a it's it's been an evolution over time. It wasn't always that way We have some really fantastic designers who are very forward-thinking people and I Would like to say there's a formal process by which we do sort of user You know user experience evaluation and testing but we do what we do like a lot with like Google experiments and things like that So we do we do test that functionality, but in terms of an overall In terms of like an overall information architecture or content architecture That's basically a work in progress. I would say and we're sort of Re-evaluating even now as we look towards sort of rolling out more responsive parts of the site more more excuse me more responsive design on to the site So not a great answer to a question I grant but I would like I would like to say that there's an easy way to sort of just take An overview. There's a good session yesterday on like Domain architecture in terms of like shaping, you know Auditing and analyzing and categorizing your sort of your content and how to come up with a strategy to Structure it. It was really fascinating. I don't remember who gave it, but you should look for that one It was called deliverables for content design What's that? They were wearing giant blue foam hats Okay, can you say Sam Boyer and I want to say to the mics everyone here's snug Okay, but yeah, definitely go check out their their talk when it's online Yeah, please good. Hey guys, thanks again for the presentation. I really appreciated it Just looking at the contrived modules. I didn't see Anything mentioned about the long-page functionality. Could you elaborate a little bit more about how you implemented that was that? panels and custom panel panes or What was your strategy for that? Good question. I skipped that So long page is actually another great example of you know, we haven't open sourced that work Because there are entanglements with some legacy WH Modules, so yeah, you know, it solves a similar problem as panels We don't use panels anywhere else in this particular site and Panels is you know, really an excellent, you know, Drupal site builder tool Not always a perfect fit for, you know people who are just content administrators So long pages are sort of simplified approach to that So the goal is then to eventually get that as a contra module then after it's untangled from all the legacy stuff We've definitely talked about it. We'd love to do it. It takes a lot of time to go back and refactor the legacy stuff and There are a lot of people who'd love to do it myself included we'll see where it goes Okay, thank you. I have a question about security so usually when you reveal Anything about the way something is built, right? You give a malicious Person all kinds of attack vectors And so if you have someone who let's say who knows Drupal and can go through this Code what kind of steps do you have to take so that you can share? Okay, but also protect yourself from you know malicious attacks Yeah, so that there's a lot in that question I grant it's something we talk about a lot and I get a lot of questions about how we get to this place where we can open source so much stuff The place I start with and when I talk to you know Security engineers a lot with and this is a phrase. I've actually only recently kind of come to for the first time but if like you know if if When your code base is essentially like When your security posture like depends on like knowing no one knowing what your code says like Someone can essentially like undo that security by like, you know cut and paste and email If like someone on the inside could cut and paste your code if you just if you just I we've always worked from a place that I assume that my code is is Like that someone has it and that's a much that's a much I think safer posture to start from from a security perspective From stuff to talk about come to the legacy stuff that that we did when we did want to first get the petitions platform out into the Into the open-source space. We definitely had a very We actually brought in some outside vendors to do a pretty thorough security audit of that code base And then the points that Brian so when we bring in the same thing when we bring in Any contrived module that we use like we have an internal team who subjects that to a series of security Won't go too much into the detail But we do security audits of the contrived modules that we use for the stuff that we build the Tactics that Brian was talking about a lot about actually sort of getting to this place where where commits are You know three files 20 lines things like that, you know day in and day out It becomes a much as we we sort of have this baseline that we've established from that big security audit, you know that that You know everything we're sort of building from we have a sense that that is as secure as we think we can make it and then We're building upwards from there And that's the Brian's point about like a massive drop-in regressions meaning that that if we're not sort of Undoing stuff. We've already done or blowing away stuff. We've already done We're just odd we're essentially standing on level footing and walking our way up the ladder So we only have to audit the new stuff that is part of our QA procedures But we were doing it in a way now, which we're doing it in much smaller chunks And there's a actual sort of audit trail of like who's who's reviewed it, you know Like checks in place to make sure that like Brian's not reviewing his own code, etc You dress this a bit with the long with the long page and but the White House has a lot of different Page looks and and as you said a lot of them are code in code in node What is their attention between the designers and the developers of trying to stay of developers trying to move toward a more Standardized form whereas develop I mean designers trying to be have that creativity of not having to be constrained to a node How often do you use do you make a new template type how I mean a new content type? Like what is the relationship there between all the different types of content on White House? I Yeah, I think there there is a tension there it's actually not It's not been my experience that it's been a great like tension of like the Designers wanting to have a kind of flexibility to do like more new things It actually tends to be more of like a like a time-driven like we need to do something really fast and our engineers I heard a great There's a great talk yesterday that like like designers should code like the way that painters mix paint like with that level of frequency And so we have really talented designers who can also code in a lot of cases. That's just it's just plain faster for them You know, I'm just gonna put this into a node and do it And so that's that's where more of that like code in the node type stuff comes from yeah But we're working I mean we're definitely focused on kind of getting away and giving them the tools Like Brian says so that we don't need to do that anymore and still can deliver the the design features that they're looking for Hi great to hear I'm just interested in in all your use of github and the sharing of the code Are you seeing other federal agencies pick up and use these things? Are there any any kind of related success stories from federal agencies? Yeah, absolutely. I mean Brian wants to talk about this too. I know so I'll rest there quickly actually about it two years ago now Consumer Financial Protection Bureau like publish an open source policy. They're putting their stuff on github. There's other I mean you probably even read in Person sitting behind you is also runs a group of for gov organization Yeah, I think if you check out the open data policy website, which I want to say is open data policy dot github.io On There's a link to a list of all the federal government agencies that have github accounts. They're a number of them now a growing number We have government organizations as customers and they're keen to use Drupal Did you go through the certificate of net worthiness? procedure or And is that something that we could? What was I there was a word you said that I couldn't certificate of net worthiness Yeah, so yeah, sorry. Yeah, we call it a cna. Yeah, absolutely. We go through a Accreditation certification accreditation. We did absolutely go and we have a we have internal teams who that's what they do And it's the same team like I said they do that We actually do that for each module for each contrived module that we we use absolutely I think we've got folks arriving for the next session. So we've got two more minutes Folks have more questions. We've got two more minutes and I plan on using them All right, then thanks everybody appreciate it. Thank you You