SensioLabs UK - Lessons and chances from Drupal 8 early adoption
Part 2 of 2 - I spoke with Richard Miller and Tom Kitchin, software engineers at SensioLabs UK and its parent company Inviqa respectively, via a Google Hangout on Air recently. Here, I learn the inside story on one of the first Drupal 8 sites online, www.sensiolabs.co.uk, what their goals were, how they built it and have kept it running since May 2013, and how Drupal 8 will change the way they design applications for clients going forward.
In part 1 I learned about PHP and Symfony from their perspective and how they think the Drupal 8 and Symfony2 are going to affect each other from technology and community perspectives.
Launching Drupal 8 in pre-pre-pre-alpha
When I asked if they were in their right minds launching their own corporate website on Drupal 8 in May 2013, with most major systems undergoing radical change on a daily basis, Tom replied, "Well, I'm not saying it wasn't interesting."
Richard adds, "We're crazy enough to do it on our own website, not on a customer website. The initial motivation, is that the previous version of the site was built with Silex," the Symfony-based micro framework, "and effectively the content was in static templates, so when our marketing people wanted to make changes they had to get developers to go in and change templates. That was the motivation for redoing it as a CMS." This is of course one of the all-time key motivators for moving to CMSs."The motivation for doing it as Drupal 8 was that we wanted to learn Drupal 8."
"We'd been talking about it at the time internally," continues Tom, "and there are a few of us who are more 'Drupally'. There is a small group of developers with more Drupal experience than the rest. We were taking an interest and someone said, 'We want to redo the SensioLabs[UK] site. Marketing comes back and says, 'we want redo the internal site so that we could actually change it without talking to the engineers every time.' I guess we just threw out this slightly mad idea: 'Hey! Maybe we can get some practice in!' And somehow they let us do that. I don't know why they let us do that, but there we go!"
Goals and expectations for early launch
The technical team sold the business side of the house on the idea. "The main pitch was basically, 'We will be the first people out there with serious Drupal 8 experience we can point to.' When you're selling it to marketing and you're selling it to management, that's actually a pretty big sell. Drupal 8 is becoming more important. There is a big interest in it. Being able to say we know how to do this ... with such confidence that our site runs it already was a big sell."
The risk was limited, explains Richard, "Whilst it is obviously not an internal project and it is our external website, it's a better chance to learn things the hard way than on our first customer projects."
Tom raises an important point, "You don't know how good your experience is until you throw it at something that people can see. There are problems that only come up when you try and do something live. It seemed like a test that (hopefully) wouldn't annoy anyone outside the company."
I wanted to know what they were expecting going in. "We expected to meet a lot of issues due to the early development stage. We expected to spend a lot of time fixing rather than enhancing." ... Richard adds, "Which was one of the motivating factors. Because we contribute as a company to the Symfony framework, it was an opportunity to become involved and contribute something towards Drupal at this stage as well. We have Symfony experience and we contributed back rather than just sitting back and waiting for everyone else to do it."
Test bed and contribution chance
"The first thing that happened when we went in and looked at it was that we'd like to use Twig as the templating engine," Tom is referring to the Twig templating system developed and supported by SensioLabs, "The plan was to bring that in, but at the time, it hadn't actually been pulled in as the engine in Drupal 8 yet. We didn't want to make a bunch of PHP templates and then later on have to pull them into Twig, so we started contributing. We put 40+ development hours into contribution to Twig. That's in Drupal 8 core. We made a lot of contributions. We got involved at that level, which we also wanted to do. We wanted to help out."
What have you learned?
Launching before the Drupal 8 core systems were anywhere close to being stable meant that the SensioLabs UK team had their work cut out for them. Keep in mind that Drupal 8 is in a very different place now, as of April 2014, than it was in May 2013 when they launched. Most internal systems and APIs are now finalized or close to being there.
I asked what the team had learned from launching on Drupal 8 so early and keeping it live for so long. Tom confirmed, "The core goal of learning more about Drupal 8, that definitely happened. We know all about how the underlying structure works, about how it interacts with Symfony components. Outside that, a good suggestion would be really, really don't [do what we did], unless you're feeling immensely confident ... running something that's not even out of the development process yet ... That's quite risky. It makes for fun times."
To reiterate, Tom advises, "Check how fast the thing you're using as your framework moves before you try and develop against it. It's good to know that."
"Development against a moving CMS is exercising with treadmills: You run like hell and you end up pretty much where you started, but maybe you're feeling better about it." :-)
But now *is* the time to try out Drupal 8 if you haven't yet, start upgrading your modules and themes, and getting ready for the new release!
Drupal 8 and business
Addressing how Drupal 8 will change how SensioLabsUK and Inviqa do business on a technical level, Richard explains, "From the application standpoint, Drupal 8 is now the choice for the CMS parts of an application." Symfony, Silex, and Drupal are all now compatible at a very fundamental level. "You can produce a response out of Drupal and have your Silex application make changes to it, or vice versa. Everyone's really excited about how they're going to interact, but the details of how you do that are still to emerge. It might depend from project to project. Sometimes you might have Drupal happily sat alongside a Symfony application and they look the same, but they don't do much with each other and other times, you can make use of Drupal's security permissions, ACLs, and things like this. You can make use of this across the other applications without it being quite the torturous process it would have been in the past. "