我曾在实习过的企业中看见一种现象。一个百人体量的公司,仅办公系统就有三版,CRM 系统更是有四个之多。销售下单录入系统还要独立开来,互相调用数据。而入职时,随着业务体系的日渐庞杂,此公司才总算有了迁移新软件系统的打算。
随着工作的进行,我得到了部分公司系统的部分访问权限,仔细一看更是惊掉下巴。CRM 系统本身的运行速度并不快,但是数据条目的数量仍在合理范围。在会议中,我的得知 CRM 的数据实际上分布在几个不同的系统里,各种乱七八糟的数据通过中间件耦合在一起,速度自然会收到短板效应的影响。
细看 CRM 系统,正在使用的原生字段少之又少,基本上就是名字和联系方式。使用更多的是自定义的字段。而各 CRM 之间的字段名称、用户权限结构更不相同。这给迁移。带来了巨大的困难。
为什么开发之初没有考虑到系统的可扩展性?为什么在数据量未成体系的时候不选择迁移而要加一大堆中间件继续使用?
公司的管理层甚至想把订单查询集成到 CRM 里。而 CRM 并不是为了订单管理而存在而是客户管理而存在的软件。而负责开发的团队更是乐见其成,因为正是有了这样的系统复杂度,他们才有存在的价值。如果公司研发部的管理人对计算机系统的理解不流于表面,那么其公司的业务运转效率可以得到极大提高、开发团队规模则可以缩小至合理范围。
对于不同目的的软件,在设计之初应该有系统性的,数据颗粒度的设计。此公司的 CRM 名为 CRM,实则为披着 CRM 的框架的一锅乱炖。
的差异由此可见,需求与开发的平衡是一种艺术,最经济的状态是很难达到的,但是我们可以控制软件开发的大方向,在扩大规模的同时努力地保障软件系统运行的效率。