中国B端软件业最缺的是什么人才?


架构设计上中国人似乎总是短板,无论是企业软件,还是实际社会生活的方方面面,几乎都缺乏架构设计的概念。

来源  /   战略人才盘点  (ID:gh_480b198cb129)  

作者 /   程时旭  



经常有人问,中国B2B软件巨头为啥老也起不来?

还有人问,字节跳动的B端软件为什么要从协作文档处理以及OKR理念落地入手,而不是直接切入ERP企业核心软件。

平安一个没有成功的HR产品HRX 1.0,为什么不做核心人力资源和薪酬,HRX 2.0才做?芯片设计工具EDA (Electronic Design Automation)为什么中国不自己开发?还要依赖于新思科技Synopsys、楷登电子Cadence和西门子EDASiemens EDA三大巨头?

上述的那些软件究竟有多难?内行人知道,不亚于CPU、GPU以及手机SOC芯片。

我在清华大学经管学院的老师吴贵生教授的分析,专门研究技术创新体系,发现美国人擅长系统架构,因此擅长做高度复杂的系统,比如CPU、大飞机、宇航系统等,日本人、德国人长于细节思维和工匠精神,因此在汽车、机床、手表这类精密仪器领域胜出,而中国人介于他们之间。这么分析也蛮有道理。当然每个国家的人还是不断进化的。

我的发现是中国人于细节思维和关系建设,对于基础软件研发投入少,尤其是软件里最核心的顶级架构设计师短缺。


ps:微信公众号又改版了……为防止失联,请大家把我们设为星标????,否则可能无法再收到我们的推送。

点击下图即可三步完成星标

·


·







一个大型软件,如果只给一家客户用,比如淘宝、京东这样的平台,那么很多的政策和功能配置可以用硬代码写进程序,但企业级软件需要给最多达上万十几万家企业使用(比如用友U8、BIP,金蝶K3、苍穹,SAP R3,ORACLE FUSION等) ,则需要有强大的体系和架构的设计,适应不用业务结构,不同组织架构、流程和政策,同时组织架构、流程和政策在时间维度上还经常变化的场景。

架构设计上中国人似乎总是短板,无论是企业软件,还是实际社会生活的方方面面,几乎都缺乏架构设计的概念。

架构按照软件工程的分类,划分为数据架构、应用架构和技术架构。从实践来看,数据架构和应用架构的差距更大。


数据架构比如人员模型、组织模型、职位模型等等,一个大型系统,需要大师工匠级的设计。下图是PeopleSoft最基础的数据架构:


我在2000年接触HR软件,到2005年在用友做e-HR大产品经理,几乎解剖了所有的HR系统。西方软件在工具细节上,比如报表和查询设计,界面易用性等方面,确实比不过中国,但从架构上,彻底压倒我们。

我去用友的时候,因为以前做用友NC HR系统实施的原因,了解里面很多架构问题。当时做产品经理的第一个问题,是要不要动架构?

产品经理当然要和设计师、需求分析师、开发经理们一起开会。很多人说不动,因为怕万一系统崩溃到时候开发不出来怎么办。但由于两个核心设计师毕思建、李文海都不是老用友人的缘故,他们都支持动架构的决定。

当然最后那个版本完美交付,就是用友e-HR历史上一个里程碑式的产品:3.0版,以后3.5、5.0基本都是当时架构和功能规划的延续。

在当时所有e-HR软件里,架构最好的当属PeopleSoft HCM。用友NC HR 3.0版本的很多设计,都是在我作为产品经理的推动下,两位主设计师主导学习和复制PeopleSoft的,比如多分配(Multi-Assignments),统一人员模型(Person Model),人才概要(Talent Profile),以及绩效管理的诸多设计。

但还是由于当时的能力限制,很多功能比如基于SETID的代码过滤机制,以及数据集权限,关系到当时的UAP(用友当时针对大型集团企业版本的基础开发平台)基础架构变动,所以放弃做。其他比如薪酬回溯,组织架构历史重现和版本保存,等等,由于设计难度太大,当时都没有做出来。

后来2008年中我加入甲骨文中国HCM团队,到2014年底离开,六年半的时间推广甲骨文的旗舰产品PeopleSoft HCM,深感技术界国人对于应用架构的无知。

比如2013年8月6日,我发了一条微博,主要内容是腾讯PeopleSoft系统上线。结果引起以阿里Fenng(冯大辉)、子柳等一帮技术人员的群起嘲讽,当时阿里巴巴也在使用PeopleSoft。


当时的“CIO之友”是这么报道的:“腾讯PeopleSoft系统正式上线,引爆网友质疑其系统易用性”。报道的部分内容如下:


大部分做互联网C端软件的人员,根本不知道B端软件架构的复杂性,尤其是对于可配置的要求,而是盲目的把易用性放在唯一重要的位置。

很多时候,谁不愿意设计简单易用的产品呢?但是B端软件的复杂性以及可配置要求,又极大限制了产品的易用。软件架构设计,就是这两者的平衡。

这些B端软件的复杂性在于:

1. 权限控制,很多信息只有特定人群才能浏览。

2. 软件流程需要不断适应政策变化,因此可配置性特别重要,因为假如你的软件只有一家公司使用,比如淘宝平台的话,可以直接把政策在软件里做成硬编码,但是对于几万家企业使用的企业级软件,这么做对后面的产品维护无异于自杀。

3. 时间轴上历史记录保存和重现的重要。

4. 其他B端软件的架构复杂性等等。

这些复杂性是做C端平台软件的人很难体会到的。

后来PeopleSoft在不同的公司分别进化成为不同的产品形态,比如Workday,Oracle Fusion HCM Cloud。

我在2014年又接触到Taleo——一款被甲骨文收购的云招聘软件。接触之初,就惊讶于它架构设计的简洁,包括组织、权限体系等,做了最大限度的简化,但是很实用。

一个组织,和一个产品一样,都有架构问题。能否持续经营,永葆健康活力,要靠领导团队尤其是核心领导人的决心和勇气。

一套软件,架构的落后,使得后来者几乎没有改进的可能。这个道理跟大厦建成了你去动地基是一样的。那么庞大的软件,有的甚至几百万行代码,可能引起的连锁反应,很难预测。而是否有架构思维,也是衡量一个设计师水平的关键指标

英明的设计师,当有勇气和能力,责任心和决断力,来承担起改变系统架构的使命。国家、大学和企业,在培养架构设计师上,未来需要投入更多的力量。





加入我们

专题推荐

▼点击图片即可跳转阅读

点个「在看」,和我们一起聊聊

本文来自ToB行业头条