企业软件产业是由供应商、客户和第三方共同构成的。而为公司可以提供数字化能力的,包括提供标准能力的产品化软件、提供定制开发服务和人力外包的软件服务商,以及客户的IT自研团队。
离散式的应用系统,是按照使用者的需求量身定做的软件。其中有规模较大的一整套定制化系统,也有规模比较小的烟囱式独立模块。
为满足个性化需求做出来的系统,随义务规模扩大和需求不断调整,会逐渐暴露出很多问题。增加的补丁和新功能也会对系统的安全性、稳定性持续产生冲击,最终系统烂到难以为继了,只好推倒重来。
尤其进入到大数据时代后,离散式系统产生的数据缺乏标准化设计,想打通数据孤岛就要去做数据治理,系统改造周期长、成本高。
后来者可以站在上帝视角批判以离散模式系统存在的系统的很多问题;但这种模式也有其优势,有适合的场景。
对于初创型企业,或者成熟企业里的创新业务来说,往往需要以试错的方式,利用有限的时间窗口进行快速探索。
在此阶段,需求是在不断迭代中持续完善的,甚至朝令夕改反复调整。需求不固化,应用系统缺乏稳定的运行环境,可靠性稳定性等指标不会好看;但对新需求的响应速度,变更内容的上线速度,是这个阶段评判系统优劣最重要的因素。
在这个阶段,负责应用软件系统的人说这样做不行,那样做不符合规定标准,做个变更要一年多,你看业务部门和公司领导会不会打你。
顾名思义,集中式指的是多个使用者共用同一套系统和平台,或者说不同的使用者使用相同的功能。所以集中式还有个变形版本,就是使用标准无定制的产品化软件,一样也是为不同使用者提供完全一样的功能。
集中式应用系统具备规模效益。规模越大,成本越低,且边际成本递减,是供给侧最希望看到的。
集中式应用系统还有一个好处,就是软件能统一升级迭代,即便某个使用者自己没有提需求,只要完成了系统更新升级,就可以具备最先进的能力。
无论是集中部署的系统,还是产品化的软件,更新迭代多由供给侧发起。新技术的引入、架构设计的优化、增加调整哪些功能,都要统筹考虑。尤其对功能做调整,不会满足全部客户的需求,而是对各处反馈的信息进行梳理和评估,最终形成的研发需求。
如果是小众客户的需求,或者经过评估之后认为不足以纳入新版本了,就从另一方面代表着需求被拒绝。而这,对于产品化供应商来说,并不是什么了不得的大事。
即便这个需求被采纳,那么按照产品研发的流程计划,要完成需求分析、概要设计、详细设计、编码、测试等一系列规范性动作,才能交付出去。而交付完的软件,其安装和适配改造也需要一些时间。这一串工作做下来,是不是得几个月?
要知道,这还是理想状态。在真实的操作的时候,还可能被各种各样的因素干扰,或者必须增加一些环节,导致周期更长。
有没有可能因为某个客户着急,先把重要的功能做出来让客户用?对不起,产品化软件是不允许这么瞎搞的!
至于别的问题,比如在一个软件包里存在很多客户不需要的功能,但在客户购买的时候依然要为其付费;并要提供与之相配的冗余硬件设施,抬高了硬件成本和经营成本等。多花点儿钱就能搞定的,相对来说只是小问题。
所以,集中式适合部署在成熟的、需求相对固化的、规模化的企业,尤其对那些试图借助软件系统提升管控能力的企业来说,借助产品化软件和集中化部署来消除各种差异化和特殊现象。
如何让客户的真实需求收敛,避免提出个性化开发任务,这是令供应商头疼不已的难题。而在集中式体系里,个性化需求有可能靠客户利用行政手段强行压制。
当企业处于稳定运转状态时,希望能够通过实施精细化管理来提升效益,因此有意愿压缩各层级灵活操作的空间。此时采取集中式来优化管理,借产品化之力统一思想和行动,企业在实现权力集中的同时,也推进了内部降本增效工作。
组合式,就是由不同的软件、系统和模块组合在一起,向企业客户提供其需要的能力。
组合方式也可以细分成两类:一类是产品化软件和定制化开发的组合;另一类将各种产品化软件和模块组合在一起形成能力。
相对于集中式,组合式更能实现用户的个性化需求;而相对于离散式,组合式里有产品化的内容。所以说组合式兼顾了产品的标准化和定制的个性化,兼顾了服务的灵活性和产品的稳定性,大家各司其职,发挥各自的优势,反正最后有定制化服务守底线,总能搞定的。
每个产品化软件提供的功能都是有限的,如果大量的功能需要服务厂商来做,那还不如全做定制,这样还能省点儿接口适配和集成的活儿。
所以同样是实现用户个性化需求,组合模式会比单纯的定制化服务成本更高、资源要求更高、开发周期更长。
其次,组合模式需要多厂商协同,无论是产品+服务,还是产品直接组合,都一样。
无论是在系统建设过程中,还是在运行时发生故障,都可能涉及不同厂商的责任界定、能力确认、利益分配的问题。
对好做的能拿钱的功能就抢,对不好做纯付出的事情就躲,技术问题被扯来扯去,简单问题复杂化了。
再有,如果产品的可配置项比较多,或者软件能力是由多个产品组合而成的,可能会引起配置的工作过于复杂,甚至超出了配置人员的能力。
曾经在一个项目里,看到负责进行产品配置的是个非常高职级的研发人员,因为这些工作除了他,别人搞不定。
这都不是最可怕的。每套组合式系统里,各个厂商都有自己的产品演进策略,有产品端下发的升级时间进度表,当出现矛盾和冲突的时候,协调难度往往非常大。
先要分析升级可能涉及的内容,再评估对现有各组成部分的影响,制定调整方案后去实施,搞不好几乎就是把系统重新做一遍。
展望未来,各行各业的数字化程度必然会慢慢的高,企业是攻还是守,是求变还是求治,都需要企业软件的支撑和配合。
企业在不同发展阶段,对数字化能力的要求是不一样的,部署模式也需要随之调整。
我认为:企业软件的能力组成模式没有唯一的标准答案。数字化能力要适合企业的发展状态,每类存在模式都有其合理性。
总体来说,组合式是企业兼顾稳定与创新的最佳选择:成熟的产品化软件稳定输出,提供有边界的能力;创新则通过产品组合或者定制开发来实现。
但如果客户的需求完全能被产品化软件支撑,或者使用者比较被动、只可以使用有限的功能,那么最好用的就是集中式。
而如果客户的需求无法固化,经常变动,尤其在规模不大的时候,离散式的模式挺好的。
核心在于:企业软件不能被动地限制企业未来的发展,而是要主动地帮助和支持企业成长。
企业运营阶段追求减少相关成本、稳定可靠;而遇到创新和突破的机会,就要采取积极的应对态度。
当需要对数字化能力进行大幅度变更时,可以先用离散式的方式,用独立的系统去试错;待需求稳定后,再研究纳入其实现的最佳方式。
循环往复,在变化中找机会。所以我认为,企业应该在这样的一个过程中,逐渐培养自己的IT能力,将产品组合配置、定制化开发、系统集成这些工作承担起来。