By Josh Koenig July 12, 2013
Pantheon partner Kalamuna — the most stylish Drupal outfit in the East Bay — have been doing really interesting work with their Kalabox project: a system for handling local development that's designed to take advantage of modern VM tools (Vagrant) and configuration management (Puppet).
This model offers a significant advantage over MAMP or other "stack in a box" tools that rely on your native OS. Unless you're booting Linux locally, the chances are high your production environment is built on a very different platform. That kind of fragmentation can be a killer, and hopefully soon it won't be a risk anyone has to take.
Co-Founder (and chief food taster) Alec Reynolds put up a really great blog today, imaginatively entitled Ride the Hydra, about the power of using Kalabox in conjunction with Pantheon's Multidev features:
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.
I really like that they're highlighting how Multidev and local development can be complimentary. At the risk of sounding like a hand-waving Silicon Valley douchebag, there's a huge potential for synergy between a rock solid local dev stack built on modern tools, and the cloud development environments that come with Multidev.
Everybody likes being able to work offline, and there's no beating local dev for pure speed. At the same time, websites run on the internet, and being able to seamlessly move between online and offline workspaces is key to keeping projects on track and trucking. Ideally you have quality tools for both at your disposal.
But more than giving us a shout-out, I love Alec's post for how well captures the essence of the developer mindset:
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.
A lot of developers and shops can tell you Hyra-esque horror stories about Local Development Gone Wrong — "the cautionary fable of how I spent all day debugging MAMP instead of meeting my deadline" or "the heroic epic of re-writing a major subsystem that didn't work with the production version of PHP". Kalabox has the potential to change all that.
Project managers have their own variations on the theme, such as "the saga of the laptop a developer lost at a house-party, with two weeks of work on it," or "the tragedy of being unable to provide feedback on work in progress." Making it easy to take work to a cloud development environment is an obvious answer there.
In the coming weeks and months we're excited to offer more power-tools on top of Multidev that can enhance the experience of developers making use of Kalabox and other pieces in the emerging best-practice development tool chain. Hopefully, in this bright future we're forging together, we'll transcend these problems of "how" and get back to the real business of "what": making the internet a better place one rockin' website at a time.
Topics: Drupal
