模块化个性化交付
上一篇文章介绍了对于标准化产品,通过一键安装交付到客户环境,但对于大多数2B的软件交付场景,不同客户环境和需求都会有差异,个性化需求是常态,这些个性化需求增加了2B软件交付难度,那么又该如何提高个性化需求的交付的效率呢?
个性化交付的难点

对于企业产品交付,个性化程度越高,交付成本也就越高,交付的成本不仅有人力成本,还有时间成本,只有解决了个性化交付的效率问题,产品的利润率能大幅度提高,同时实现规模化交付。
个性化交付主要由交付环境的个性化和产品功能的个性化组成:
个性化环境面临的交付难题
-
基础设施个性化,适配难度大 不同客户提供的基础设施资源多种多样。私有化场景下,不同的客户有自己独有的基础设施,比如不同的硬件,有的客户拥有自建机房,有的采购了阿里云、华为云等这样的公有云服务。操作系统也是各有不同,例如在企业内部常见的操作系统有
CentOS/Redhat/Ubuntu/Debian/麒麟OS等等。对于CPU 架构来讲,有 x86 的服务器,也有 ARM 的服务器。不同的基础设施,软件都需要进行适配,提升了软件交付部门的工作量。 -
离线环境,交付效率极低 一些客户环境考虑到安全因素,不允许连接外网,导致软件交付后期维护难度极大。售后人员由于网络离线无法及时收取异常告警信息,需要用户收取到告警反馈给售后人员,可能由于技术的差异导致问题定位和修复过程不顺利。由于 离线,一些预期内的变更或升级需要出差客户现场,支持的成本比较高。
-
由于交付环境变化,测试工作量大 由于交付环境个性化,不能保证功能都能正常工作,所以部署完成后,为了保障交付质量会有测试验证的流程,对于自动化测试无法覆盖还需要人工手动回归来保障交付的环境质量。交付产品越复杂,测试验证也就会越复杂。
个性化功能需求面临的交付难题
-
缺少模块复用,定制开发后期维护困难 对于需要定制化开发的交付,通常基于现有代码直接修改,这种方式看起来复用了代码,但需要全量测试,而且每个客户一个分支,交付客户越多,管理会比较混乱,产品有新的版本需要花大力气给每个客户升级,在交付不同客户时开发的新功能,也不能快速积累到标准产品中。如果客户需要持续迭代,交付客户这个版本需要长期维护。
-
无法建立从开发环境到客户环境的持续交付流程 为了让产品满足客户的个性化使用效果,通常需要有一个持续迭代的过程,这个过程中,客户会经常反馈,修改完后也希望能快速看到效果,这对交付的敏捷性提出很高的挑战,如果无法达到客户时效性的要求,就需要驻场开发,驻场开发会耗费更多人力物力。