An Executive Guide to Salesforce Release Management.
When IT executives make a decision to standardize on a given platform, they choose the most effective and efficient platform to meet their business objectives. While every organization employs a variety of different criteria to select the platform, the key general tenets for choosing a platform are cost, risk and agility.
Cost: IT executives want to deliver the most business value at the least cost. Their role is to ensure that the applications are robust and are long-lasting to support the business through the entire lifecycle. Their goal is also to reduce the cost of supporting applications and ensuring that the applications are durable.
Risk: Customers are inclined to select platforms which have the most adoption from other organizations and from the development community. This ensures that the organization will be able to fund the developers to sustain the application over a long period of time and the cost to sustain the application will be much less. Also, they want to ensure that the platform meets the security and compliance needs as mandated by the business partners and the industry regulations.
Agility: “The only constant thing is change” is very true for IT organizations. IT executives have to deliver the new applications at a rapid pace so that the gap between the desired functionality and the capacity to deliver is minimal.
Salesforce is a fantastic platform to quickly build business applications on. It meets and exceeds many of the requirements for modern business applications. The rapid application development capability of the platform helps developers build applications in a fraction of the time compared to other platforms. Its “clicks, not code” approach helps roll out applications quickly. However, choosing the right platform is the first step in accomplishing the organizational goals.
It’s not sufficient to select the right platform. IT executives also have to create a culture to foster team work and lay the basic foundation on which the team can collaboratively execute to meet the business objectives. This platform should ensure that there is transparency and visibility amongst the various team members so that they can churn out applications faster without sacrificing the quality of the deliverables.
These are some of the challenges experienced by those who are responsible for managing Salesforce:
Governance: Most Salesforce customers have very defined roles and responsibilities for the various team members, and the responsibilities are delineated amongst different team members. However, most customers do not have systems and applications to comply with these policies and ensure the separation of duties. Many times this leads to a failure in governance since the actions are not tracked between the various team members. For example, when code is deployed, it’s a challenge to keep track of who deployed the code, which developer was responsible for making the changes, when were the changes made, if the changes were tested and approved by an IT executive, and if the complete testing had been done after modifying the production system.
IT executives need help in implementing effective operating models to manage technology risk. They need systems to better understand the true business impact of risks arising from an organization’s dependence on technology.
Developer productivity: Developers don’t have enough tools to perform all their release management functions. The native tools provided by Salesforce are not enough to constitute a complete change management solution. Developers have to manually make the changes during release management. For example, they don’t have tools to compare the different development organizations. They have to guess the changes that they have made to the production organization, and they have to manually keep track of the changes they made for a particular feature in the development organization.
Also, it is hard to deploy changes from one organization to another organization. Hence, there are not enough “dry runs” before the code is actually deployed into the production organization. This is mainly because all the code changes are done manually by developers. Salesforce does not offer a “clicks, not code” approach to these problems.
Also, developers don’t have enough tools to see the different development organizations. For example, if a developer wants to share his latest code changes with another developer, he has to do this manually. Salesforce does not offer tools to automate this entire process.
More business value delivered/Agility: Salesforce is a rapid application development platform. It offers “clicks, not code” approach to roll out applications quickly. This makes the platform easy to build on, but it hard to deploy applications on it. It is very well known in the industry that release management is one of the biggest pain points of using the Salesforce platform.
Shadow IT: Business users also want to make changes themselves to the Salesforce platform. Business users have heard from their colleagues that all the changes can be done declaratively on the platform. For example, it is really easy to add fields to the objects, and add those new fields to the pages, create reports and workflows on these new fields.
However, this introduces various problems. The number of users making changes to the same “code artifacts” increases exponentially. This introduces “too many cooks in the kitchen” kind of a problem. Even with a small IT team, developers constantly overwrite each other’s changes. As we allow more business users to make changes to the underlying platform, the probability of stepping over each others’ toes increases exponentially. This requires that customers create a central IT organization which orchestrates and manages the changes amongst the various business users as well as IT developers.
This highlights that organizations need to have a solution where they can keep track of what changes were made and who made those changes, and have a central platform to orchestrate those changes into the production organization. It is very necessary to avoid conflicts as well as avoid stepping over each other’s toes.
Enterprise collaboration: Business users have applications to track end-to-end business processes. For example, all the customer activities are tracked — from lead to opportunity, opportunity to quote, and finally from order to cash — in a CRM & ERP solution. This helps the business to keep track of the customer’s position in the buying process.
Similarly, developers need a solution to keep track of the centralized intakes from the various business teams, prioritize the requirements, assign those different requirements to different developers and finally deliver the requirements to the production environment. However, most organizations have to do this task manually. Most customers typically use a spreadsheet to keep track of the various requirements from the business teams and track the delivery of these requirements to the production organization.
Improve software quality: Today, most Salesforce customers do not have a version control system. This leads to many different issues. For example, developers are constantly over writing each other’s code and developers do not know what code was last deployed to an organization.
Management of multiple releases: Most developers work on multiple releases and issues at the same time. For example, they may be working on a hot fix in the production environment as well as working on the new feature that is acquired by the VP of sales. In such a case, they need to work on two separate code lines at the same time.
The developer cannot co-mingle the code from both the code lines. Also, the timeline to deliver both of these requirements may be very different. For example, the hotfix may need to be delivered in the next 24 hours, and the new feature may be may not be due for the next 15 days. Developers need a solution to manage multiple releases and not co-mingle the code for different requirements.
Compliance: Most customers spend a lot of time in ensuring that the Salesforce platform meets the compliance needs. Some customers have to adhere to industry regulations while others operate in a very regulated ecosystem. Salesforce is fantastic at meeting and exceeding these compliance needs. For example, it fully complies with the HIPAA regulations for the life sciences and health care industry, as well as it complies with the industry regulations for the financial services sector. Salesforce is also very compliant for federal certifications.
It is imperative that any customer who has done a lot of due diligence on choosing a compliant platform for the business needs must also have a change management solution which is equally compliant.
Flosum helps promote transparency between the various team members. Flosum helps to deliver applications faster, improves developer productivity as well as improves the code quality. Flosum is completely built for the Salesforce platform, and it is built on the Salesforce platform. It is a “clicks, not code” solution to change management for the Salesforce platform. It automates the manual tasks that are done by the developers and it improves application throughput. It makes the entire change management process transparent, predictable, repeatable and consistent as per the business policies of the organization. It helps to improve governance and compliance for the organization and it helps reduce the cost of governance and audits.