是个研发人员都知道通用化,通用化是提升复用能力的重要手段。
通用化有没有止境,通用化的边界在哪里,本文就该话题进行讨论。
如上图所示,系统通用化,按照由简到繁的过程,可以分成3个阶段:
阶段???????? | 优点 | 缺点 |
阶段2 | 1、实现难度低 2、能保证基础功能稳定,与业务隔离 3、业务定制灵活,响应效率高 4、团队内部闭环:业务开发,基本上自己团队就能搞定,降低沟通成本 | 系统间无法复用 |
阶段3 | 1、业务中台层稳定 2、业务定制效率、质量高 | 1、需要保证业务稳定,业务中台稳定。 2、团队内部无法闭环,每次需求需要多个团队参与,增加沟通协调成本 3、业务中台团队会成为瓶颈,业务需求串行排队 4、不支持系统个性化诉求 |
分层。
把通用功能进行拆分,单独抽取出来形成基础功能层。
在基础功能层上构建业务实现。
业务实现根据领域、功能进行模块划分。
整个过程,基本上研发人员就能搞定,不需要业务介入。
阶段3涉及到多个系统通用功能的抽象,与业务紧密关联。
图1 的情况下,需求的差异在缩小,需求相似度在增加,这样的情况下,实现业务中台就水到渠成。
图2 的情况下,业务需求差异越来越大,实现业务中台的可能性及收益就非常小。
所以,实现业务中台的第一个条件是:多个系统的业务需求向着一致性发展。
不能仅仅看到两个系统都有产品、授信、融资,就认为两个系统是类似的。而是要了解每个需求的细节、业务流程再下结论。
假设第一个条件满足了,接下来就是研发如何对系统进行抽象,使业务中台能支持各个系统的个性化需求了。这个抽象过程,对研发人员的要求很高,与做一个系统不一样,业务中台需要足够通用、足够抽象,能满足多个系统的要求,所以如果一个系统都搞不定的研发人员,不用期待着能做出业务中台来。
所以做中台的人,既要求对每个业务系统的需求深刻理解,又需要有高超的抽象能力,如果没有这样的人才,那还是等一等吧。
第三个点,业务中台是需要随着业务发展不断优化的,优化过程中需要考虑对当前各个系统的兼容情况,难度也是比较大的。
通过第4节的分析可以看到,阶段2投入少,对业务人员、研发人员要求较低,投入产出比较高。
阶段3实现难度较大,需要业务、研发人员紧密配合,并具备高超的专业素养,才有可能做到。
其实,也可以看看周边,有哪些公司实现了业务中台就明白了。
普通公司建议阶段2上进行强化就够了。
阶段3更适合超级公司。