This week a group of us from Information Services are attending DrupalCon 2017 in Vienna and we are sharing our thoughts on the sessions we attend, recommending top sessions, and giving our key takeaways from our DrupalCon experience. Yesterday I posted our reactions to the first day of DrupalCon, and today we continue our DrupalCon reportage.
For two of our party, Tim Gray and Bruce Darby, this was a very exciting day as they were presenting a session on how we have used code sprints and collaborative development to build a community of users and developers around EdWeb. More on our first-time DrupalCon Speakers later!
Wednesday began with a thought-provoking Keynote by Monique J. Morrow on the subject of Building a Cyber Bill of Rights Community, and how in an age of increased tracking of personal data the Drupal community can contribute mechanisms to help people take back control of their identity and their privacy. There was a really interesting Q&A section at the end covering the question of developer responsibility for the ultimate use of a tool or piece of software, and the importance of considering your purpose and intention when building something. A great start to the day!
Thanks to Riky, Tim, Andrew, Adrian, Bruce and Billy for contributing their thoughts on sessions they attended; any errors, omissions or misinterpretations in their edited notes are entirely mine. All of the sessions mentioned below, along with many more interesting talks, are recorded and available on the Drupal Association YouTube channel.
Adrian’s Day
Adrian Richardson is a full-stack developer with experience in both Drupal and non-Drupal technologies. He is heavily involved in the development of EdWeb, our central CMS, and EdGEL, our evolving framework that supports front-end developers around the University.
Theme for today
Lots of interesting Symfony components, and more modern ways to develop and maintain a style guide with PatternLab.
Top sessions
The coolest Symfony Components you’ve never heard of
- A tour of some of Symfony components which are not normally used by Drupal but should be the preferred libraries when libraries are needed. There is a backward compatibility promise with these and a continuous upgrade path. Some of those covered include:
- symfony/debug – when developing, this gives detailed stack error traces and will also catch issues such those from case insensitive filenames;
- symfony/finder – allows globbing files, sorting, filtering by file size, etc., and works with any stream wrapper;
- symfony/var-dumper – provides the dump() function to view objects when debugging;
- symfony/console – provides CLI support for arguments, options, formatting output etc., including colour formatting of output done with HTML-style tags, progress bars and tables;
- symfony/filesystem – use this for file operations including mkdir, error handling/clean exceptions, recursive directory creation, deep file copying, etc., and combine with finder for actions like globbing filenames or chmod;
- symfony/process – provides handling for asynchronous processes with timeouts;
- symfony/lock – queue process locking with timeouts/lock release (being released in Symfony 3.4, within next couple of months);
- symfony/dotenv – can be used for password handling via the getenv() function where a dotenv file is configured to set environment variables & can be loaded via code (Drupal 8.5 will hopefully support accessing these variables in twig templates);
- symfony/expression-language – allows text expressions to be passed as though PHP language for eval(), and supports conditions being stored in YAML;
- symfony/workflow – handles states and transitions for objects.
Back to the future: no more static mockups
- An overview of how PatternLab can be used instead of applications like PhotoShop to produce design mock-ups in a way that represents responsive behaviour and scrolling, can show a range of real-world content and adhere to a structure that can actually be implemented in CSS. Designing directly in the browser using PatternLab2 and sending the client a URL allows you to get closer to the final product a lot quicker, and the client can see for themselves how it will look on phone, etc. Components can be designed from the smallest atom up to the full page and these designs then shared with the client, creating a living style guide from the start of the project. It’s easy to copy and paste twig templates from PatternLab to the Drupal theme so what ends up in Drupal is 1-1 match. What’s signed off in PatternLab will be pixel perfect in Drupal.
Key takeaways
- When we are looking at Workflow for our Drupal 8 EdWeb implementation, we will need to review our use of the Workbench modules in light of whether or not they are using Symfony’s workflow component as that would be the preferred mechanism to implement workflow in Drupal 8.
- To enable symfony/debug, enable it by adding the following to settings.php:
use Symfony\Component\Debug\Debug; Debug::enable();
- PatternLab could be a way for us to provide a dynamic style guide for EdGEL to support designers, UX consultants and developers, something that we have recently been exploring.
Andrew’s Day
Andrew Hobden is a support engineer who works with some of the University’s key systems, including EdWeb.
Theme for today
There was a strong theme of automation, testing and safety running through today’s sessions. But there was also a disappointing concentration on detail.
Top sessions
Automatic Drupal Updates using visual regression & continuous integration
- The main idea in this session was that if, after applying security updates, the site has not changed, as measured by one of many visual regression tools, it will be safe to deploy the update automatically. The idea was to automate as much as possible, safely.
Anatomy of a DDos attack
- In this session Suzanne Aldrich of Cloudflare described the various attack vectors of a DDos attack and how Cloudflare mitigates them all.
Automate your automation
- This session discussed how to take automation to the next level. The advantages are obvious but sometimes it seems we don’t have the time. This session shows that rather than looking at the entire problem perhaps parts of it can be tackled and then, over time, the whole process can be automated.
Key takeaways
- Today, a lot of time was spent on examining the small detail of command-line code rather than on the larger picture. Perhaps this points to a deficiency in Drupal 8 documentation or perhaps it is down to the current point in the lifecycle.
Billy’s Day
Billy Wardrop is a developer who also provides technical support for the University’s central website and CMS.
Theme for today
The theme for me today was hearing from other people how much work is really involved in getting contrib modules ready for Drupal 8. It was good to sit with developers and discuss the Group contrib module. I found it fascinating listening to the journey the maintainer has been on developing this module and hearing about the challenges has ahead to get this module to release 8.x-1.0. It made me realise how much time people do give up to contribute to the Drupal platform. It inspired me to want to help and I’m looking forward to the code sprint on Friday.
Top sessions
Twig recipes – Making Drupal 8 render the markup you want
- Great overview of Twig and how much more efficient theming is in Drupal 8. Great to see some examples that I can look at when I get back.
CSS-in-JS: unexpected lessons for Drupal component design
- This was a great presentation about lessons learned from building components in Drupal 7. It compared how CSS and JS was done the “old” Drupal 7 way and went through examples of how to do it the new Drupal 8 way.
Key takeaways
- The community needs lots more developers contributing.
- I was very impressed with composy.io and how easy it is to build a Drupal website. You can select the core and module versions you want then download the package to your PC ready to install making it a massive time saver!
Bruce’s Day
Bruce Darby is the product owner for the University’s central CMS.
Today, Bruce was presenting a session at DrupalCon with Tim:
Theme for today
Lots of DrupalCon attendees smoke! Being incredibly nervous for my presentation almost drove me to crash a ciggie!
Top sessions
Core Accessibility: How are we doing and what can we do better?
- This session looked at how Drupal 8 core supports accessibility and how this can be done better.
Key takeaways
- Web Content Accessibility Guidelines is in the process of moving towards an update, moving from version 2.0 to 2.1. There will be more about assistive technology, especially the use of speech, and the addition of 20 new success criteria covering things like target size for interactivity functions in mobile.
- How difficult it is to recruit disabled testers.
Mairi’s Day
Mairi Fraser is a senior developer who works with some of the University’s key systems, including EdWeb, and the University’s portal for Staff and Students, MyEd.
Theme for today
Today’s theme for me was looking back at what we’ve done since we first began building EdWeb in Drupal 7, and forward to the exciting possibilities in Drupal 8!
Top sessions
Get off your Agile treadmill and build a community instead
- This was a really personal session for me, watching our very own Tim and Bruce describe our journey building EdWeb, the University’s Drupal 7 CMS, focusing on how we engaged with the editorial users along the way, and started to build a community of Drupal developers around the University who contribute to EdWeb through code sprints. It was an excellent session, not least because it reminded me how proud I was and am to work with such a great team of people on EdWeb and its eco-system, and how exciting the future of our community of Drupal developers could be in the Drupal 8 world!
Building social websites with Group and Open Social
- This excellent overview of the Group contrib module and its roadmap by the module’s creator, Kristiaan Van den Eynde, provides food for thought as we consider how we manage groups of users and permissions in Drupal 8. Billy and I also attended a ‘Birds of a Feather’ session with Kristiaan later in the day. It was very interesting to hear the perspective of people already using the Group module, and to hear Kristiaan speak with enthusiasm on the future of the module and the importance of improving UX in what can be a complex area of functionality.
Drupal 8 in a microservices world
- In this session, Luca Lusso from Wellnet gave a really informative, head-bursting tour of a real-world example system using Drupal 8 as part of a microservices architecture. Luca showed how Drupal 8 fits into that picture, making the best of Drupal’s capabilities while incorporating technologies like RabbitMq, Elasticsearch, Docker and Ansible to improve efficiency. The link above also includes a link to Luca’s slides, which are very content-rich and worth looking at if you’re interested in this kind of architecture, whether or not Drupal is part of it for you!
Key takeaways
- As part of our Drupal 8 planning, we definitely need to look at the Group module as a possible alternative to our current approach with Organic Groups.
- We have come along way with Drupal since 2012 from taking a first look at Drupal 7 to having presenters at DrupalCon! But there is so much we can still do, particularly in the area of contributing to Drupal. In Drupal 7, we customised a lot of functionality to achieve what was required for EdWeb; for Drupal 8, we aim to pare back some of that customisation to bring us closer to the Drupal way in areas where we diverge. This will make it much easier for us to contribute the work we do back to the Drupal community.
Riky’s Day
Riky is a DBA and SysAdmin who loves solving problems with technology and is here at DrupalCon to get ideas and learn best practice for architecting our new Drupal 8 infrastructure.
Theme for today
The theme of the day was automation, with sessions covering automated Drupal updates, automated provisioning of CI tools and automating ones automation.
Top sessions
Automatic Drupal Updates using Visual Regression & Continuous Integration
- This was a fascinating session by Matt Cheney, which explained how visual regression testing (taking screenshots of rendered sites so these images can be compared to find differences) can be used to assist with security updates, as the pixels should rarely change for these updates. He walked through some continuous integration workflow options for this and gave an impressive demo using CircleCI showing fully automated testing to deploy a security update through DEV, TEST and LIVE – all within a few minutes.
Power to the People – How using containers can make your life easier
- A surprisingly informative non-technical session by Bastian Widmer and Tyler Ward, covering benefits and challenges of using containerisation and the journey that Amazee are making with their platform (where their recent transition from Puppet to microservices and containers is similar to our current one). However, a particularly important quote to remember:
“Containers will not fix your broken culture.”
Key takeaways
- There was only one session for the whole of DrupalCon which was titled about Docker or Containerisation, yet so many of the sessions have discussed architectures that use it. It seems that the focus is no longer on the technology as it’s no longer new or special, but more about the capabilities it provides and how it benefits the developer experience, or consistency between tiers, or enhances automated testing.
- Automate all the things! But this shouldn’t be daunting – start small, and keep going as the non-automated parts become the most error-prone.
- Configuration as code (like Puppet DSL) should be treated like code. Use a CI pipeline, add testing and automate with continuous delivery.
- A good example of testable code are functions which accept values in, and return values out.
- Base Docker images on well-maintained base images, store system scripts in the image, and automatically rebuild them when the source repository is updated.
Tim’s Day
Tim Gray is a senior project manager who also manages the programme for work for the University’s central website. In this role, Tim manages a number of Drupal projects as well as other non-Drupal projects related to the University website.
Today, Tim was presenting a session at DrupalCon with Bruce:
Theme for today
Today was about building Communities and being agile with Agile, and my day was dominated by the presentation which Bruce Darby and I gave.
Top sessions
How go one seven companies around world and how run them
- Dania Gerhart and Martin Schmid from Amazee told their story of how the company grew from one entity to seven. They explained why, when they embark on a new venture, they start up a separate entity for this venture. The main reason being to reduce the risk to the other entities. This brings some drawbacks, one being the extensive cross billing between the different entities, who buy and sell services to one another. The company has a very admirable approach to staffing. One of the many things they do differently, is that potential new employees must spend at least half a day with the team they are to join. The team then have a say on whether that person fits in. Dania said that even is someone was a genius, they would not work for Amazee if they did not fit in to their culture. The presentation is well worth a listen to.
- David Kitchen from Johnson & Johnson, presented. The session started with a short description of the property trap as we know its definition for people and moved on to describe how this can happen to software, with new stories coming into the backlog, not managing to clear everything, creating software debt. The presentation then spoke about technical debt in some detail but never really delivered the solutions that were promised.
Key takeaways
- Hearing about a fresh new approach to managing and engaging with staff was very inspiring.
- Learning how making difficult decisions not on paper but going with your gut feeling, can work well.
- That finding creative solutions to challenges and empowering employees works for both the company’s success and the employees happiness.
- Finally hearing that taking the trouble to make your employees and teams happy, is the best way to grow and nurture the most important resource any company has. An opinion I have held for a longtime.