2

我们是一家 ISV,在 force.com 上完成了我们的第一个应用程序。这是一个类似 xRM 的应用程序,具有扩展的工作流程,可以构建复杂的活动(而不是简单的营销活动)并与本地软件集成。该平台带来了巨大的价值,同时也带来了一些挑战。对以下方面的其他 ISV 体验感兴趣:

  1. 应用程序升级过程。客户期望云应用升级“会发生”。现实情况是,不可避免的手动升级前和升级后步骤可能会填满许多页面。我们不想给客户带来负担,同时我们很乐意为客户做升级工作,但我们不希望访问客户数据和需要精心设计的安全保证具有该访问权限。一个难题。

  2. 开发环境。敏捷/scrum 开发依赖于实现完全的测试自动化和持续集成,但单元测试之外的完全自动化似乎很困难或不可能。

  3. 后台处理。对预定作业、标注和期货的限制,以及事务管理问题对传统软件开发提出了挑战。

好奇其他 ISV 发现了什么。

谢谢!

4

1 回答 1

4

我现在在我的第二个 Force.com ISV 工作,因此在平台上发布产品方面拥有相当丰富的经验(已经看到 4 个单独的产品发布,1 个包含 3 个版本发布,1 个包含另一个版本更新)。

  1. 如果可能,您应该尝试删除用户需要执行的任何安装前/安装后步骤。这听起来很难,而且确实如此,但这是人们不采用产品的最大原因。这个想法是,它安装起来既快速又容易,一键点击,任何额外的努力都会减损用户体验。确保您的系统与数据无关是解决您提到的数据安全问题的好方法,显然您可以提供咨询来进行升级工作。一个明智的想法可能是列出受产品安装影响的所有对象和字段,然后在安装前检查客户组织。我还要说,在沙盒中安装并进行几周的用户测试可以非常有效地突出您将来可能遇到的任何问题。
  2. 不可能发生单元测试之外的完全测试自动化是不正确的,实际上非常简单。关键是有必要的框架设置。因此,您将拥有一个存储代码的中央版本控制系统(关键的敏捷部分)。然后,您创建一个脚本,以便在提交代码时,它会在 SFDC 组织上运行安装,运行所有测试并返回报告。然后,您可以让此脚本运行一组 apex 类或上传一组 CSV 文件以将数据放入更完整的 apex 测试以运行功能或运行 selenium 以执行一组测试。然后,您还可以使用此测试数据和脚本为销售人员淘汰演示环境。
  3. 调速器和后台处理限制有点紧,但它们不断增加。也许你应该与 Heroku 或类似的集成来做一些更大的外部处理?我会说,虽然我认为它总体上提高了编程能力,让你思考你在做什么以及最好的方法。这会带来更愉快的最终用户体验。批处理 apex 作业是执行此处理的好方法,您可以使用 asyncapexjob 对象向用户报告运行状态。

希望对您有所帮助,并为您提供不同的视角!

保罗

于 2011-06-08T10:09:13.650 回答