Even before you start coding and materializing your fabulous app out of thin air, or computer air, it is very important to establish a development lifecycle. Every software developer knows that and every experienced one spends quite a lot of time making sure the lifecycle is fast, secure, foolproof, and most importantly produces a product that works better than envisioned. This optimization led to many different types of approaches to software development like waterfall model, agile development model etc. However each project and business requirement requires a little tweak to the standard approach. Salesforce development lifecycle is therefore nothing out of standard books. The basic premise is the same as the cloud based environment creates some differences than normal software development cycles.
In this post we would be talking about how a professional firm like Algoworks goes about completing their Salesforce projects for its clients. Each project that we are going to talk about involve multiple developers working in parallel on multiple modules. Now before we continue, I would like to clarify that the whole process of Salesforce development life cycle involves, but is not limited to, performing simultaneous development in Salesforce, integrating work of different developers, testing modules and integrated product, handing over the final product, and if the product requires it preparing and handing over marketing material as well.
Salesforce Development Lifecycle Process
Typical Development Lifecycle
The typical development lifecycle of a Salesforce project development involves following steps:
- Feature development in Sandbox
- Feature Testing in Sandbox
- Feature integration in Sandbox
- Developing unmanaged package Sandbox environment
- Developing final deployment package in Sandbox
- Deploying code on production
- Integration testing
- Final Package Release
- Deploying final package on different salesforce editions
- Final salesforce edition testing
Of course at each testing step, if the code fails, it goes back to development step!
Lifecycle For an AppExchange App Development Project
For developing an app that has to be published on AppExchange, the lifecycle becomes a little different and becomes more involved. For a project that targets end users, the feedback of the users also becomes a reason to go back to the developing steps. So a typical AppExchange Salesforce App Development Life Cycle includes the following steps:
- Planning features and development strategy
- Follow the project development steps mentioned above
- Send your app to Salesforce.com for testing
- After Salesforce tests and okay’s the App, we leverage ISVforce for trail management
- We execute business strategies to promote and market our App
- Provide support to app
- Redevelop version (n+1).x based on customer feedback
Deploying App on Salesforce is also a multi-step process. First you would have to get your app approved by Salesforce.com itself. Salesforce.com accepts three basic type of apps and their review strategy is defined by app types. The app types are:
- UnManaged Package Salesforce App: – They are unmanaged packages i.e. they are like open source package of code. These usually target Salesforce developers who have some understanding about coding. Salesforce.com typically takes no time in approving these types of apps and charges nothing for the approval process.
- Managed Package Free Salesforce App: – Final plug-and-play free Salesforce apps. They are targeted at general Salesforce users and requires minimum to no coding to setup. The main point here is that the app would be available for free-to-use and download by any company or user. Like our Algoworks Opportunity Manager App(or AWOM), Salesforce.com typically takes 20-25 days for reviewing these apps and charges nothing for renewing.
- Managed Package Paid Salesforce App:- Final plug-and-play paid Salesforce apps. They are targeted at general Salesforce users as well as enterprises who have resources to pay for the app. These apps are usually feature rich and are available in one-time-payment or subscription-based-payment model and requires minimum to no coding to setup. They are available for download after paying a fee and the fee is charged for per user basis. Salesforce.com typically takes 1-1.5 months for reviewing these apps and charges a fee in the range of $2700 for reviewing the app. In addition Salesforce.com charges 20% of every licence sold.
In app development lifecycle for Salesforce you don’t have to worry about executing trail runs, or personally deploying app on AppExchange, Salesforce.com does it for you. Salesforce.com also helps you in setting up of the licence payments. You don’t have to setup any platform from yourself to get receive payment from end-users, Salesforce.com does it for you.
What you have to do by yourself is marketing the app and setting up customer support for the app. For marketing purposes you can aim for getting more reviews and ratings on AppExchange pages where we do provide free consultation.
A Detailed Life Cycle involving Actors
Now when we say everything in such a simple way it seems quite easy- very easy in fact. But in actuality the process is complex at every step. I will work on another post which will detail each step and the involvement of actors in each step. I will also discuss how each actor performs their task and how the assembly line of a typical Salesforce app looks like. So stay tuned for more.