Although he could put on muscle faster than anyone else in the pre-steroids era, Hercules was a weak multi-tasker. That's why Hera sent the multi-headed Hydra to defeat him. Beset by multiple challenges at once, Hercules would surely fail.
Developers, for all our coding prowess, are similarly hobbled. We work best when we can focus on the task at hand: creating awesome Drupal applications. However, every day we're faced with a multitude of distractions preventing the planning and coding necessary for a successful project.
Three Rules to Reduce Complexity
When starting Kalamuna, my co-founders and I knew that eliminating the unknown variables in creating Drupal websites was essential to making our jobs more fun and extending our clients' budgets. To that end, we set three goals to reduce the complexity of our development workflow:
- Developers must use a standardized local development platform.
- Deployment (moving code between local, staging, and production environments) must be automated.
- Development must be transparent to site owners and team members alike.
For those project owners and developers who think that working with large numbers of developers and concurrent feature development is a heroic feat, I'd like to talk about how we learned to ride the Hydra (heavy-metal album-art style) by using Pantheon and our local development environment, Kalabox.
Kalabox: Local Development, Remote Deployment
Developing locally on your personal computer has become a best practice because it is fast, reliable (look ma, no internet!), and inexpensive. However, pulling down entire sites and configuring them to run on your machine can take precious development time away from projects. Start working on multiple projects and you'll find developers juggling databases and configuring their laptops instead of defeating bugs like good Grecian heroes.
Pull Down Sites From Pantheon With Kalabox
To simplify the problem, we've taught our computers, through the power of Kalabox, to juggle for us. With a simple command, Kalabox can suck up your Pantheon site. Minutes after receiving access to your project on Pantheon, a new developer can visit her laptop and start editing the code. Because Kalabox was made to resemble Pantheon's production environments, we're not surprised by how our code operates when it goes Live.
By using Kalabox, we acheived our first and second goals, reducing developer warm-up time with a standardized development environment that can be quickly populated with sites from Pantheon. We’re spreading the love around by releasing Kalabox to select testers, so let us know if you'd like to see how it can speed your development workflow.
Pantheon Multidev: Transparency and Collaboration
Kalabox allows us to quickly download sites and have consistency between our environments, but Pantheon is where we show our teammates, clients, and (when everything is shiny) users, the magic we've been working on. We chose Pantheon as our preferred hosting service because it helped fulfill our second and third goals: automating deployment and making development more transparent. The new Multidev feature allows us to expose even more of our development process to project participants.
Multidev Eliminates “Dark Matter” From Projects
Take the example of back-end code refactoring. This type of work is the dark matter of large, long-term projects: it takes up lots of time, it's largely invisible and hides on a developer's laptop until the time comes to integrate it with the main branch of development. Naturally this tends to scare project owners hoping for quick, tangible results.
Multidev exposes this refactoring by creating a new environment on Pantheon with our refactored code and an independent database. Project owners and teammates can now test changes on a working site, distinct from the Dev/Test/Live environments where regular development is still occuring. This type of transparency helps us collaborate more closely with all project participants, making sure that deployments are seamless and our code refactoring is solving real client needs, not simply shuffling around files.
Fight One Vicious Reptile, Not Three
Hercules was doomed to defeat until he found that, when cauterized, the Hydra's heads couldn't regenerate. By reducing the Hydra to a single head, Hercules defeated the pesky snake.
By using Kalabox and Pantheon in our development workflow, we've managed to reduce extraneous developer busy work. Deployment automation with Kalabox and Pantheon prevents us from continuously moving websites from server to laptop, while Multidev makes development transparent to clients. Instead of fighting each head of the Hydra, we simplify our workflow to focus on creating great projects with our team.