Drupal development encompasses a large range of services. What it means to different people can change depending on the context and job title. Drupal is a platform where hard lines can get fuzzy. There are two big categories of Drupal development: back-end development and front-end development.
But we’ll also cover DevOps and strategy because these round out a total skill set required for a successful (and efficient) Drupal development project.
Back-end Drupal development
A back-end Drupal developer usually spends a lot of time writing custom Drupal modules, which means they are familiar with PHP and internal Drupal APIs. Since Drupal 8, this also means they are familiar with how Symfony components work. The best back-end developers know Drupal best practices, so their work is maintainable and performant.
Examples of what custom modules might do:
- Add a custom field type, field widget, and/or field formatter
- Add a new entity type
- Integrate a CKEditor plugin
- Custom API endpoints for things like decoupled or headless Drupal
- Custom editorial workflows
- Format and display content in the correct order
- Implement editorial UX improvements
- Migrate content from another source
- Import data in a specific format
- Integrate external services like analytics
- Managing and applying patches for Drupal core and contributed modules
But back-end developers also do Drupal site building, which usually involves customizing the website through Drupal’s administration UI. You can accomplish a lot with just site building. It can entail creating new content types with different fields, creating lists of content, setting up contributed modules, defining image styles, and more.
Site building often falls to back-end developers because Drupal’s site configuration is usually exported and maintained in code. Site building is also improved when the people doing it know how Drupal works internally and how what they are building will interface with custom code currently under development. They have to eat their own dog food, which usually results in better dog food.
Front-end Drupal development
For larger projects, front-end developers are likely to implement components from a design system and maintain some sort of pattern library. This work enables the flexible, customizable landing pages that so many stakeholders demand.
But front-end Drupal developers can also write Twig template files, and to do that effectively requires some knowledge of how Drupal works and organizes information. They might also be called upon to do some site building. Beyond that, there is also preprocessing, where variables are manipulated and prepared before templates receive the data. This preprocessing requires developers to be comfortable with PHP and Drupal’s data structures.
Again, the lines of separation can be a little fuzzy, and where responsibilities fall can vary from team to team.
DevOps is short for development operations. There are a lot of things happening to support the work that developers do. Local environments need to be set up. Servers need to be prepared. Code deployments need to be managed. Services like Tugboat and CircleCI need to be folded into the process. Automated testing strategies need to be planned.
Sometimes, development teams have a DevOps engineer who can manage these tasks and keep everything maintained and running smoothly. On smaller teams, however, these tasks fall to the developers themselves.
As mentioned, both back-end and front-end developers can find themselves site building with Drupal, adding content types and fields and display modes. But how do they know which content types to build and what to name them? How do they know which field types to use, along with their names, descriptions, and help texts?
In the past, developers created whatever they needed for the task at hand. They used their best judgment. For modern Drupal development, however, this should be avoided. It can lead to a bad user experience and a website that is hard to modify and extend. While something might make perfect sense for an individual feature, the developer might inadvertently go against the larger goals of the project. There needs to be some overreaching vision that is maintained and governed.
The best-performing Drupal development teams typically work with a content strategist. A strategist works with stakeholders to model the content that will be published on the Drupal site and delivers a data dictionary to developers that will act as a blueprint. No guesswork. No developers going off half-cocked and giving things unhelpful names.
But, even here, creating a data dictionary is most helpful when there is a collaboration between content strategists and Drupal architects/developers. Knowledge of Drupal’s internals helps everyone land on a better solution.
Not just code, but harmony
Lullabot deploys Drupal development teams that work in harmony with strategists and designers to create powerful content platforms. Our practitioners understand the fuzziness of these lines and embrace them to work to your advantage.