You need two things to compete in Digital Transformation.
The first is a market-leading cloud platform. Since I was part of the team that built force.com in 2005, I believe that Salesforce is a great choice. This platform enables IT organizations to deliver value to the business faster than any other platform out there.
The second requirement is a modern DevOps strategy which will improve your release velocity, delivering more value to the business faster, and reduce errors in production. Unfortunately, there are several challenges with DevOps on Salesforce:
- No structured release process;
- No native source repositories or version control;
- Challenging to collaborate safely with others in the same environments;
- No built-in compliance enforcement.
Lack of collaboration tools is a huge challenge. DevOps is a team sport – you need a process, a set of tools, and a culture of collaboration to keep the business, your customers, developers, Admins, and Architects in sync.
We’ve spoken to many of our enterprise customers about their DevOps processes and learned that every organization is at a different level of maturity. Your systems of engagement can require small changes every day, but most teams realize that this requires improving their internal processes in order to achieve continuous delivery.
We see DevOps on Salesforce as a seven-stage process that is slightly different than the traditional model. Plan, Create, Package, and Verify are standard, but on salesforce, Deploy and Release to Users are two separate concepts. Since Metadata is deployable, there really is little need for a configuration step. Monitoring is something many companies leave to Salesforce, but there are areas where digital enterprises should focus on as well.
We have identified five distinct levels of DevOps Maturity. We believe understanding where your organization is today on this journey and what the next level looks like should help you determine next steps along the path.
Level 1: Select and Deploy
Changes are made in any org including production. These changes are selected ad-hoc in an environment and moved into another environment. This results in frequent overwrites and loss of work. Teams don’t have much of a quality process. As a result, organizations can only really manage 3-4 releases a year into production.
Level 2: Version Control
This level introduces external repositories as the source of truth. Branch management is a bit ad hoc and only works for developers and not admins. Organizations begin introducing manual quality control at this point, but still only able to achieve monthly releases.
Level 3: Agile Releases
The Agile Release Level is a good intermediate goal for most companies. In fact you should get here ASAP. Organizations are committed to the Agile Process and build release strategies around user stories and epics. Releases are small and on time. Validation and Apex Tests are enforced in all environments. Static Code Analysis replaces manual code reviews. Environments are kept up to date with back deployments. Deployments are still somewhat manual and accumulate in Pre-Production. Release to Prod is still a major event.
Level 4: Intelligent Automation
Level 4 is where your job starts to be fun again. Admins have joined developers using version control and scratch orgs using 3rd party tools that hide the complexity. Daily Releases and back deployments are automated all the way to Pre-Production. Release to Production is reliable and predictable, but still a manual step controlled by IT. Automated quality processes are in place and your organization is able to report on delivery metrics and business value delivery.
Level 5: Continuous Delivery
Which brings us to Nirvana; Continuous Delivery and Innovation all the way into Production. Achieving this level of automation not only requires full automation of quality gates, but also requires that Salesforce Apps are written the way Salesforce architects their service. Deploying all the way to production should not impact the users of the existing version. Releasing to users is orchestrated by the Business with timing based on their schedule.
While the most important aspect of DevOps maturity is your internal processes, you must work with a set of tools that can grow with you in your journey. Choose a vendor that lets you start at your current level but can grow with you to provide a complete solution for all stages and maturity levels. You don’t want your tools to be a point of friction in taking your organization to the next level.