Introducing Gearset: Simplifying Salesforce Deployment
Undisclaimer: Before you get any further, I want to clarify that I was not asked by Gearset to write this, I'm merely doing so because I think the Salesforce.com development community as a whole will benefit from trying this tool out.
It's no secret that while the Salesforce.com platform enables developers to build solutions very quickly, it does have a few weaknesses and from a developer's perspective those have historically revolved around the tools available. Thankfully the publication of the Tooling API had the intended effect, accelerating the growth of community-built developer tools, with tools such as MavensMate that adopted it almost overnight in place of the Metadata API.
The Joy(?) of Deployments
Deployments have always been a contentious issue to some extent, initially we either had to become familiar with ANT or make do with the Eclipse plugins driven by the Metadata API. I always used the later, though the modal dialog nature of those deployments was incredibly frustrating to deal with: if you needed to tweak a class, or include something else you had to close the dialogs and start the process again, including entering the details of the org you were deploying to.
Changesets alleviate a lot of problems and make deployments possible from the declarative UI, but again they don't always garner favour from developers as driving things through the UI is not necessarily ideal (not to mention the seemingly random times they take to pass through the ether).
These days I tend to use Mavensmate to do my deployments: it remembers connections, makes metadata selection a breeze, and you can do other things while the dialog boxes are open, but there's still a lot of manual effort involved if you need to compare two orgs before deploying. I'm sure that most developers on the platform are familiar with the process of having two local projects setup, updating both prior to a deployment and using a diff tool to compare the files retrieved.
This week I had a call with some of the team at Gearset, and they've seemingly had many such calls with developers in the community because they're specifically looking for input and feedback on what developers don't like about deployments, and what they'd like to see in this application.
In essence, Gearset is a Windows tool—that will soon be hosted online—where you enter the credentials for two orgs, get a breakdown of the differences in the metadata of the them, and can then select what should be deployed from one to the other. That might not sound particularly expansive right now, but it should be stressed that this is a brand new tool and it's already removing a lot of manual steps in the deployment process. If you don't do diffs at the moment then I emplore you to consider doing so, as knowing the lay of the land is critical in any environment management.
Our mission is to make deployment and developer collaboration on the Force.com platform ingeniously simple - Gearset
I encourage every developer reading this to try the tool out and then email the team or join their UserVoice forum, to make your suggestions for features and improvements. I wouldn't be surprised if the majority of the ecosystem was using this tool for their Salesforce deployments within the next twelve months.