Considerations for Modern Local Web Development Environments

Published on by Pat Ramsey, Director of Technology

When searching for the right partner for a web development project, there are a multitude of strategic factors to consider to find the ideal fit for your project. Factors like compatibility, creative problem-solving, flexibility, and credibility, demonstrate how an agency can and should solve business problems and deliver ROI.

Another critical consideration is having a clear view of how an agency's development team works behind the scenes. Understanding how things get done once discovery and planning have taken place can provide valuable insight into the quality of the deliverables and the experience with the production team.

What Makes a Good
Local Web Development Tool?

We’ve recently seen managed hosting companies rolling out development environment tools. WP Engine has an open beta of their DevKit. With their recent acquisition of Flywheel, WP Engine now has the renowned Local by Flywheel development application in their tool chest. Pantheon, another managed hosting provider, opened early access for their LocalDev application. These are only the newest. Vagrant, Valet, Homestead, Lando - there is a long list of tools designed to aid in web development. While the question might seem to be “Which one do you use?”, the better question is if you’re a web developer, “Why aren’t you using a local development tool?”

A good local development tool meets four criteria:

  1. Creates a web stack that better matches the production web server, rather than what your computer’s operating system provides
  2. Centralizes the entire project team to work off the same web stack, eliminating errors due to developers not having the same version of PHP, NGINX, etc, on their computers
  3. Integrates well with different tooling and workflows, allowing you to customize the application to fit with, or enhance your team’s processes so you remain efficient, or you become more efficient
  4. Eliminates “vendor lock”, tying you to one development application, making it harder to adapt when newer technology comes out

Matching the Web Server Stack

This one is simple - if development and production environments are the same, a developer can develop against the same standards and specs across the board. Why would anyone want to cripple themselves by developing on old, outdated software? Local web development applications should allow setting the same PHP version the web server uses. Agencies working on several different projects across multiple clients need the ability to select project-specific settings and should ensure their local development application allows this. For example, in a Docker-based application, you have the ability to provision different containers for Laravel 5.8 versus 5.6.

Consistent Settings for a Team

When the hardware and software are both controlled for a team there is less of an issue with consistent settings, because you can simply enforce the same system specs for every developer. In the world of remote and/or distributed workforces and rapidly-changing technology, this gets harder to do. The ability to create a project configuration and enforce the use of that for your project becomes vital to its success. That is why something like Lando has excellent value. Each project uses a configuration file or recipe that contains all of the settings for that project's web environment. This file is versioned in the project codebase so every developer on the team gets the same configuration, preventing unforced errors where "it works on my local" is no longer the excuse when there is a bug.

Customizable for Workflows

Consistent environments are important, but we also need the ability to customize things - specifically, the ability to adapt the application to a team's workflows. A dev team needs to make the tool work for them, not the other way around. Can the application be used the team’s deployment processes? Can testing practices be integrated when using the application? A good local development environment either has support for workflow customizations or at least doesn't get in the way of this. Using Lando as an example, it allows you to add support for javascript toolings into the config files, so Gulp, Webpack, or other such build tools are (here's the magic word) consistent across the entire development team. Without this, there’s the risk of having to rebuild each time, or not version package files. This adds time and increases risk. This can be avoided by incorporating workflows into the development application.

An important question to ask is, why would a #WebDevelopment agency not use a local development application? Click To Tweet

Avoid Vendor Lock

Technology iterates fast. Two years ago, things were different, let alone five years ago. A dev team needs to make sure the local development application does not end up becoming a technological set of Golden Handcuffs, where in a year's time, or two year's time, they face a massive undertaking to adopt something different. A good local development application will respect standards and be "technology-agnostic" enough to provide the best possible outcomes when evolving and transitioning to newer technologies is needed. It's one thing to switch from Webpack to Gulp, it's another to replace several web stacks across a company.

An important question to ask is, why would a development agency not use a local development application? Consistency, alignment with the web server, integration with workflows, and elimination of variables across the team are all provided when utilizing this methodology of web development.

So make sure you know more about an agency’s approach to web development–it all starts with the local set-up. An agency that ensures that their dev team has a proper set-up, that works best with their processes and goals will spend more time providing outstanding value through their work on your project and products, and less time building inefficient processes and workflows that may negatively impact your project’s success.

At Crowd Favorite, our Web Development team has put extensive thought and work into setting up and managing our local development environment and processes. Reach out and let’s talk about setting your next development project on a successful path!