Is it possible to completely automate your entire Salesforce (Force.com) release & deployment process such that development teams don’t have to think about manually initiating and managing deployments? Yes, it is possible !!! In this article, we will explore why this is a logical next step in the future of Salesforce Release Management and explain how to map out those next steps.
Let’s explain this by drawing a parallel between Salesforce’s ‘No Software’ phrase and my ‘No Deployment’ phrase. Salesforce.com ’s ‘No Software’, doesn’t mean you never have to bother with software ever again, rather, it means NO legacy software and ONLY software in the cloud. In the same vein, when I say ‘No Deployments’ I don’t imply NO deployment of applications ever again. Instead, I mean is that, employing a ‘No Deployment’ strategy as part of your Salesforce (Force.com) release process, ensures that deployments steps are seamlessly integrated and completely automated, such that the development team’s don’t have to bother with manual tasks or managing deployments.
Why are we talking about this?
I invite you think back to the early stages of the SaaS revolution. Salesforce was one of the first ecosystems to fully embrace the Software-as-a-Service (SaaS) revolution branding and marketing it with the ‘No Software’ pitch, by delivering apps through the cloud at a time before the cloud had become massively popular within other technologies of the IT world. Salesforce developers were at the forefront of a software delivery method. The adoption of SaaS gave them a leverage that enable them to become very influential, well beyond the Salesforce ecosystem. So, while the idea of SaaS struck most people as a bizarre notion when it first debuted in Salesforce’s early days. Yet, SaaS went on to become an industry standard for software delivery not just the Salesforce world, but IT as a whole. I believe that the ‘No Deployment’ model holds the potential to revolutionize the way deployments are executed within Force.com.
Why is ‘No Deployment’ the future?
Unlike most Salesforce Release/Deployment Automation strategies, a ‘No Deployment’ strategy is different. It helps companies focus their attention on the aspects of their business that lend it the most competitive advantage while achieving greater advancement, velocity and maturity in their Salesforce release process. The ‘No Deployment’ strategy is unique for three key strategic reasons:
- Focus on strategy, not deployments
- Focus on innovation, not automation
- Achieve higher release velocity
When should we starting working towards that future?
I agree with Reid Hoffman, Co-Founder and Executive Chairman of LinkedIn when he said that ‘You have to be constantly reinventing yourself and investing in the future.’ Therefore, a good time to start considering and working towards a ‘No Deployment’ strategy within your Salesforce Release process is NOW.
How to get there
- Keep the tools you love: adopting ‘No Deployment’ doesn’t mean having to learn a new set of tools or buy new tools. Rather, it should be done using the tools you invested in, already have and most comfortable with. In order to successfully implement a ‘No Deployment’ strategy/solution, one needs to integrate with a solution that is flexible enough to adapt to any tool, solution and processes you have established- for example, the solution should integrate with existing projects, QA process, collaboration tools to mention a few. Furthermore, the solution of choice must be made future-proof as your toolset evolves in the future.
Keep your development pipeline integrated: Your ‘No Deployment’ automation solution should not only automate the deployment process; it should also plug directly into your entire delivery/development chain—from development to QA testing to UAT. This integration is essential if you want your deployment to be efficient and seamless. Your deployment tool should be aware of what is going on upstream in order to be ready to deploy when software comes downstream.
- Keep the process simple: This point cannot be overemphasized. Your deployment solution should eliminate the need to think about deployments. Your Salesforce release/deployment process should be as simple as pushing a button. Don’t settle for anything less. Otherwise, you’ll still have some deployment, which is not nearly as good as no deployment.
If you think the ‘No Deployment’ idea is farfetched, then cast your mind back to early stages of the SaaS revolution. SaaS was a bizarre notion for most, when it first debuted in Salesforce’s early days. Yet, SaaS went on to become a paradigmatic standard for software delivery not just the Salesforce world, but IT as a whole. In the same vein, ‘No Deployments’ may seem like an improbable idea now, but I know that it has great potential to become not only mainstream but the standard for deployments within the Salesforce & Force.com release process.
The goal for many Salesforce.com development teams is accelerating Salesforce.com & Force.com delivery by elimination of deployment bottlenecks through automation. The key to accelerating release velocity for software delivery for Salesforce is to embrace a ‘No Deployment’, were deployment is not a phase (or a step) in the process. This is crucial for preventing roadblocks and simplifying your software delivery processes and it’s next big step forward for Salesforce release & delivery innovation.
Adopting a ‘No Deployment’ strategy means that the process of deploying your application is fully automated, so that your team does not have to think about or spend time on deployments. An effective ‘No Deployment’ model should support the tools you already have in place, integrate with your entire development pipeline and make deployments as simple as clicking a button. This is the future, are you ready?
Shout out & thanks to @danielpeter for the great inputs and thoughts.