AppExchange
Practices I discovered during AppExchange product development
Japan Dreamin’ 2020 (2020/01/25)
TeamSpirit Inc.
@a_kuratani


What to talk or not to talk about today
What to talk

AppExchange 

Important things in AppExchange development






Practices for developing a growing product


What not to talk



Best Practices


How to make products that sell a lot
#
Akira Kuratani / 

@a_kuratani
kuratani


TeamSpirit Inc.
Engineering Team / Director
Podcast(migration.fm)
me
AppExchange
Important things in AppExchange Development
Upgradeable
Upgradeable
Why?
AppExchange


If you provide the AppExchange application to a large number of users and continuously add
features, we need to minimize the upgrade effort so that users can use the new version.
Growing products


Generic Strategy
Upgradeable
Which development style is better?
Declarative development
or
Code development
or
Declarative development or Code development



 


 
 

or
Declarative development or Code development



 


 
 


 

Which development style is better?
Code development if provided continuously


What is upgradeable?
•


Which components of the managed package can be upgraded.


What is upgradeable?
•


Which components of the managed package can be upgraded.
ISV 

Peruse ISV Guide
Practices for developing a growing product
Salesforce
Salesforce
Should we use the Salesforce standard pages?
• 



Once the object is defined, the list page and detail page can be used immediately.
•


We can switch page layout by record type.
My Answer
Salesforce
Salesforce standard pages should not be used as much as possible.
My Answer
Salesforce 

Salesforce standard pages should not be used as much as possible.
Why?


Page layout is not upgradeable.
✕
My Answer
Salesforce 

Salesforce standard pages should not be used as much as possible.
How to do?
Visualforce 



Use upgradeable components such as Visualforce pages.


How to implement pick-lists?


How to implement pick-lists?
• 

Use picklist type
• 

Easy implementation
• 

Validation by item value
My Answer


Don't use pick-list type.
My Answer


Don't use pick-list type.
Why?
Cannot add / change / delete pick-list type item value of target organization when
upgrading.
✕
My Answer


Don't use pick-list type.
How to do?
1. 

Holds data in text type. Item values are managed separately.
2.


Use custom metadata type pick-lists.
3. 

Master manage.
My Answer


Don't use pick-list type.
How to do?





 




 
 


 
 



How to provide reports?


How to provide reports?
• 

Providing reports in managed packages
• 

Easy implementation
My Answer


Don’t include reports in managed packages.
My Answer


Don’t include reports in managed packages.
Why?
Reports cannot be upgraded.
✕
My Answer


Don’t include reports in managed packages.
How to do?
•


Provide only report type, not report
• 



Isolate managed packages that provide reports.
Conclusion
Conclusion
• AppExchange 





It is important to be “upgradeable” in AppExchange development.
• ISV 

Peruse the ISV guide while imagining operations.
Thank you
Practices I discovered during AppExchange product development

Japan dreamin' 2020 - AppExchangeプロダクト開発を続けて見えてきたプラクティス