Intranet Product For AppExchange
Salesforce AppExchange , “the world’s longest-running and largest business apps marketplace” recently Surpasses Milestone of 4 Million Installs. It’s a proven ecosystem of apps, with millions of installs and thousands of customer reviews to help Salesforce users find the best match for their business. Whether you’re looking for applications to accelerate internal implementations or looking to grow your business by selling apps or components to other customers, the AppExchange can help you go faster.
About the client:
Client is one of the Salesforce Platinum Cloud Alliance Partners. Who deals with end-to-end implementation of salesforce.com products and have several AppExchange products.
Way before the community concept arrived, Client wanted to build an Intranet solution which could be targeted to multiple end customers in a customizable fashion based on their needs. Though, Intranet objectives/purposes ‘are’ more or less same for all customers with collaboration as main requirement but still customers want to customize it for their branding and different use cases.
So creating such a generic solution which could be published on AppexChange but still have the potential of enduring customers’ customization was the need.
- Doing a background stuff and releasing the product on Appexchange.
- As any product needs to be continuously evolved to sustain in market and address the growing customers’ demands, this in turn demands the robust SDLC system.
- Designing a data model and interfaces in such a way which produces highly customizable and loosely coupled modules/components/widgets.
- Addressing the special needs. The customer who has installed the product from AppexChange and need certain customization before the next planned release of product.
- Tracking all updates and releases for auditing purpose.
Releasing the package on AppExchange and releasing its subsequent versions are not that challenging because of our previous experiences. Preparing the package till that stage requires code updates for fixtures on Security Review report. That’s an easier step as we have done it plenty of time 🙂
To build such a product which could address most of the common needs of Intranet application, we built several great widgets to pick from and even given a platform to create new ones to fit customers’ needs. We used dynamic components approach of Apex and event broadcasting mechanism to support the loose coupling among widgets.
Product building usually involves big team, which has many developers and QA. Giving developers the freedom to build independently without affecting each other’s functionality and still allowing QA team to test the application in a defined interval, we used a technique of continuous integration which comprises of multiple Salesforce orgs, Bitbucket account and scheduled Jenkins job. This generates a highly sustainable, less error prone system to create product releases and test them effectively.
Additional fact: Adding a namespace before moving the codes into packaging org was also done by script.
To deal with special and urgent request of customers, we used a patch release, this allows us to isolate special requests/updates to be a part of core package and at the same time customer gets the forked version on demand.
To have the release planning, we use Atlassian Jira as tool where we do all sprint planning and manage backlogs along with release information in its wiki.
- Date: 07 October, 2016
- Client: A reputed Salesforce ISV