Wanted to get few suggestions from the community regarding feature based branching strategy. We are a large healthcare company with fair bit of presence on Salesforce.com platform.
We currently follow one pipeline per release :
Dev -> Packaging (CI) -> SIT -> Hardening -> UAT -> Production
However, from SVN perspective, there is only one branch where all the code gets committed and changes pushed up the chain from single branch.
All developers share a common development ORG per release which is mapped to respective SVN branch.
This approach has resulted in ALL or NOTHING strategy where either we can go live or cannot if one feature is not fully accepted. Teams were forced to work relentless hours to ensure the release branch is stable and can be deployed to production.
To help untangle from this mess, we decided to switch to feature based development to help manage scope and bring more frequent releases, providing continuous value to the business. However, there is severe resistance from the development team to switch to this model. Couple of reasons that were given were
- Managing and maintaining individual sandboxes and keeping them in sync with each other is a big task
- There are too many manual deployment steps which need to be synced up with each individual sandbox
- How to resolve dependencies between features and how it is reflected in the respective sandboxes, too many merges which means way too much time going in to resolving merge conflicts
- How are features integrated and promoted up the environment chain ? Can the features be independently tested.
Also most of the development is not custom but leveraging Salesforce standard objects such as Account, Contact, Case, Opportunities etc... hence there is a lot of interdependencies between the stories which is complicating things for us. I am wondering if anyone in this group practices feature-based development with a similar setup like ours (Predominantly standard objects) and if you did, how did you go about doing it and whether you have used any tools or other mechanisms to help the development team address concerns I outlined above. I couldn't find any articles addressing this topic in detail for Salesforce.
Appreciate all your help.. and apologies for a long post...