How Our Dev Team Increased Efficiency By 25%

The Business Challenge:

WordPress has a profound existence on the internet. It’s a wonderful way to show off someone’s simple blog, to a multi-million-dollar company presence. WordPress offers custom themes and plugins that do everything from a revolving carousel of images to handling transactions and order-fulfillment. It’s an immense tool with extensive capabilities.

Along with their customizable front-end, WordPress comes packaged with the ability to connect to a back-end database to handle all user-requests. The front-end and back-end services are almost always set up by a developer or a team of developers before it is released to the world. As the complexity of the site grows so does the team.  How can you guarantee that everyone is working in the same environment at the right time? We ran into this challenge as we set out to redesign our SEO optimized site. 

Case Study:

How does a company create a process that supports multiple developers at the same time, with an agreed-upon file structure, coding methodology, and a guarantee that everyone will be working with the same back-end environment?

Do you create a document that explains how to set everything up? Can you guarantee that everyone will do the set up the same way? The answer is, “No.” But there the good news is, there is a way. 
 
Here’s how we did it — and how your company can do it too:

  1. Set the stage with Trellis

    To quote the Roots website, “Roots helps you build better WordPress sites.”

    Roots consists of three levels Trellis, Bedrock, and Sage. Trellis is the backend environment. This is probably the most important piece. It holds the database, which means it holds all of the website’s content. It is ridiculously important that all developers on a project share the same backend environment. To enforce this, Trellis relies on Vagrant to create a virtual machine (a tiny version of a computer) that all developers install on their computer. This eliminates the need for everyone to be responsible for setting up their own version of a database. More people setting up their own stuff means more room for errors , and obviously, we really don’t want more errors.

  2. Building the structure with Bedrockd

    Bedrock is the file structure of the WordPress application. Bedrock separates all WordPress core functionality in a separate directory from  directories that everyone’s working in. This creates a limited ability to mess up core configurations. With the possibility for core malfunction minimized the developers are now only concerned with the “area” they are working on. PHP logic files, images, style sheet, JavaScript, they all now have their own place in the application. This structure is enforced across all systems and developers, creating a system that won’t let you place anything incorrectly, freeing up developers to work in parallel without concern of breaking something.

  3. Presenting the site with Sage

    Sage is a front-end developer’s dream. It extends the functionality of “Blade”, the front-end of the popular PHP framework “Laravel” making the the separation of logic and display very easy. No longer are your WordPress PHP files riddled with PHP tags everywhere, no longer will you have a functions.php file with 3000+ lines of code, confusing other developers. Everything is now separated into classes related to each page. All logic is processed in these files, with simple script tags on the front-end PHP file that display the information. Additionally Sage allows you to make custom components (referred to as “partials”) that allow you to drag and drop functionality anywhere on any page transferring data seamlessly throughout the site. This enables the “Do Not Repeat Yourself” coding standard, also referred to as “DRY”, which ensures efficient coding.

    Implementing the Roots platform means you no longer have to worry that your developers are working on different platforms, or be concerned that different developers are running different versions of PHP or different databases. The phrases, “How are you doing that,” or “I can’t do that on my machine” are now replaced with a smooth secure workflow promoting efficiency and good code. 

And that’s how we do it.