从单个计算机到互联网
在中国大陆,计算机有一个更为形象的名字,电脑。从字面可以看出,它是一件帮助人类进行思考的机器。但决定计算机思考什么,如何进行思考的,就是程序。 把人类脑袋中的可重复的、机械性的脑力劳动,变为机器可重复执行的程序,这个过程就是软件过程。
在计算机诞生之初,它所要解决的问题是科学计算,也因此得名计算机。可以想象,一个计算机的计算能力是有限的,但有了计算机网络,使得成千上万,乃至上亿的计算机可以协同工作,并形成更大的计算能力,也就为解放人类机械性脑里劳动,带来了想象空间。计算机也从科学家手里,走进了如今的平常百姓家。
要让计算机为普通百姓服务,从衣食住行医多方面提高人们的生活质量,其先决条件是信息化。信息化,是将一件事情或者一个物品或者一个时间或者定量货币,以数字化的方式精确量化下来。随着计算机硬件的不断发展,整个社会的信息化成本逐步降低。从而,人与人的通信、交易过程方便的可以信息化,并在此基础之上形成如今的各种面相个人的互联网产品:例如,社交应用、电子商务、第三方支付、个人信贷平台。
现今的互联网特征
现在的互联网公司是以轻资产行业——除了计算机及网络本身,不需要其他生产工具的行业——为切入点,以数字化逐步改变了人的沟通方式、人的消费方式,乃至生活方式。
如今互联网公司普遍具有以下三个特征:
-
面向个人消费者(B2C)
由于用户基数大,以计算机(含网络和存储)为生产工具的互联网公司,为单个用户服务的边际成本低,并且规模效应大。 - 轻资产距离实体经济较远
无论是蓬勃发展的社交应用(微信、微博),电子商务平台(淘宝、京东),还是个人金融(P2P金融),都远离消费品制造本身。即便是电商平台,与实体密切相关的是自身仓储信息化,物流环节则是和合作伙伴公司进行信息系统对接。电商平台,绕开了消费品诞生最为复杂的生产制造环节。 -
经营虚拟对象
无论是淘宝、或者大众点评,在显而易见的商业交易背后,有着对个人主观感受、人际关系这些虚拟概念的经营,并将其与商业过程进行良好无缝的融合,促进个人消费市场生态的良性发展。即便像是百度、谷歌这样的搜索行业寡头,也是以广告、产品推广作为盈利模式,根本上还是通过技术手段尽可能拉近买卖双方的距离。
所以,互联网公司的生产资料是一些看不见、摸不着的“关系”,这也导致了互联网所极力倡导的用户体验,快速交付。因为这些生产资料,任何一家公司都可以触手可及,唯有与众不同和贴心,方能获得用户的长期青睐。
传统行业的企业信息系统
在传统行业里,有三大社会基础设施类行业的系统建设规模较大,它们是金融、电信、能源行业,每个企业所拥有的应用系统数量是成百上千,单个企业所使用的计算机规模也在数万至百万,或者更多。
放眼传统金融行业,例如银行、证券、保险等细分行业,信息系统也是企业的核心生产工具。与第三方支付平台不同,商业银行有着社会基础设施的不可替代性,导致了其信息系统建设理念与互联网公司有着天壤之别,因为数据既是货币,所有交付行为都通过系统完成,所以其宗旨是在以账务为核心的会计准侧下,确保稳定、可靠零差错。
电信、能源,都是以国家级重资产投资为核心的基础行业,其业务模式较为稳定,行业竞争性弱,主要受国家政策影响大。这类行业的信息系统主要解决两个方面的问题,重资产(数亿计的电信设备、电力设备)的信息化管理维护,面向个人与企业的业务营销,账务核销。
为什么其他诸如工业制造行业的大公司(比如美国通用电气,德国西门子,德国大众汽车)信息系统并没有得到普通大众的关注呢?一个重要原因就是实体本身对一个行业业务模式变化的牵制作用。以汽车制造为例,其主营业务是设计和制造整车,信息系统的主要作用是一方面对物料、排产、供应链进行管理,另一方面对主营业务起支撑或者提高跨部门、供应商协作效率的作用。可以想象,并不会因为IT系统的一次变更上线,就直接诞生一个汽车的新产品,但很有可能是打通了来自于最终用户的个性化订单这个渠道。但在如今的互联网行业,一次IT系统变更上线,就可能具有行业的颠覆性。
面对实体经济,面对工业制造行业,信息系统并不能像互联网一样,具备核心生产工具的地位。工业4.0和物联网,所涉猎的信息系统变革,其效果是加快企业对市场、对最终用户使用效果的感知,加快企业内外部实体多维度状态的感知,提高企业内部和上下游厂商的协作效率,从而整体提高社会实体经济的生产效率。
重视软件交付过程
通常一个具有人机交互功能(也就是带可视化操作界面)的企业信息系统,称之为应用系统。一个最简单的应用系统会包含前端可视化操作界面(Web)、后端业务逻辑(Service)、底层数据库(Database)以及存储(Storage)三个组成部分。将这样一个应用系统交付给企业内部的员工进行使用,以传统的软件工程方式进行建设,需要经过软件生命周期的六大阶段:需求分析、架构设计、编码实现、测试验证、上线运行、后期维护。
对于复杂的应用系统,架构会变得更加复杂。这两者之间的差异,有着类似单间平房与摩天大楼的区别。其建设方法,制造工艺,也有显著区别。
对于一个复杂应用系统,可能由不同的团队协作完成。这和建筑行业有负责基建、负责内部装修的不同工程承包商类似。每个工程分包团队只完成其专业领域的那部分,工程整体由总承包商进行统筹管理。
对于一个复杂应用系统,可能采用一些通用的技术组件。这和建筑行业有不同标号的水泥,螺纹钢筋、光圆钢筋等不同规格类似。物料供应商则根据国际国家标准进行批量标准生产。在IT行业,这种通用组件则被称为中间件或基础软件。它的通用性并没有国际国家的强制标准,一般都以某一产品领域寡头的实施标准作为参考依据。
而被非IT行业所广为熟知的程序员,则是编码实现这一环节的生力军,这一环节负责把业务需求变为代码,从而实现系统的业务功能。鲜为人知的架构师,则需要从业务需求、功能开发、测试验证、后期运维等多角度确定系统的基本框架,犹如确定一幢高楼大厦的主体结构。
可以发现,人是信息系统的制造者,不同资历的从业人员,所交付的信息系统质量会有所不同。这类似实木家具的手工制作过程,不同技艺的工人,所制作的家具精致程度不一。
虽然可以有方法论、软件工程学来指导和规范软件交付的过程,但软件最终是为一个企业或者组织提供相匹配服务,不同的行业特征、不同的信息技术发展时期、不同的组织结构、不同的系统建设方式,导致了世界上找不到两个一模一样的最终交付使用的信息系统,就好比世界上找不到两片一模一样的树叶。
软件价值观
- 互联网公司
互联网公司的系统作为生产工具,一般都由自己员工进行开发、测试、维护。对外采购行为大多集中于主机、网络、存储等硬件设备。对于系统建设的理念是自主可控,为的是拥有极佳的业务变更适应性。另外,从互联网公司的业务视角出发,其信息系统可以根据行业特征进行优化,一般不采购上文所提到的中间件或者基础软件,大多使用免费开源的软件框架。
- 传统行业
传统行业的信息系统,作为业务支撑平台,一般都以自有信息化部门牵头招标,以对外采购软件产品配合系统集成商服务,对中间件产品进行二次开发,从而实现业务功能的交付。企业主体通常不具备自开发能力,依赖于外部资源。从软件生命周期角度,开发、测试、运维三大团体也很有可能分属不同的集成商,甚至是外包人员。
- 投资构成比较
以同样的投资成本,互联网公司愿意使用零成本的开源中间件和100%的人力成本,进行系统建设。而传统企业,则会使用90%以上的投资进行对外产品和服务采购,余下的10%则作为甲方的信息化办公室团队人员成本。
即便是互联网公司所提出的去IOE(IBM, Oracle, EMC)口号向传统行业蔓延,但传统行业所需要的人才储备却远远跟不上转型需要。