我的组织正处于获取CRM 4.0的最后阶段,用作通用软件开发平台。向我们销售产品的公司已经说服了高层管理人员,CRM将解决我们所有的生产力问题,并使软件开发像点击一样简单。 (他们不读布鲁克斯。)
由于我不能阻止CRM被强加给我们的开发人员这一事实,我一直在研究如何管理大规模CRM开发的复杂性。
到目前为止,我发现了以下需要解决的复杂问题:
构建大型CRM应用程序时,我必须考虑哪些其他复杂因素?
CRM作为开发平台有哪些限制?
修改:topic提供了额外的见解。
答案 0 :(得分:5)
我使用的是MS CRM 3.0,现在是4.0,这是我的看法:
尽可能关注标准的最佳做法。不要过分担心CRM正在做什么或希望你做什么。
不要害怕打破MS“支持”的内容。关于两个主要因素的一些注意事项 - 贵公司是否会让您开箱即用以解决问题并进行非官方支持的定制/集成? - 你是否对.Net,SQL,javascript等感到满意,以编织代码并实现你需要的东西?
我有时会让我头疼100次尝试以“支持”的方式做某事,在这里对js文件进行一次小调整或者在那里进行小的数据库修改后,我就得到了我需要的东西。
如果与其他LOB应用程序的持续数据集成至关重要,您应该考虑像Scribe(http://www.scribesoft.com/)这样的第三方工具。它并不便宜,但在与其他LOB应用程序集成时,基本上可以获得90%的支持。
作为一般规则,MS CRM非常适合联系人管理 - 执行跟踪约会,进行邮件合并等操作。您是否可以将其用作核心人力资源系统?财务系统 - 可能有点困难。您可以进一步了解其执行联系人管理的核心能力,您需要做的定制工作越多。如果MS CRM是解决该问题的正确解决方案,您需要做的定制工作越多,您应该考虑的越多。
答案 1 :(得分:4)
我知道您可能正在进行Dynamics CRM的部署,但只是一些快速提示:
我完全避免进行不受支持的更改,因为最终很难跟踪更改。由于Dynamics CRM允许开发人员制作C#插件并访问Web服务,因此通常不必对任何非平凡的事情进行不受支持的更改。另外,如果你必须打电话给他们的支持,你必须隐藏MS的变化。我知道很多人会包含外部javascript文件(jquery等)以及其他有些良性的变化,但是当不受支持的编辑涉及任何非可视化时,请尝试在精神上停止自己。
查看Microsoft Dynamics Xrm这一短语,有几本关于这个主题的书非常出色,http://www.thecrmbook.com/特别好,因为它附带了一些很好的自定义代码可用于您的CRM。
来源控制您的自定义xml并且不要让人们触摸数据库,Google Halan CRM工具,并使用它来编写CRM自定义和javascript文件的脚本。比编写自定义PowerShell脚本更容易做同样的工作。
答案 2 :(得分:2)
交易支持
如果您的应用程序需要来自底层平台的事务支持,则Dynamics CRM不是正确的选择。原因是目前Dynamics CRM SDK Web服务不支持事务。
参考线程在这里:Does MSCRM web-service support database transactions?
由于您希望将Dynamics CRM用作平台,这意味着所有业务逻辑都应将Dynamics CRM SDK Web服务用作数据访问层。但是想象一下,如果没有事务支持,并且您将一系列Web服务调用作为一个工作单元调用,并且其中一个Web服务调用失败。这意味着您可能会遇到数据完整性问题。
<强>配置强>
通常我会创建一个名为Configuration的自定义实体,它将存储当前CRM应用程序的所有必要相关配置。创建后,您可以使用Dynamics CRM SDK Web服务从配置自定义实体
中读取所有必要的配置