In this blog I will be writing down some of my AppExchange development checklist while developing an application for various. AppExchange is the Salesforce center on which one can launch their own salesforce Application. Appexchange is the hub of thousands of application where Salesforce users can reach out to various paid and free applications as per their need. Appexchange helps more than 2000 Independent Software Vendors (ISVs) to reach more that 120,000 Salesforce.com customers offering applications that either extend Salesforce.com CRM functionality or provide a solution entirely different from Salesforce CRM. While developing an Application in salesforce I have always used the following checklist.
- Brainstorm an application idea: The application idea which is fresh and new on the platform and had some awesome features which will enhance the user experience or Salesforce as a CRM
- Background study: Make sure that you are not reinventing the wheel. Appexchange is already hosting several apps and have many applications with repetitive ideas. Applications trying to do the same thing in a better way is still appreciated but do make sure that your application is way better than the existing solutions. Believing in yourself is good but its always great to have a round of random feedback on the Application ideas before you plan to develop them. Paid or Free should be a decision which cannot be easily taken by small vendors since releasing a Paid application on Appexchange may need initial cost/fee of $2700. You can always come up with a free basic version initially and then once you application is hit then a more complex and Paid version.
- User Scenario: Make sure that all the User scenarios are very well thought of and does not leave any loose ends. When the purpose of the application is defined clearly still there may be a chance when some scenarios may have not thought of clearly.
- Salesforce Editions: Applications published on Appexchange can be easily installed on Developer edition, Unlimited edition, Enterprise edition. An application when being developed needs to be very certain that on which of the salesforce flavours(Editions) it can be installed. Developing an application for profession edition may require an extra step of creating Aloha app and testing them in Profession Edition before release.
- Plan the Development: Several small size utility tool type application can be developed straight from the idea and may not need a development plan but the applications having some wizard of pages may need a phase wise release cycle.
- Configuration: Make sure which all features in the application can configurable and which can be fixed is a tricky decision. Think wearing a User hat. Making your application configurable will need Application configuration page or set of Custom settings being defined by Administrator.
- Develop: While developing applications in salesforce a developer will need the same set of Do’s and Don’ts as in ideal salesforce developing phase. Code should be refactored, peer review should be done and need to follow the best practices in salesforce.
- Dirty Code: Make sure your application is doing only those stuff which it is supposed to do. While writing triggers extra care should be take that the business logic is being executed only when certain is coming in place. No where any piece of code should be left which does not have a collective purpose.
- Basic Testing: can be done in the development org itself. Salesforce will request developers to have a separate developer org designated for testing. Make sure that no matter how complex a Salesforce Org can be configured but still your application will not get affected.
- Aloha App Testing: Applications can be installed and tested on profession edition once it is Aloha enabled. To get your application Aloha enabled you will have to submit a request from your Salesforce partner licence.
- Rigorous Testing: Make sure all the testing best practices were followed while testing the application. Triggers must be tested for bulkification, Web services must be tested for heavy usage, Visual force pages, etc all the features and components in the package must be tested in a detailed fashion.
- Submit for Checkmarx: Security review is must for all the applications to be published in AppExchange. Checkmarx make sure that best practices in coding conventions are being followed.
- Submit for App Review: Always submit for App Review when you are absolutely sure that your application is bug free and you have all the explanations to defend the functionalities of your app. This is a lengthy process and might take 6-8 weeks. So do test the application end to end before submitting for review.
- Relax: Now you have 8 weeks to work on something else. 🙂
- Content: To publish an application on AppExchange one must have the Application Logo created in various resolution, Banners, screenshots, User installation guide, Application User guide, brief description, etc. These all content will be read and observed by your end users who will install your application from Appexchange so make sure they are attractive have precise and clear information.
Many times it may be required that your application will need some tweaks and maintenance. Once some of the necessary change request are submitted by various app reviews and user experience then it’s always good to develop them and let the users know about it in advance. Communication is key when you are connecting with end users. Make sure that a new release should always be better than the old one.