技术
在很多人看来,客户管理系统(客户管理软件CRM)只不过是一项技术,仅此而已。如果你也曾持这种观点,那么你最好能够认识到客户管理系统(客户管理软件CRM)不仅是技术,更是工具,是助推器。但为了获取成功,它的开发必须与企业模型和业务流程协调一致。在此,我们将给出客户管理系统(客户管理软件CRM)应用程序和技术的一个概述。我们将在后面更深入地讨论如何选择一个适合你的企业的客户管理系统(客户管理软件CRM)应用程序。
1、客户管理系统(客户管理软件CRM)应用程序基础架构概述
实质上,客户管理系统(客户管理软件CRM)应用程序就是一个数据库,用户使用各种不同客户端,通过一个应用服务器与它进行交互。
客户管理系统(客户管理软件CRM)基础架构的复杂性将反映出企业的规模。较小的客户管理系统(客户管理软件CRM)实现可能只需使用一个物理服务器来同时充当服务器和数据库服务器。企业级客户管理系统(客户管理软件CRM)部署可能使用多台服务器来分摊大量用户负载,并提供冗余以避免系统宕机,而且它们的环境可能还会包含其他硬件组件,例如网络负载均衡器和专用的存储设备。咨询合作伙伴和IT团队应该共同协作,来预测客户管理系统(客户管理软件CRM)应用程序在企业中的使用率,并相应地设定基础架构的规模。当制定基础架构决策的时候应该考虑路线图,如果只把硬件设计成刚好满足试用用户的负载,那么当把程序部署到生产环境中的更大用户群时,肯定会遇到麻烦。
技术行业总体向着云计算发展,在这种趋势下,大多数领先的客户管理系统(客户管理软件CRM)应用程序供应商现在都将其产品作为“软件即服务”或“云”应用程序。在这种模式中,客户以订阅的形式来购买应用程序,并通过Internet访问。如果客户通过Web浏览器访问应用程序,则不需要安装任何软件。部署模式的选择(是传统的本地部署,还是“软件即服务”)取决于多种因素,包括长期成本、IT支持资源的可用性、存储的数据的敏感性、所需的定制和集成程度等。
生产、开发和测试环境
除了客户管理系统(客户管理软件CRM)的生产应用程序部署以外,你可能还需要运行一个或多个客户管理系统(客户管理软件CRM)应用程序,它们用于开发、测试和培训目的。
在最初启动客户管理系统(客户管理软件CRM)时,或者在项目进行过程中,当需求变得成熟时,你可能会发现需要为客户管理系统(客户管理软件CRM)应用程序开发自定义的组件,或许是添加新的特性,或许是与企业的其他业务系统进行集成。在生产环境中开发自定义组件是要冒巨大风险的,我们强烈反对这样做。它可能会影响生产用户,导致系统宕机或中断,还有可能会破坏数据。
彻底的测试是至关重要的,它可以确保新的自定义组件按照设计的方式工作,并且不会对现有的功能或流程造成不良影响。理想情况下,应该使用第三个客户管理系统(客户管理软件CRM)环境专门用于测试。这个环境在硬件、软件基础架构版本等方面,应该尽可能与生产环境匹配,以便我们能够确信在测试中功能正常的自定义组件在迁移到部署环境中也能很好的工作,这两项活动都不能在同一个环境中进行。测试人员需要一个稳定的、一致的、运行一组已知代码的环境,以便做好他们的工作。如果开发人员不断将新编写的代码插入到系统中,测试人员是无法工作的。
在较大型的企业中,持续的培训是一项重要的需求,很多企业都为培训设置了单独的环境。我们也曾见到过测试和培训共用一个环境的情况,但这可能会给学员造成混淆,因为他们可能在开发环境中看到了一些新特性,而这些特性在生产环境中尚不存在。
不管在客户管理系统(客户管理软件CRM)项目中管理多少个环境,都要花些时间弄清楚两个重要流程的步骤。
用产品环境中的数据来更新开发/测试环境。你需要定期(也许是两个开发项目之间)使开发和测试环境与生产环境保持同步,以便它们与产品环境相同。这样可以确保这些环境不会渐渐偏离生产环境,并且可以把更新后的数据引入环境中以帮助开发和测试。这个过程应该是用文档完好记录且可重复的,而且理想情况下不要太繁重。隐私权政策可能要求在开发和测试环境中省略或屏蔽生产环境中的某些数据(例如身份证号)。
将自定义组件从开发迁移到测试,再迁移到生产环境。自定义组件从开发到测试再到生产环境的迁移的“过程”和“技术”步骤应该记录下来,这是很有价值的。过程步骤可能被定义为开发方法的一部分,其中每个环境都有设定好的门槛和质量标准。用于迁移自定义组件的“技术”步骤根据客户管理系统(客户管理软件CRM)应用程序的不同而变化。
注意,根据客户管理系统(客户管理软件CRM)应用程序是如何部署的(是本地管理,还是采用了“软件即服务”形式),这些过程可能会截然不同,但不管部署模式怎样,都需要有非生产环境以及执行这两个过程的能力。
源代码控制
大多数客户管理系统(客户管理软件CRM)部署应该使用某种形式的源代码控制来管理配置和自定义组件。使用源代码控制可以带来很大的优势,而且开销并不像你想象的那么大。如果没有源代码控制,只要开发人员多于一个,对开发工作的管理就会很快陷入困境。源代码控制系统可以帮助非开发人员管理配置和自定义组件(通常有成百上千个小文件)的源代码,并且还有以下好处:
有助于防止或控制不同开发人员独自对相同文件进行更改所生成的冲突;
允许访问文件更改的历史,并且在必要时回到滚到先前的版本;
允许允许软件的多个版本,从而支持分支的开发并帮助隔离bug。
多家供应商提供了多种不同的源代码控制选项,其中包括一些健壮的,免费的开源应用程序。