【转】企业开发的困境与变局

原文:企业开发的困境与变局


文 / 刘江

算起来,《程序员》已经有几年时间没有大篇幅讨论企业软件开发这个话题了。这其实挺奇怪的。要知道,按类别来分,国内从事企业软件开发的技术人员是最多的,从CSDN和《程序员》联合举办的“2011软件开发者年度调查”结果来看,这个数据超过三分之一(互联网将近30%,嵌入式/工控16.3%)。更让人奇怪的是,企业软件从我们视野里消失,却几乎没有人注意到。

令人尴尬的事情还没有完。几年前我为Martin Fowler的企业软件开发名著《Patterns of Enterprise Application Architecture》做英文注释版时,就注意到企业软件或者企业应用这个业内已经司空见惯、耳熟能详的名词本身,居然没有特别明确的定义。时至今 日,这一情况仍然没有改变。最靠谱的维基百科Enterprise Software英文词条里,虽然内容丰满了许多,但还是没有给出令人信服的定义……

共识当然也是有的,企业软件针对的是企事业单位、政府等机构(因为并非只针对企业,所以我习惯用企业级这样的术语,但在实际使用中似乎区别不大)而非面向个人尤其是普通消费者,支撑着机构业务各阶段的运作,支持机构内外人员之间的沟通和协作。

但共识似乎也仅此而已。同一个Gartner网站的术语表里,enterprise applications词条中强调企业内的所有核心业务流程和各个步骤,而enterprise application software中却将办公套件、即时通信、电子邮件甚至内容管理系统等都纳入进来。从本期封面报道中的其他文章也可以看到,即使是资深的业内人士对企业 软件的理解也不尽相同。

行业与技术的发展,也在改变许多原有的观念。Martin Fowler对企业应用的定义更强调其数据的复杂和数量,可是现在企业应用的数据从量上来说,已经远远无法与互联网相提并论。有人认为企业应用是相对于互 联网和个人软件的,那Salesforce、Yammer等SaaS和PaaS该划为哪一类呢?淘宝、支付宝、去哪儿等面向商家的支付、计费、业务流程等 功能,又该算哪一类?

企业软件开发的困境

更尴尬的,是企业软件的现状。

在国内,企业软件中除OA和财务软件外,总体上都是复制国外成功经验发展起来的,原创性本来就不足。在经历了较快增长之后,近年来行业进入了瓶颈 期,发展停滞,困扰企业的许多固有老问题一直得不到解决。起步科技总裁马科对本行业有一个很形象的说法:“像装修行业”。他在今年《程序员》9月刊《怎样破解企业管理软件的困局》 一文中,列举了企业软件的几大问题:整体混乱,低水平竞争,缺乏足够的质量保证;开发效率低,周期长,应变能力差,往往计划赶不上用户需求变化;缺乏统一 的标准,各个开发厂商开发的应用系统往往平台不一,数据格式不一,各自为政,各不相通,无法共享资源;整个行业缺乏创新,技术落后,工具原始,人才流失严 重。

21世纪IT技术的主要变革

八百客副总裁李淼也表示,目前行业处于一种军阀混战、割据的发展阶段,新的在线企业软件领域中大部分厂商也都是在市场上疯狂砸钱,业绩并不理想,而且由于产品同质化严重,一些实力较弱的会被拖垮。

对此,在外企和国企都有过不少从业经历的惠普架构师汪洋感触很多,他认为国内很多所谓的企业软件项目其实都达不到“企业级”的标准,对可靠性、灵活性、重用性、可维护性考虑甚少,架构粗糙,缺乏必要的可行性和技术风险分析。

鼎基伟业COO杨军也同意整个企业软件市场疲软,他特别指出2011年国内的商业智能市场是生存困难的一年,无论产品厂商还是实施商、甚至咨询商均 面临着不小的困难,对市场中从事低端实施的企业更是如此。行业巨头之一的东南融通因“造假案”而摘牌退市,直到公司大规模裁员,濒临绝境,对市场来说是一 个沉重的打击。

即使放大到全球,企业软件相关话题也已经被边缘化很久了。

2007年底,影响力很大的技术博客Robert Scoble发表了“为什么企业软件丧失了吸引力”(Why enterprise software isn’t sexy)一文,引起了一场论战。这篇文章的缘起,恰恰是因为盖茨在一次圆桌访谈中对主流媒体只报道消费类互联网而无视企业级软件不满。

最初,来自企业软件圈子的反击似乎很给力,企业软件要关心的就是安全、稳定、可扩展等不吸引人的特性嘛,你Scoble真是个外行。这对在微软、 NEC和RackSpace等企业IT领域工作多年的Scoble来说当然很不公平。只要涉及企业软件,他的文章经常能成为媒体焦点,你见过这样的外行 吗?

但很快,企业软件用户体验差、需要改进在论战等中渐渐成为双方的共识。以《IT不再重要》和《云计算大变革》等著作闻名的Nicolas Carr撰文指出,真正外行的很可能是自己,用户不喜欢用的产品肯定将面临巨大的颠覆危机。

其实企业软件在互联网开发人员眼中早已经成为笑谈。Ruby on Rails的创造者David Heinemeier Hansson在2005年底就发表过一篇引起热议的文章,其中对2006年做出这样的预测:

企业一词将成为软件开发者与用户之间的骂人话。企业软件厂商的成本继续上升,而质量继续下降。这些软件的使用者(他们想要的是简单、轻便、易用的工具)会对软件购买者(他们想要的是臃肿的功能列表)造反。

这将使企业软件厂商的用户开始流失到更易用、成本更低的解决方案,这些方案可以满足80%所需(剩下的20%根本不值十倍乃至百倍的价格)。

到2006年底,企业这个词就等同于笨重、昂贵、过时。

Palantir是PayPal创始人Peter Thiel等创办的面向政府和金融企业的信息分析公司,其产品被用于反恐和网络犯罪防范以及经济刺激计划的责任审计。公司的CEO Alex Karp在去年的访谈中表示,2005-2009年间在硅谷你要是创办企业软件公司,就好象是招了一帮工程师在城市中心搞马戏团那么搞笑,要知道那时候“企业”可是一个脏字儿……

除了价高、开发周期长、用户体验等明显弱项之外,传统上企业软件曾经代表着更先进的技术,更好的安全性、稳定性、性能、可伸缩性等的。但时过境迁, 现在以互联网为代表的消费应用,在用户和数据量激增的压力下,各项技术也渐渐赶超乃至处于领先(我亲耳听到一位国内大型互联网企业的高级工程师对两家知名 国际IT软硬件提供商的资深技术经理说:你们的产品和解决方案已经根本满足不了我们的需要,我们所要处理的数据量你们连见都没有见过……)。很明显的 趋势是,最新的热点技术包括云计算核心的Hadoop、NoSQL等基本上完全来自互联网。

企业软件落后了。

企业软件的问题何在?

iPhone和iPad在企业世界攻势迅猛的今天,再来看2007年的那场论战,会发现企业应用和消费者应用之间巨大的用户体验的确是问题的要害。 当时软件开发殿堂级人物Ed Yourdon发表的观点最经得起时间的考验:企业软件的易用性与安全、可扩展和性能并不是互斥的,Mac上的企业软件就往往比Windows上的好;直 接用户的话语权将越来越大,他们会从浏览器、手机开始作出自己的选择,CIO和丑陋难用的企业软件将在博弈中最终输掉。

企业软件落后的原因,究其根本是一个社会问题。Robert Scoble最初文章已经指出:企业软件之所以媒体不太关心,是因为除了CIO外一般人虽然是用户,但根本没有话语权。记者和博客写文章是为了有更多读者 来浏览,然后广告主才会买单,写企业软件?只有几个CIO看啊。

由于产品研发主要围绕企业中负责采购的CIO/经理(可能并不真正懂技术),而非真正的最终用户,所以产品、企业之间的竞争都是畸形的。只要采购经 理能交差,产品贵一些不要紧,维护成本高一些不要紧,难用一点不要紧,甚至白花了钱、没啥用处也不要紧。功能全、未来的承诺、buzzword是他们看重 的东西。这种中间层的存在,直接导致了对用户体验的忽视,技术落后,流程陈旧,人才流失,进入了恶性循环

互联网应用之所以有较好的用户体验,是因为能够向数以百万计的用户直接而快速地发布产品,能够快速获得对产品研发至关重要的反馈,同时公司能够保持敏捷和创新的文化,敢于打破陈规。此外,用户容易切换,竞争激烈,也是重要的驱动力。

就在2007年论战之前不久,时任《纽约时报》网站设计总监的Khoi Vinh也发表过一篇文章抨击企业软件缺乏基本的用户体验设计,简直是怪胎,大部分软件中甚至一些非常简单的操作都很难用。

美国第一任CIO Vivek Kundra也曾抱怨在办公室里昂贵的企业软件用得郁闷,而回到家用起Twitter、Facebook就神清气爽,这很可能是他推动Cloud First战略,大力采用许多Web 2.0和SaaS服务的初衷之一。

曾担任Oracle产品营销副总和SAP总经理的Dennis Moore指出,除了产品的用户体验设计外,企业本身不合理的业务流程也是使软件难用的重要原因,而这是企业软件公司很难通过研发和实施解决的。传统企业往往害怕和抗拒变革,改进业务流程阻碍很大。

国内的情况更加复杂。由于信息化水平低,很多企业软件应用还处于非常原始的阶段。八百客副总裁李淼透露,国外企业软件厂商的竞争能力很强,它们能只 提供一个平台产品,剩下的开发全靠客户自己。而国内客户则不具备这样的能力,需要厂商开发应用给客户提供。他举例说,八百客的客户中98%没有 CIO,70%的客户连Excel表还用不好,在这种情况下,要求他们走自己开发的道路,确实非常困难。而惠普的汪洋更指出了国内企业软件企业的诸多问 题。公司急功近利,更多的是在赶项目进度,“应用破破烂烂,功能马马虎虎,性能差”的软件项目屡见不鲜。在这种大环境下,技术人员地位往往不高,多数干技 术不到10年就开始转型非技术岗位,而国外很多技术人员都是终身制,这意味着我们最多用10年的时间去做一个事情,而别人用一生在做,其中的技术积累和沉 淀差别巨大。人员水平良莠不齐,能力和经验缺乏,也使开发流程不完善,敏捷等先进方法不易推行。此外,国内公司总体上规模小、实力弱,也是造成失败案例较 多的原因。

而解决这一痼疾,孕育着巨大的商机。种种迹象表明,企业软件正面临涅槃重生。

企业软件的变局

近几年来,兴起了云计算、移动、社会化、海量数据(Big Data)和IT消费化这五大趋势(企业软件专家Dion Hinchcliffe称之为Big Five),对企业软件影响巨大。大变局已经开始。

在国外,Marc Andereessen和Peter Thiel等当今硅谷最有影响的投资人和思想者,都认为企业软件市场大有可为,并投入了大笔资金。

Aaron Levie是面向企业提供云存储和内容管理服务的新锐公司Box.net的创始人,该公司已经拥有众多财富500强客户。他去年9月曾撰文“Enterprise Software Is Sexy Again”,一面回应Scoble三年前的话题,一面宣告新时代的到来。

他发现,2009年以后,许多硅谷创业者和工程师们开始雄心勃勃地进军企业市场,诞生了一批带有互联网基因的新兴企业软件公司。除了市值已达140 多亿美元的先驱Salesforce之外,Facebook创始人之一Dustin Moskovitz创办的在线协作平台Asana,已经上市的企业社会化平台Jive,人力资源平台Workday,在线呼叫中心LiveOps,代收费 已经超过10亿美元的客户订阅与支付平台Zuora,估值逼近10亿美元的Palantir等等都是其中的代表。

微软、IBM、Oracle、SAP等主导的企业市场相对互联网来说的确是更大的市场,预算非常惊人,高达几千亿美元,仅美国政府每年在IT上的开 支就高达800亿。相比之下,Google、Yahoo!、Facebook等众多互联网企业所赖以生存的重要收入来源 ——美国网络广告市场总值仅242亿。

新兴的企业软件公司未必会直接与借传统C/S模式发展起来的企业软件巨头对抗,但云是一种天然民主化的驱动力,消除了来自供应商的所有不自然的渠道、销售和分销优势。有了云,机构的任何用户都是潜在的买主——自下而上的技术采纳正逐渐取代自上而下的部署。

新兴的企业软件公司所要解决的是十年前不存在或者无法解决的问题。今天的企业,有海量的数据要分析和管理,有各属不同角色的员工要共同协作,有分布 在全世界的潜在客户要营销,有许多业务问题要实时地解决。他们需要更强大的技术迎接这些挑战。与SharePoint三年才出一个版本,而且少量的补丁都 会让IT人员麻烦不已相比,互联网的敏捷研发和发布显然有巨大的优势。

同时,新的企业服务将通过免费增值(Freemium)商业模式以互联网规模运营,与最流行的消费应用一样迅速获得成百万的用户,创业公司也有前所未有的机遇。比如,企业微博Yammer每个季度的收入都在翻番。

新的企业软件公司的文化与消费互联网公司更像。他们不去组建强悍的销售团队,而是专注于产品,将其作为获取用户的最佳方法按使用和订阅的计费模式 取代了传统的许可模式,用户真正使用之后,才付费,这也促使企业软件公司开发用户需要而且真正使用的产品,而不是能卖得更好的产品。

对于国内的情况,起步科技马科认为,现在是中国企业软件行业的机遇期。没有哪个国家这些年里新增了这么多企业,而且以高速在发展,市场环境、商业模 式都在发生快速变化,中国企业软件行业有可能创造一些前所未有的变革。但企业软件开发者要抓住这一机遇,必须以开放、积极的心态,拥抱变化,向互联网学 习。不仅学习技术,也要学习商业模式。他的观点我非常认同。

八百客李淼将国内企业软件的变化总结为四点:数据集中化平台化,产品高度集成,可以根据需求随时修改;快捷化,就是越来越傻瓜化,比如移动版、语 音识别、菜单的简洁化、功能的简单化等;扁平化,公司不再像日本那样有十几层架构,而会像美国现在普遍采用的四层结构那样,基层和CEO 之间,只隔着两个人,这将大大改进管理,因为不干活的人越来越少了。

传统企业软件公司正面临Clayton Christensen创新者窘境的严峻考验。但SAP、IBM等在自己的企业内部与产品中也有很多企业2.0理念的成功实践。大变局之下,挑战与机遇共存。Box.net公司的经验值得大家借鉴:

  • 让客户感觉自己是公司的一部分——这一点所有企业软件公司都应该向Zappos学习;
  • 收入取决于客户的成功与使用——如果人家不用,你的产品就一文不值;
  • 开发人们每次使用时都会兴奋的产品——这做起来难,忘起来容易;
  • 快速前进,保持朝气,不断创新——自满必然导致优秀人才和客户的流失;
  • 真正解决企业的大问题——问题越大,回报越大。

 

 

观后:

     身为企业开发的一员,我深感与用户的隔阂,UI的陈旧,技术的落后,数据规模的稀缺,人才的流逝,因循守旧,抑制创新。问题多多。

     所以企业级开发必须主动拥抱变化,拥抱互联网。

转载于:https://www.cnblogs.com/prime/articles/2270456.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AES算法

算法简介 AES本质是一种对称分组密码体制,采用代替/置换网络。每轮由三层组成:线性混合层确保多轮之上的高度扩散,非线性层由16个S盒并置起到混淆的作用,秘钥加密层将子秘钥异或到中间状态。 AES加密数据块和秘钥长度可以是128比…

IDA使用方法-----1

0x01 启动IDA new:反汇编一个新文件go:运行,直接进入IDAPrevious:载入一个我们以前编译过的程序 如果不想每次都看到这个对话框,可以取消该对话框底部的Display at startup(启动时显示)&#x…

objdump命令详解

objdump命令是用查看目标文件或者可执行的目标文件的构成的gcc工具。 选项 --archive-headers -a 显示档案库的成员信息,类似ls -l将lib*.a的信息列出。 -b bfdname --targetbfdname 指定目标码格式。这不是必须的,objdump能自动识别许多格式,比如…

《Pro ASP.NET MVC 3 Framework》学习笔记之四【领域模型介绍】

主题:应用领域驱动开发(Applying Domain-Driven Development) Domain Model是MVC程序的"心脏",其他的一切,包括Controllers和Views仅仅是用来跟Domain Model交互的一种方式,ASP.NET MVC并没有限制使用在Domain Model上面…

一步一步学pwntools(适合新手)

序 pwntools是一个二进制利用框架。官方文档提供了详细的api规范。然而目前并没有一个很好的新手教程。因此我用了我过去的几篇writeup。由于本文只是用来介绍pwntools使用方法,我不会过于详细的讲解各种二进制漏洞攻击技术。 Pwntools的“Hello World” 栈溢出无…

标志寄存器:CF、PF、AF、ZF、SF、TF、DF、OF

注:下面说到的标志寄存器都是缩写,C就是CF,其他也一样 标志寄存器:C、P、A、Z、S、T、D、O的内容只会是0或1,0表示假,1表示真 O:溢出标志 一个寄存器如果存放的值超过所能表示的范围&#xf…

Firefox2狂占CPU解决办法

https://images.cnblogs.com/cnblogs_com/Tisty/138006/o_firefox3.jpg 看了一下,不知道 "jpeg_free_large" 是干啥的,遂用 "Firefox jpeg_free_large" Google 一下,出来的一堆东西里有帖子说可能和 Apple 的 QuickTime …

PUSHAD和POPAD,以及PUSHA和POPA

PUSHAD PUSHAD也叫保护现场,就是把我们的寄存器压入栈中 pushad是把eax,ecx,edx,ebx,esp、ebp,esi,edi依次压入栈中,ESP会减少32,相当于: push eax push ec…

MOVSX和MOVZX

MOVSX 先符号扩展,再传送 格式: MOVSX 操作数A ,操作数B //操作数B的空间小于A比如说我们使用命令: movsx eax,bxbx是16位,eax是32位,传值过程: 先用bx的符号位把eax高16填满,b…

LEA与XCHG

LEA 格式: LEA 通用寄存器 内存地址功能:取地址命令 将内存地址赋值给寄存器 lea eax,dword ptr ds:[ecx0x16]dword 双字 就是四个字节ptr pointer缩写 即指针ds 数据段版寄存器[]里的数据是一个地址值,这个地址指向一个双字型数据 将dwo…

ADC和SBB命令

ADC 带进位加法指令 用法: adc 操作数1,操作数2相当于: 操作数1操作数2进位标志CF->操作数1现在的eax是0,C1,用adc指令直接会是0x6 SBB 带进位减法指令 用法: sbb 操作数1,操作数2相当…

mul和div指令(8位,16位,32位)

MUL 无符号乘法指令,默认操作数与eax相乘(这里只说32位,其他与下面的div类似) 格式: mul 操作数 //操作数只有一个操作数与eax相乘,结果共有16位(这里的16位是16进制数)&#xff…

imul和idiv指令

imul 有符号乘法指令,分单操作数,双操作数和但操作数 单操作数:此形式与mul指令使用完全相同,操作数乘以al、ax、或eax寄存器中的值,乘积分别存储到ax、dx:ax或edx:eax中 执行指令&#xff1a…

Ajax的注册应用

最近发现Ajax在用户注册表单和用户登录表单方面应用,最能体现Ajax的交互特点,因此又是写了一个习作! 演示效果 新开窗口地址: http://www.klstudio.com/demo/ajax/reg.htm 下载地址:http://www.klstudio.com/demo/ajax/reg.rar &…

XADD和NEG命令

XADD 交换相加指令,先交换然后相加 比如说: xadd eax,ecx /* 相当于:先执行:xchg eax,ecx然后执行:add eax,ecx */此时eax2,ecx3,执行完:eax5,ecx2 neg …

Java——File类

一,File类的概述和构造方法 A:file类的概述 file类可以理解成一个路径 文件夹或者是文件夹路径 路径分为绝对路径和相对路径 绝对路径是一个固定的路径,从盘符开始 这里的G:\TIM 就是一个绝对路径,是一个固定的路…

vue3 配置 @符号

config,ts 配置 有 爆红 安装 npm install 一下 然后 配置 路径提示功能 tsconfig.json 配置 路径提示功能 一共这两个路径配置

mts模式_MTS的完整形式是什么?

mts模式MTS:Microsoft Transaction Server /移动电话服务/多通道电视声音 (MTS: Microsoft Transaction Server/ Mobile Telephone Service/ Multichannel Television Sound) 1)MTS:Microsoft Transaction Server (1) MTS: Microsoft Transaction Server…

Java——IO流

一,IO流常识 Ⅰ,IO流的概述 1,IO流用来处理设备之间的数据传输 2,Java对数据的操作都是通过流的方式 3,Java用于操作流的类都在IO包中 4,流 按流向分为: ①输入流 ②输出流 5&#xff0…

《软件》2011年第6期刊登出 《DB 查询分析器》中断SQL语句的执行

《软件》编辑部寄来了2011年第6期样刊,在2011年第6期,刊登出了本人的论文------“《DB 查询分析器》中断SQL语句的执行”。 论文刊登在第42页,排在第13篇,还比较靠前,呵呵。 在“万方数据”和“中国期刊全文数据库”中…