企业的数字进化三部曲——连载【3】(原创作者:Ray和他的数字化三部曲团队)

企业的数字进化三部曲连载3(原创作者:Ray和他的数字化三部曲团队)

     「上接:企业的数字进化三部曲_连载【2】」

      那么,如何在合理的成本范围内确保应用程序能高效地完成开发,从而帮助企业构建数字化业务呢?

      我们先来看看传统的软件开发方法,想要开发一个软件产品,先收集和整理开发需求,就是软件要解决什么问题,长什么样,使用什么技术/开发语言,如何测试布署,这些细节可能写了厚厚的一本需求文档,然后不停地开会讨论修改各个细节,终于大家达成一致,定稿了需求文档,当然这可能已经过去1~2个季度了,然后开发团队开始照着需求文档写代码,大概写了2~3个季度,完成了大部分功能,但由于行业市场的变化,公司业务相应调整,软件也需要更改几个大的功能模块,这时开发工程师发现,由于软件完成了大部分功能代码,要修改代码实现新的功能需求,工作量巨大,甚至还不如将代码推倒重写来得快,而且,花费大量人力物力开发这些代码,竟然连一天都没机会上线运行!怎么办?如果从头开始写代码,写到大半,可能软件主体需求又变了,咋办?更有甚者,软件开发基本完成,接着进行测试,发现巨大的问题,导致测试通不过,软件也无法使用,这时又该怎么办?

      上述这种先完成全部功能需求文档,再按部就班进行开发、测试、布署的方法,业内称为瀑布式的软件开发方法,在企业需要面对用户需求不停变化而快速响应的今天,这种开发方法显然难以满足需求,进而出现了C I(持续迭代)、TDD(测试驱动开发)、精益创业等敏捷思想,帮助企业灵活应对快速变化的用户需求和由此产生的企业业务运营调整。敏捷的开发方法讲究快速验证、快速试错、代码功能小增量快速布署,由于控制颗粒度非常细小,这样万一遇到问题或调整开发需求而返工或重写代码,付出的人力及时间成本非常小,对整体项目推进的影响就微乎其微。

      这种敏捷的开发方法看起来很是不错,但由于讲究精细的控制,非常依赖于一整套开发工具和开发管理方法,布署工具和实践开发管理并非一朝一夕能学会的,起步门槛不低。特别像自动化测试布署代码的开发工具和环境,安装配置调试这些工具和环境,非常的复杂,直接劝退了一大批开发人员,另一方面,如何真正落地敏捷开发的日常管理和推进也至关重要,不少开发项目由于方法不对而难以持续,最终半途而废。

      有鉴于此,在Pivotal,我们有一个结对编程的敏捷方法实践项目,俗话说,授人以鱼不如授人以渔,而我们的做法是授人以“鱼+渔”。

      我们选派经验丰富的数字化转型辅导团队(敏捷项目经理和编程专家),和数字化转型客户的工程师一起,一台电脑+两台显示器+两套键盘鼠标为单元配置,一对一且手把手带着客户工程师从项目需求分析、开发框架选型搭建开始,用敏捷迭代的软件工程方法,写同一份产品代码,通过这种结对编程的方式,以3个月为一个结对周期,结对编程周期结束,客户既拿到了产品代码,也培养了己方的工程师,并掌握先进的敏捷开发方法,可以将剩余的开发任务带回去继续开发、布署、运维。客户根据自己项目的规模和第一期结对编程的效果,按需而灵活地订阅一个或多个结对编程的周期。

      在Pivotal,我们和福特的合作正是采用这种结对编程的方式,福特的工程师坐进了我们的办公室,两个人坐在同一张桌子,桌上放置的两个显示器连接到同一台Mac,两个键盘,两个鼠标,每个人看着自己的屏幕并和同伴交叉操作自己的键鼠输入代码,频繁充分的交流讨论,经常是一个人在说,另一人敲键盘,然后轮换过来,在这种高效的探讨和交叉操作中,产品代码出来了,编程方法也学会了。我们双方在一起写了同一个程序,运用Pivotal的云操作系统和开发框架、工具,从第一天开始,我们就构建了一个应用平台,比如,福特的数字汽车,并每天持续的把新功能集成上去。所以对福特而言,这是一个非常棒的开发体验,他们从第一天就来到我们办公室,然后拥有了一个应用,通过结对编程的方式既写产品也培养工程师,6个月后,福特又派了4位员工到我们办公室加入结对编程。如此,就有了8位人员学习编程并直接构建自己的产品代码,事实上结对编程毕业的工程师可以用同样的方法培养新人,这样结对编程参与人员就可以呈现指数级的增长。

      说到这儿,大家可能会问,既然数字化转型如此重要,那我为什么不自己培养开发团队?或者是不是可以干脆把开发工作外包给第三方开发团队得了?

      这是个好问题,确实有不少企业尝试过自己培养开发团队,而外包呢,更是PC年代非常常见的做法。我们说,问题的讨论需要放到具体的上下文中进行,才显得有意义。

      如果你拥有一支高水平的开发团队,那当然可以根据业务需求自行开发应用,但传统企业之所以要数字化转型,大多并不具备这样的开发团队,通常情况是有自己的IT部门,但其职责主要是IT设备及软件的日常运维,这与数字化应用开发还有非常大的差异和距离。基于这样的基础,要完全自己组建开发团队,不仅要投入大量的资金,而且更大的难题是要花费很长的时间周期去招聘人员及打磨团队,并且这是当前主业之外的工作,隔行如隔山,投入产出大多不尽如人意。

      那外包给第三方开发团队,是否可以一劳永逸呢?

      我们前面讲到三代技术平台的演进,云计算的到来,使我们的应用能一夜之间触及到全球各地的用户,使我们能根据自身业务的特点来快速构建照顾到用户个性化需求的应用,使千千万万个我们这样的各行各业的经营者能通过数字化程序去服务自己的用户,这在PC时代是无法实现的。云计算时代,应用程序从PC时代的优先考虑通用而“千人一面”的形态,转变为今天根据用户特点提供“千人千面”的个性化服务,这样的进化使得应用开发要时刻深入理解并结合企业的业务特点,而且根据业务的不断调整持续地进行应用的开发迭代,当数字化应用本身成为业务的重要组成部分,那么应用上线只是开发工作的开始,后续要不停地开发新功能,不停地优化改进,这完全不同于PC时代的应用开发。那么,这样的开发情境,可以或者适合外包给第三方做吗?

      答案是,可以的,但第三方难以深入了解己方的业务,你得投入巨大的沟通成本,一个严肃的数字化应用从规划到开发上线及新功能持续开发,2~3年的开发周期并不算长,若加上数字化应用与业务的打磨融合完善,时间跨度会更长,这期间,第三方开发人员很可能已经换过好几拨了,毕竟不是人家的事业,只是一项开发工作而已。所以,你若把业务数字化当作自己的产品、自己的事业去做,无论你是如何开始的,你终究得拥有自己的开发人员,这就是为什么你能听说的做得成功的互联网公司,都有自己的开发团队。

      当然,你想对自己业务做些数字化尝试,把自己的商业设想做一个快速的验证,找一个专业的第三方开发团队来开发应用,这是一个挺不错的选择。经过验证,你觉得是时候把这个数字化业务当成严肃的产品、当成企业的核心竞争力去持续推进,那你可以开始培养自己的开发人员及团队了。前面我们说到,隔行如隔山,培养数字化应用开发团队有别于你的传统业务,可不是一朝一夕的事,那怎么办?

      回到我们刚才讨论的结对编程的实践,通过这种方法与实战训练,由数字化专业团队一对一、手把手带着转型方企业的员工,直接真实地写转型方企业的产品代码,既写了数字化应用,也高效地培养了转型方的开发工程师。这样,不仅是师父领进门,师父还一起帮你写程序代码,后面你就可以依葫芦画瓢,回家继续开发你的数字化应用。不仅如此,这套实践方法你也可以复用,回到公司,你可以继续通过结对编程的方式,手把手培养己方更多的数字化应用开发工程师。如此,你学会了结对编程方法,培养了开发团队,还带回一份和师父一起写的数字化应用代码,这就是我们前面说的授人以“鱼+渔”(产品代码+结对编程方法)。

      所以,实际上,福特的首席执行官,当时在Pivotal的办公室坐了两天。他观察我们如何帮助其他客户使用这种方法,为他们提供云原生操作系统或云原生应用程序平台,如何通过结对编程实践带领他们的工程师来构建应用程序,敏捷迭代的开发方法和自动化的测试、布署、管理工具和流程贯彻始终,以保证开发的高效和代码的健壮,保障数字化应用稳定运行。从第一天起,他们就可以拥有一个应用程序。由于结对编程实践行之有效,所以这非常令人信服,这也是福特投资Pivotal的一个重要原因。其实,我个人认为三年后Pivotal的市值很可能会达到300亿美元,投资人不到1.8亿美元的投资就获得了公司10%的股份,真的挺划算的。

      话说回来,结对编程、敏捷方法确实能帮助我们快速地开发数字化应用,但真正推动数字化蓬勃发展的底层驱动力,仍然是云计算,就像当时我们帮助福特高效构建的数字化应用,都是在Pivotal的云操作系统上完成的。想得出有说服力的商业论点,需要研究业务演进背后的驱动力,给出有力的底层逻辑。从大型机到PC时代,我们观察到了驱动力——摩尔定律,在PC时代催生了新的计算技术和商业模式,像甲骨文和微软这样的技术公司,他们创造了Office、CRM、ERP等企业应用。那么,我们假设回到十几年前,我们观察到硬件虚拟化引发的云计算技术的趋势,我们将前述逻辑外推到未来,我们说未来是一个云时代,云计算会催生新的技术和商业模式,Pivotal果断押注了这条新赛道,从第一天起,我们成为了市值数十亿美元的独角兽。

      云时代的新技术——服务器虚拟化、容器技术、一系列的云原生技术,按需收费的计算资源,极大地丰富了每一位使用者的数字化转型的机会,像前面我们说到的通用电气、福特、星巴克等案例,云计算帮助大家将传统业务不断提升并创造出更多超乎想象的新机会、新业态。

      所以,Pivotal在云计算技术领域果断下注,创建云操作系统及一整套云原生技术和工具,帮助企业快速构建数字化应用。实际上,董事会的客户也对我们进行投资,通用电气对我们投资,还有一家投资者微软来找我们,因为我们可以为微软亚洲提供解决方案。那么,通用电气又为什么会投资Pivotal?

      其实,这些都属于软件公司层面的关键收获,因为通用电气切实期望实现数字化转型,当时通用电气的杰夫·伊梅尔特(Jeff Immelt)建立了一项数字业务,可以在Pivotal的云操作系统和云原生技术基础上构建解决方案,所以他们决定投入1.05亿。之所以Pivotal仍然从通用电气那里融资,主要是因为我们希望有一个真实的大型企业客户,能够全面深入地验证我们的技术,验证我们的业务,所以Pivotal拿到了通用电气的投资。

      如前所述,我们通过结对编程的方式帮助通用电气培养云计算技术栈的软件工程师,解决人才问题。为什么这对于通用电气来说,极具吸引力?

      其实,通用电气不乏优秀的软件工程师,开发的软件也不比Salesforce少,但是华尔街并没有给通用电气很好的估值,主要是因为通用电气的工程师开发的大多是嵌入式软件。所以当你进入市场时,假如你是从斯坦福毕业的使用嵌入式软件的优秀人才,也许他们不感兴趣。所以我们和通用电气的合作,给到对方的不仅仅是软件堆栈,我们通过最初的结对编程来引导他们的工程师成为具备云计算技术栈的现代软件工程师。

      不得不提的是,结对编程还有一项非常独特的好处,你的数字业务的工程师,从训练到实际工作开发代码,采用结对编程这么一个流程,使得每一个软件功能模块,至少有2位(一对)以上的人员能熟练开发,这样在关键开发职位上的工程师,如果有人休假亦或离职,总有热备状态的人员能处理开发工作,而且可以继续通过结对编程的方式快速培养另一位拍档,如此就不会影响整个数字化项目的推进,这对老板或职员来说,都是好事,不至于因为项目开发过程中的休假或离职而闹得不欢而散。

      所以,这就是软件公司。于我而言,在Pivotal的这段经历充满乐趣,我挺享受这个过程,我学到了很多,比如如何使用先进的方法培养高水平开发团队,如何撰写商业计划,如何向风险投资家推销,如何知道自己是否称职。

      那么接下来,软件公司之后,便是数字化三部曲的第二个阶段——成为一家数据公司。

      《经济学人》杂志刊登的文章认为数据是新型燃料,数据成了经济学相关的话题,上图是该杂志的一期封面。数据的关注度和重要性由此可见一斑。

      从软件公司开始,你结合自身业务建立了应用程序,由此开始产生并积累越来越多的数据。如果你的应用程序没有累积数据,那么它可能不会成功。前面我们说到,云计算时代不再删除数据,是的,数据是新型燃料,是资产和财富,删除数据显然是不明智的举动。

      因此,日积月累,假设你的应用程序累积了大量的数据,那么使用这些数据,你实际上可以获得什么竞争优势呢?

      上图展示的图片来自微软研究院(Microsoft Research)的一篇关于自然语言处理的论文Scaling to Very Very Large Corpora for Natural Language Disambiguation 。作者将不同模型进行了对比,观察随着导入的数据量增大时模型精准度的变化。

      你可能听说过一些模型的名称,比如说聚类和分类模型,神经网络模型等,当然还有商学院的同学比较熟悉的线性回归。常用的模型大概30来个,数量并不算多。然后,我们需要数据集来训练模型,你需要找到值或调整参数。事实上,有了更多的数据,每个模型都会变得更准确,无论你选择什么模型,这是一个非常简单的见解,上图的论文中很直观地展示了这么一个变化趋势。

      所以,随着数据量的增大,我们通过模型能得到更好的结果,听到这,来自金融业的朋友们或许会非常激动。如果你为股票价格建立了一个估值模型,随着更多的数据输入你的模型,你的模型变得比你的竞争对手更准确。那么你就可能拥有了做空或做多股票的竞争优势,你就可以比其他人更好地抓住套利的机会。

      到这里,我们说的是增加输入模型的数据量,你可能会问,那我是否可以通过创建更好的模型,也能获得更多好的输出结果?理论上是可以的,但构建一个复杂的模型,这真的很难,你真的需要读一个博士学位。基本上,你需要手动构建一个新的数学模型,而不仅仅是线性回归,然后是神经网络,然后是其他随机模型,这真的很难。

      和模型有关的更深入的讨论,我们会放在更靠后的部分。我们说到,既然构建、创新模型并非易事,像计算机专业实力超群的大学等有限的学术机构更有可能在这方面取得突破,那么,我们可以考虑如何用好现有的模型。

      因此,在数据公司阶段, 你不需要博士学位,因为你不必创建新模型,只需要使用更多数据,就可以让当前模型产生更好的结果。所以这意味着,如果不能构建新模型,那么可以利用数据来训练模型。你只需要积累更多的数据,选择一个模型,将海量的数据导入模型,然后它们很可能会产生更好的结果。

      一旦我们有了更好的结果,你在金融业中就有了很多竞争优势,你就可以更好地判断客户的贷款信用;在通用电气的发动机中,你有很好的检测,能够发现发动机潜在的故障;在零售行业中,你可以提供更好的建议,来帮助用户购买更多更合适的商品,你可以做很多事情。今天我不需要再次强调,大数据技术已经无处不在。这时候,你很可能会认同,我们不再删除数据了,我们不应该再删除数据了。

      所以,我在给投资人的商业计划里,提到了这一点——现在用户不会删除数据,我告诉投资人,我们应该关注这些事情,投资人也倾向于同意这一观点。既然我们不再删除数据,那我们会如何处理数据——我们会将所有数据上传到云端。我在商业计划中运用的就是逻辑的方法,由此获得投资人的认同,这方面,我在后边还会有更详细的阐述。

      那在过去,我们是如何对待数据的?如果大家有一些编程基础的话,我们会通过数据库管理系统(DBMS)去创建数据、读取数据、更新数据、删除数据。所以我们会看到,这就是常说的CRUD(Create、Read、Update、Delete),当然你也可能听到“增删改查”说法,指的也就是这几个对于数据库数据的操作。

      现在,我们会创建数据、复制数据,会增加数据、处理数据。所以我们不再删除数据,永不删除数据。相较于过去对数据做CRUD,我们现在做的是CRAP(Create、Read、Append、Process),这一点很有趣,这背后隐含着一个巨大的变化,我们对于数据的态度变了,数据的生命周期彻底改变了。

      这真的很令人激动!

      现在,我们的数据可能存储在多个云上,有些存在公共云上,有些存在私有云上,基于数据及网络安全等考量,有些规定确实不允许某些特定的用户将数据存放在公有云。而且,数据的管理正变得更加简单,比如你的iCloud照片,真的不需要人工手动去管理照片的存放,照片会自动备份到云端,并且可以在任何连接到同个iCloud账号的设备上查看及操作,该操作也会在自动同步到这些设备上。如果你的iPhone设置开启了“优化 iPhone 储存空间”,所有的照片和视频都会以其原始格式储存在 iCloud 中,而在手机本地上会保留节省储存空间的版本,为手机腾出存储空间。

      云端的强大绝不仅限于此,如果你的iPhone丢失或被盗,你可以登录iCloud,远程锁定该设备确保他人无法使用,也可以远程抹掉(不可恢复)该设备的所有数据,保证信息安全,即便抹掉了所有数据,你仍然可以使用“查找”功能来定位设备或在设备上播放声音。即便抹掉了丢失手机的所有数据,然而你的数据并没有丢失,你之前手机中的照片、视频、文档等等,照样完好无损在iCloud云端存储着,随时可以下载到你的其他设备上或恢复到新的iPhone上,真是不幸中的万幸。

      这些自动的、全新的数据存储、管理和应用的方式,背后的驱动力就是云计算。从技术层面去看云计算,我们看到了虚拟化、容器化技术的快速发展,看到了开源软件快速增长的趋势,由此急剧拉低APP开发的门槛和成本,并带来数据量爆发式的增长,数据可以通过网络方便地存储到云端服务器,用户不再删除数据了。

      这些新事物、新趋势,我们应该始终保持关注。所以,我提醒投资人注意这些新的趋势,并告诉投资人为什么要关注这些。

      不知道大家是否读过一本名为《创新者的窘境》的书?书中提到,在创新者窘境中,第一个,竞争因素,如果行业正在转向另一个新因素,你的公司通常会失败,你必须创建一家新公司,接受挑战。所以,我告诉投资人,作为互联网大厂,你当前的云服务器,也许可以帮助运行应用程序。比方说,假设在你的数据中心,可能70%的服务器都支持应用程序,其中包含大量的基于你的生态平台构建的云端应用程序,另外,只有30%的服务器在处理数据。此处,请再次注意我们前面提到的50%的临界点。现在应用程序正在达到极限,应用程序数量的增长速度不是很快。而且每个应用程序只有有限的用户,这意味着支撑应用程序的用户总量是有限的。那么,应用程序的增长逐渐放缓,支持应用程序的服务器不会有太大的增长,这里滴滴就是一个例子。

      大家应该都知道滴滴打车,假设滴滴在中国有14亿用户,所有人都是滴滴的用户,那么,需要多少台服务器来运行滴滴这个应用?比方说,1000台,或者更多,但用户都在这儿了,应用程序稳定运行后,照理说用户不再增加,服务器数量也不会再增长了对吧?但事实上,滴滴每天都有用户在不停地打车下单,存储、处理这些订单数据的服务器的数量就会持续增长。

      所以,如果这个逻辑是合理的,那么除了滴滴,其他应用程序的情形也类似,我和投资人说,你所有机房的服务器构建的云平台,其上的数据在增长,不断增长,持续增长,快速增长,而应用程序也在增长,但与数据增长相比,应用程序的增长比较缓慢。

      所以有一天就会看到,我们的投资人——互联网大厂的云中心,就会有更多服务器用来处理数据,而不是处理应用程序,那么这就是一个转折点。然后,云端用户不再问你的服务器,你的云技术对应用程序的支持有多好,他们通常会问,你的云计算对数据的支持有多好?

      所以,我告诉我们的投资人,在与阿里云的竞争中,你失去了先机,在应用程序时代,阿里云构建了更好的应用程序环境。但数据时代的到来,对你们来说是一个新的机会。如果你们现在在数据技术上重磅押注,那么你们有机会超过阿里巴巴,你们最好采用更好的数据技术,然后10年后,在云端积累更多的数据,数据服务器超过应用服务器,那么你们很可能将比阿里巴巴更成功。

      现在,当你跑去向风险投资推销你的商业计划时,你需要向他们抛出机会,并运用逻辑的阐述方式,让投资人认识到必须对此机会采取行动。

      所以我们认为,在云计算领域,有一天数据服务器会超过应用服务器。这就是为什么数据技术变得比应用技术更重要、价值更深远的原因。这就是为什么Pivotal数据中心很有趣,但新公司OpenPie将会更加令人兴奋,因为它是接下来10年及之后的未来。

      如果你跟随未来的趋势,顺势而为,那么通常你的企业会更轻松,客户会主动来找你,风险投资会来找你,政府也可能会找你,也许因为你代表了未来。

      现在让我们看看这个机会,这是一个趋势,这是一个机遇。好,到这里,我们的投资人认同了这一趋势,现在他们会问你,你知道你的竞争对手是谁吗?因为你不是唯一一个有这种逻辑的人,其他人也有同样的逻辑。

      所以投资人理所当然地要问——为什么是你?

      这个问题的回答显然非常关键,直接影响到投资人的决定——投或者不投。我们将在下回讲述我是如何回答这个问题的。

      —未完待续—

( 冯雷(Ray)及数字化三部曲团队原创连载作品,欢迎继续关注。)

—————————————

Ray和他的数字化三部曲团队

冯雷Ray Feng:

数字化三部曲系列著作主编及首席作者

PieCloudDB Database eMPP存算分离云原生数据库总设计师

1024数字产业基金会理事长

卡内基梅隆大学上海校友会主席

拓数派创始人兼首席执行官

数字化三部曲团队:

致力于企业——软件公司  数据公司 → 数学(AI模型)公司的数字化三部曲方法及软件代码级别架构实践真实落地

“企业的数字进化三部曲——连载【3】(原创作者:Ray和他的数字化三部曲团队)”的一个回复

发表评论

您的电子邮箱地址不会被公开。