Despite its appeal, if building your own local development and deployment solution isn’t your core business, you should consider a fully-supported, open source solution like DDEV. It offers you a much better long-term balance in terms of focus and cost, meeting your needs efficiently while remaining transparent, flexible, and extensible.
Whether you’re leading a team of developers at a digital agency or an in-house digital department, your problems with choosing the right tools for the job are the same. You have to produce websites, compelling digital experiences, or deliver real digital transformation at a breakneck pace with consistent quality and under changing conditions. To do that, you’ve probably standardized your playbook. How do you kick off new projects? How should the team respond when things go wrong? A standardized solution for local dev and deployment is certainly part of that playbook.
Now the question is: how should you build and maintain it? The idea of creating a bespoke solution with new tools is enticing for developers. Maintaining it? Not so much fun a few months down the line. If building—and maintaining—this tooling isn’t part of your core business the excitement of today’s new shiny toy can turn into resource and priority conflicts, lost time, and excessive costs in the long term. Yet, many organizations choose this path. In fact, it’s what we did a few years ago when we built what has become DDEV. At the time, we couldn’t find anything that fit our needs. A couple of years later, the landscape is different and there is great tooling available for you.
DDEV-Local is ideal for integrating with the other tools in your dev-to-deploy toolchain and into larger modern workflows—DevOps et al. While tools are only part of the equation alongside culture and practice, they can either save or cost you time and money. It may seem smart to create your own highly customized, containerized local environment or even a hosting solution, but the long-term drain on resources can be prohibitive. Our business is building, supporting, and maintaining this tooling; if it’s not at the core of what you do, it might not be the best investment for you.
For DRUD, building and maintaining these solutions is our core business. We’re here to make your dev-to-deploy workflow simpler, faster, and better. We’ve got your back, go make something awesome.
The allure of build-it-yourself and the new shiny
It’s a credit to software developers that they jump at the chance to learn new tools and techniques. If it weren’t for their relentless interest in shiny new toys, the web itself wouldn’t perform as well, nor look as good as it does today for a range of users and devices. New languages and methods are absorbed quickly. Novelty itself is motivating, but novelty wears off and the reality of long-term maintenance can be a drag—on your mood and your resources.
The sheer expanse of the web developer roadmap—From scripting languages to package managers, and front-end frameworks to task runners—means that no one person can ever master it all. Changes happen so fast that developers can be overwhelmed with the amount they feel they have to learn. One solution is to specialize and focus on your niche area of expertise, and to have best practices in place like standardized tools and documented workflows, for example, to bring everyone up to speed quickly.
When we spoke with DDEV-Local user and senior team lead, Brandon Williams, he said one of the reasons he loves DDEV is that “you can focus on building the products rather than supporting building the products.” Instead of spending time creating and maintaining tools, he can focus on his company’s core business where they are delivering value for their customers.
Prioritize your core business
It can be hard to resist the idea that what you make yourself is going to be the best fit for your situation. But are you putting the needs of your core business and customers first?
Imagine a fine furniture maker launching their business. Should they start by building the building for their workshop? Then forging hammers, making saws, and lathes? They might have the know-how. “How hard could it be?” Famous last words! Wouldn’t it make more sense to move into a building, install the right tools, and make furniture right from the start? It would be the most efficient path to delivering the highest value creative work they can do. Why do we see software any differently?
The slippery slope starts like this: “We’ll just build it ourselves. We’ll get exactly what we want! We’ll never have to compromise!” The “Not Invented Here Syndrome” is a classic anti-pattern in software development. Some companies would prefer to reinvent the wheel, which is good if you plan to learn more about making wheels. But if you’re not in the business of making wheels, why would you waste the time and effort to reinvent them?
It’s not just start-ups to that are looking for lean approaches to growing their businesses. All business leaders are concerned with the bottom line. This means you need to stay focused on the value you’re providing customers. Every company should be parsimonious and question costs where it makes sense. Monthly per-seat subscriptions for key services can eat away at your budget. The money you save today can be reinvested strategically. Yet, it seems ludicrous to think any company today would waste time distracting from their core business to create and manage all the myriad applications their business relies on every day: customer relations management, billing, chat, hosting, document creation and management. In every case, you need to choose a vendor… or choose to build in-house?
What problem are you trying to solve? What value are you delivering? If your company isn’t in the business of offering CRM services, or chat tools, or hosting, or word processing, why would you want that burden on your bottom line? You would be burning potential revenue by eating up time your developers could be using on your core business.
Just how much money are we talking about? The Baremetrics Build v Buy calculator crunches the numbers for you. Plug in the yearly cost of the ‘buy’ option, and then add in the cost factors for building it in-house. How long does it take to build? How much is a developer’s salary? How many days of maintenance per month. The results are often clear: “Don’t build! It’s not worth it!”
Yet still, we venture on building our own solutions, even when there are freely available open source solutions…
Building your own dev-to-deploy solution
It’s a lot of work to maintain your own systems to manage local development, deployment, and hosting with containerized solutions. This work is often taken on by senior developers and team leads to ensure that the tool is secure and won’t cause more trouble than it solves.
If you’re planning to develop your own Docker environment, you have a lot to take into account. For starters, you might have wanted to get away from VMs, shifting to Docker for a lightweight container image that can be shared quickly to build the containers locally. You’ll need a Dockerfile, Docker-compose file, environment variables, and services to connect to the database and project as well as a tool like Jenkins for build tasks and to manage dependencies.
If you’re adding on deployments and hosting, you might also want to look into Kubernetes to create container clusters to push to your live environment. You’ll need to define deployment.yml, services.yml, among other things to set up a cluster locally. Kubernetes is deployment-environment-agnostic and has a large open source community around it, plenty of add-ons, and the ability to have all of your cluster/deployment configuration in code. Which is why we’ve used it in DDEV, too.
Custom, in-house tooling can be an awesome learning experience, and provide the exact thing you want, but it’s also a cascading decision that accrues more debt, weight, time invested, bugs, issues, and more over time, until the costs of maintaining it are greater than the benefit you gained from creating a completely custom-tailored solution. Existing tools supported by focused, fully-committed development teams are able to continue developing and integrating new services while you are still laying the groundwork and falling farther behind.
It’s our core business
We built DDEV while working through our own challenges at a digital agency. When we were looking around there were few options available. Today, just for Drupal, there are 37 solutions and counting! However, most of the solutions are from vendors who can’t commit to support because it’s actually a side-project taking away from their own core business. For DRUD, building and maintaining these solutions is now our core business.
DDEV maintenance and improvement soon became such a big workload that it became a product of its own, and we knew we needed to build a separate, dedicated company and community around it to make it sustainable. Rick Manelius, one of DDEV’s original developers, pointed out, “I think this is such a critical discussion because many do not recognize the cost of building it yourself as part of the total cost of ownership (TCO). BIY may give it the exact way you need it, but you then have to feed it.”
The old open source adage, “Free as in puppy,” comes to mind. You get a wonderful, perfect puppy, but you also get the responsibility for it, feeding, walking, caring for it for years to come.
“In the long haul building your own utility is cost intensive,” says Steve Grandchamp, CEO DRUD Tech. If you’re looking for a solution you probably already see the benefits of getting everyone using the same tools and best practices for development and deployment. Up until now, there hasn’t been a clear leader.
Another part of the beauty of DDEV is that it’s entirely open source, so you can join the community, make feature requests and participate in the creation of the tooling without losing hours to learning and maintaining the entire project on your own. Take a look at the DDEV roadmap to get a glimpse of the future and how it fits with your team’s goals.
Try out DDEV before you build your own
DRUD developed DDEV to fill this need for a flexible yet managed development and hosting environment for a complete local-to-live solution, featuring seamless integration from dev-to-test-to-deploy. We see DDEV-Local as a tool that anyone on your team can use; you can choose to use it with our GUI for those not comfortable with the CLI. DDEV UI opens up DDEV for site builders and project managers to get in the game.
DDEV gives you room to customize and adapt to your specific needs while taking the burden of learning and configuring Docker containers or maintaining a complex set of services off your hands. Plus, DDEV-Local integrates with DRUD’s hosting solution, DDEV-Live, so your project can easily be pushed to production with no hiccups or integration issues. You get all the perks of Docker containers, with none of the time spent maintaining the tool itself.
If you’re ready to move away from maintaining custom tooling to working with a fully supported dev-to-deploy solution try DDEV today to save time. Our development and user communities are ready to welcome you and get your entire team started with configuration and services so you can improve your workflows and projects starting right now.
Photo by Clark Young on Unsplash