Entity view (Content)

Blazing Fast Drupal Workflow

By mscarset
Jun. 14, 2018

Why we need to improve our tools

We are living exciting times as web developers. Nowadays, many great tools are available to develop and deploy Drupal websites.

However, it is still hard to find your own way through the countless software and platforms available out there. Productivity depends on your tools and your workflow. Carefully picking softwares and defining processes are the most important keys in your path to success.

  • As a developer, you need something easy to setup, something that lets you work in a consistent manner regardless of the technology or the size of the project.

  • As a team, the most important is to enhance collaboration through automation and testing. The less time spent on trying to understand or to debug co-workers work, the more value is delivered to clients.

  • As a company, workflows are critical. They define your vision, your methodology. Wrong processes can slow down the whole structure whereas good ones empower individuals to be more productive - which ultimately increase the overall performances and improve your reputation.  

So, how can you improve your Drupal workflow? We think you can leverage the latest open-source technologies to work better, faster, smarter.

Existing Solutions

Just before diving into our ultimate tool and workflow for Drupal development, it’s important to list what the existing solutions are and why they don’t answer all our needs.

As we already said, there are a lot of great tools available for Drupal developers. The most popular as of today are listed below:

  • Local server on your machine (LAMP / LEMP)

  • All-in-one server (XAMP / MAMP / WAMP, Acquia DevDesktop…)

  • DrupalVM

  • Docker4Drupal

Unfortunately, none of them are limitless.

These are the main limits of existing solutions for local Drupal development:

  • Tied to one technology / one stack

    • Local server do not let you easily switch configuration depending on your project’s needs

    • All-in-one servers are PHP only - no NodeJS, no SolR...etc

  • Hard learning curve / Time consuming

    • Learning how to edit configuration of DrupalVM via Ansible takes a long time

    • Switching projects or provisioning updates on Virtual Machines is sometimes very slow

    • Debugging machines or synchronization issues with Docker4Drupal is not so easy if you don’t how to navigate through Docker containers

  • Limited integration with Cloud platform (Continuous Integration)

    • Tough to match your Production environment locally

    • Need devops to implement a build process separate from your application

Overall, my point is that existing solutions require a significant amount of time from developers. There is an important learning curve and it can be hard to fine-tuned them to match your expectations.

Expectations

Where I come from we have a saying: “Developers are lazy by nature.” Truth is, we really try to avoid to repeat ourselves. We always look for a shorter or a more efficient way of writing our code.

So why don’t we also try to improve our tools?

The perfect tool would enhance all of the following:

  • Out-of-the-box

    • Needs to be cross-platform

    • Absolute-zero learning curve

  • Standardization

    • Consistency between project

    • Leverage reusability

  • Automation

    • Testing QA

    • Deployments

  • Improve team collaboration

    • Easily share your code with pairs

    • Facilitate code review

In the next article, I will explain how I have set up what I consider to be the Ultimate local environment. My goal was to provide developer teams with a lightweight and scalable tool for Drupal 8 development. I also wanted it to be flexible enough so that it can be reused for future projects, no matter the technology nor the stack.

Collaboration, standardization, scalability and Don’t Repeat Yourself were my guidelines.

The final result is a concentrate of good practices and extensible scripts that work out-of-the-box. It is meant to help collaboration. Regardless of your level or your role in the project (junior/senior, themer/back end/QA...), there will be something for you to improve your productivity.