By Duran Goodyear September 21, 2015 Twitter LinkedIn Facebook
As a Drupal architect I’ve been building web applications for clients for years, starting with sales, working through the technical architecture, and all the way through to the final touches. I build web applications for projects of varied sizes—some have only a couple of stakeholders (like the CTO and CMO), and others touch dozens of departments across an organization, all with varied technical ability. I’m constantly sharing my progress with clients, so one tool that’s been incredibly valuable to me is a tool called Multidev.
Pantheon’s Multidev: Feature Branches Galore
Multidev is a feature of Pantheon’s website platform, which is what I use for practically all of my projects. And naturally, because I build all of my client sites on Pantheon, I have to be able to share progress in an easy and secure way. In fact, it’s what’s made independant feature development possible—Multidev lets me use Git feature branches to spin up multiple dev environments, where I can then allow clients to log into and test new features or changes to the site.
The Git workflow for managing feature development is really important for developing a website in a way that isolates tasks, and accelerates product delivery.
A Small Company Doing Big Projects
A little more background on me. I’ve been self-employed as a developer for about three years. Right now my company, Alphex Information Solutions, has two employees and clients in business, healthcare, education, and the nonprofit sector. Day to day, we’re working on a few projects at a time—I try to keep each employee working on one or two each to keep their focus, and I typically do more of the high-level work across all of my clients. I’m a small shop but work on high-value, enterprise projects. This means the bar is high, and I have to use my resources as efficiently as possible.
You know what isn’t efficient? Managing your own servers: local, staging, and prod environments that I had to configure manually for each new project. When you’re bound to a limit of different environments you can only build one or two features at a time without confusing the product, it is a hard thing to tell clients when they want to move faster with a project. I desperately needed a way to work on multiple features and changes without significantly disrupting their day-to-day productivity with system administration work.
Before Pantheon, there was no way to do a reliable feature branch environment. Multidev solves that.
How I Use Multidev from a Workflow Perspective
I follow a strong structure of plan, build, test. Multidev is how I test new features with clients. As you build a website, initially, at least, you put all of the pieces together in the Test environment on Pantheon to allow the client to review and approve progress. As you start to build out and increase the complexity of the project, the smart process is to start using Multidev for each feature that needs to be built.
For each feature, you create a Multidev (aka a new cloud dev environment) for that work. A new content type with some associated views, such as a blog? Create a Multidev and isolate your work there. Do you need an image gallery with many image styles and advanced used of the Picture and Breakpoint modules? Create a Multidev and isolate your work there.
This does a number of things. First, it isolates feature development to keep a client focused on the goal of the task at hand. Second, you get to test and prove your work in an environment that isn’t potentially stepping on or breaking work already completed. When work is approved by all parties, you can attempt to merge it in to the master branch, and push it up to the complete project on Test. It can add some time to your work, but the isolation of tasks makes sure that one forgotten curly bracket in your PHP or CSS doesn’t break the Test environment.
If I want to make changes to a database, it’s much easier on Pantheon. Each Multidev has its own database—you can clone it in minutes from the live environment and capture the database in code with a functionality in Drupal called Features.
Making a Smooth Handoff to Clients
One of my clients, USF, have their own internal developers who are very talented. They have access to the Pantheon dashboard and can manage their own Multidevs. This makes things a lot easier, because I don’t have to worry about giving clients root access but can give them the level of control they need over their own site. I make sure they’re trained on Multidev, give them the right level of permissions, and they have perfect copies of the live environment that are just a few clicks away. By following the workflow discussed above, they have the ability to work on anything they want safely.
Eliminating Server Atrocities
I’ve seen some pretty scary server hosting environments. It’s very difficult when you’re dependent on your client’s IT to set up an environment, and their mistakes (like using the wrong version of PHP) can completely derail a project timeline.
Even if the environments get set up correctly, you’re typically looking at four to six hours a month dealing with server maintenance. If the server goes down for any reason, they’re calling me. It’s nerve-wracking to have to ask yourself “Can I upgrade, or will it destroy half the sites I run?".
Pantheon’s arrival with reliable, robust Multidev environments made it easy to do the things that otherwise I’d be spending too much of my time on. I don’t have to worry about your server, or my server anymore.
I use Pantheon because it makes all of that go away. It’s a platform based on containers, so that alone gives me resource isolation. But on top of that, Multidev gives me completely separate, identical environments. It's been a lifesaver and a tool that really empowers my team and my clients.
Stop maintaining servers, focus on delivering awesome projects. See how personal consulting from our team can help reclaim lost billable hours. Apply for Fast Track.Topics: Agencies, Agency Partners, Development, Digital Agencies, Website Technology