`
kong_desheng
  • 浏览: 22464 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

论中国软件的失败:纯技术原因

阅读更多


中国有十几亿人口,从事软件的人员有数百万,但却鲜有听说,中国有哪个企业做出了一款软件产品,可以与国际上同类软件相媲美的,达到世界一流的水平。

这里所说的软件,是指以产品或项目形式,最终交付客户手中,经得起客户严格检验的纯软件模块或系统。所谓达到世界一流的水平,不是厂家自己来宣传,而是在市场上得到世界性的认可。
以这样的标准,你能说出中国有哪款软件是世界一流的?

以前有种说法:中国不适合做基础软件的开发(比如操作系统、数据库等),只适合做应用开发。因为基础软件技术门槛高,我们没有技术积累,另外国外巨头希望自己牢牢把控核心技术,通过各种手段来限制别人来开发。因此,中国只能做应用开发。1984年:“计算机要从娃娃抓起”,软件作为计算机的灵魂走入中国人的世界。到现在26年了,中国为什么还没有一款世界一流的应用软件?

为了回答这个问题,我们需要走近世界一流的软件厂商,近距离观察他们的软件研发过程,看他们的世界一流的软件,是如何研发出来的。再反观中国的软件企业,看我们的软件是如何研发出来的。二者相比,答案自然就出来了。
然而,即使是世界级的软件巨头,比如Microsoft,Oracle,SAP等,他们内部的组织结构、岗位设定、软件研发过程管理也不相同。但最终他们都产出了世界一流的产品,那么他们应该具有生产世界一流产品所需的共同特征。那么,这些特征到底是什么呢?

根据我多年的见闻和体会,我总结如下:

一个软件公司要想产出世界一流的软件产品,从技术角度分析,至少要具备以下能力:
1)世界一流的需求分析和管理能力
2)世界一流的软件UI设计能力
3)世界一流的软件架构设计能力
4)世界一流的软件编码实现能力
5)世界一流的软件测试能力
6)世界一流的软件文档写作能力

我们来逐个考察一下:
1)世界一流的需求分析和管理能力
   软件源于需求,充分满足用户需求的软件,就是优秀的软件。但弄清客户的需求,绝非一般的人可以做到。除了用户可以明确告知的显性需求,还有大量的用户未说出、甚至客户自己还没有意识到的需求。还有可维护性的要求、安全性的要求、性能的要求等等。
   只有站在客户的角度,设身处地,充分理解客户的业务内容、发展现状、遭遇问题和将来规划,以及客户的组织结构、运作流程、甚至当期预算等,再借助高超的需求分析能力,将客户的需求一一剖析清楚。
   另外,在后续的研发过程中,对客户的需求要进行有效管理。如果需求管理失控,需求一变再变,项目注定要不断延期,质量下降,走向失败。一流的软件企业,会对客户进行大量的引导、说服和教育工作,让其认识到软件开发的复杂性和系统工程性,因此客户提出需求时会十分审慎,不会随意提一些很花哨、实际用不到的功能。再有,客户是需要按需求进行付费的,提更多的需求,就意味着客户需支付更多的费用。
   在这个环节上,中国的软件企业是做得非常差的。基本上,项目的需求还没搞清楚,就先签单,然后再做需求调研。合同金额已经确定,客户提多少需求,都是这些钱。因此,客户往往会提非常多的需求,并且频繁进行需求变更。再加之中国的软件企业中,很少有具备高超需求分析能力的人,需求分析不到位,需求控制不住,这就从项目一开始就注定了失败,最终只能产出劣等的软件。
   为什么中国企业中很少有具备高超软件需求分析的人员?大学里没有软件需求分析这门课;有几个人参加过软件需求技能培训并在项目实践中强化运用?中国所谓的系统分析员,在项目实战中毫无用处。有谁能说出软件需求分析的要素、方法和过程?大多数中国软件公司,都是项目经理去做需求分析,项目经理就是凭自己的感觉,把用户说的记录下来,这就是所谓的软件需求说明书了。这样的软件需求分析过程,为后续软件研发过程埋下了巨大的隐患。

2)世界一流的软件UI设计能力
   一款优秀的软件,不仅界面要美观,更重要的是,客户操作软件时要非常方便实用。因此,世界一流的公司,都会安排专门的UI、UE工程师,进行软件UI设计。UI设计,不仅要考虑软件的功能、操作逻辑,还要考虑客户的能力水平,力求简单直观。
   我们中国的软件公司,界面基本都由程序员来做,最后由美工画几个图贴上去。最后客户用起来,感受就是三难:“难看、难用、难受”!

3)世界一流的软件架构设计能力
   唯有顶级的软件架构师,才能构建出世界一流的软件。软件架构之于软件,犹如地基之于大厦,从根本上决定了软件的质量。中国有哪个软件企业,肯出大价钱,聘请一流的软件架构师?中国的软件企业,大多用二流、三流的软件架构师,甚至根本没有软件架构这个环节!

4)世界一流的软件编码实现能力
   硅谷的程序员,一个月几万美金,而且35岁以上的程序员才是真正的主力。为什么?他们从小学就开始学习编程,Linux/Unix/C/C++/数据结构/多线程/网络/WEB 各种技术非常精通,有20年以上的编程经验,这样的程序员写出来的代码,是什么质量?这些人写出的软件,能不世界一流吗?
   而中国的程序员,从大学才开始学编程,在软件企业中软件程序员薪酬一般在3k~7k 之间,年龄在25~30之间为主力,大多数人连指针、内存、链表、栈都搞不清楚,就在那儿开发软件。可以想象,这些人开发出的软件,会是怎样的质量?

5)世界一流的软件测试能力
   在中国,软件测试被认为比软件开发低一等的工作。因此,从开发团队淘汰的人,通常被转入测试团队。另外,公司内部闲置人员,也往往被安插到测试部。基本上,是个人都能做测试。这就是中国企业软件测试的状况。这样,如何保证交付给客户的软件质量?

6)世界一流的软件文档写作能力
   老外的软件,都会带有详尽的文档。文档内容之丰富,表述之精确,文本之流畅,让我们佩服之极。
   在中国,大学中至今还未有软件文档写作的课程,培训机构也未有此类课程。因此,中国的程序员大多不写文档。项目经理硬性要求时,才硬着头皮,写出一些干干巴巴、空洞无物的文字,实在让人无法读下去。

   因此,中国的软件企业,用不称职的需求分析人员、二三流的软件架构师、最初级的程序员、最初级的测试人员,在需求管理失控的情况下,输出了低劣的程序、空洞的文档和三难的软件界面。

   这种状况下,中国软件怎么不失败?

11
10
分享到:
评论
11 楼 lz726 2012-05-08  


赞同啊


国人太浮躁了

也太激进了~
10 楼 laitaogood 2010-03-25  
引用
   在中国,大学中至今还未有软件文档写作的课程,培训机构也未有此类课程。因此,中国的程序员大多不写文档。项目经理硬性要求时,才硬着头皮,写出一些干干巴巴、空洞无物的文字,实在让人无法读下去。

我们学院开了《软件文档写作》的课程,可惜,我们都不大重视这个课程
9 楼 fuwang 2010-03-24  
中国不适合做基础软件的开发(比如操作系统、数据库等),只适合做应用开发
---------------------------
实际上也不适合做应用开发,你看那些应用烂得一比,忽悠坑蒙拐骗最重要。
8 楼 elemark 2010-03-18  
6)世界一流的软件文档写作能力
   老外的软件,都会带有详尽的文档。文档内容之丰富,表述之精确,文本之流畅,让我们佩服之极。
   在中国,大学中至今还未有软件文档写作的课程,培训机构也未有此类课程。因此,中国的程序员大多不写文档。项目经理硬性要求时,才硬着头皮,写出一些干干巴巴、空洞无物的文字,实在让人无法读下去。
------------------------------------------------------------------
想当年东软在大连办学校的时候,老师都是项目经理一级的,所有环节全都透透彻彻的覆盖到,简直就跟企业的员工培训一样。学生学习压力相当之大,学习效果也是相当的好。包括文档格式什么的。可是现在,唉~~~~~

前一阵子给导师做项目的时候,想要写写文档什么的,发现网上这种模板却相当的匮乏,自己写又写的一塌糊涂,唉~~~~

高校扩招,计算机教育就开始于谭浩强的C语言,结束于耿祥义的JAVA了,跟现实的软件项目哪有一点儿的关系。

符合楼主要求的高效的、智慧的软件项目人员,谁还在国内的企业待着啊?赶快学习学习英语进外企了啊。越是强大的,就越强大,越是弱小的,就越弱小。

楼主能不能贴一些文档或者文档的例子出来,让我们学习一下,也算是为中国软件行业做贡献了。发现现在自己可以勉强写写程序,写文档那比让我写程序还难。多谢楼主了!
7 楼 laitaogood 2010-03-13  
国人太浮躁……
6 楼 xiaozhonghua 2010-03-13  
感觉我们的问题根本不是纯技术的问题。提到这些因素其实这些都统统不重要,还是和中国这个大的环境有关。中国绝对不乏有理想有能力有抱负的人才和企业,也有能力去掌握和创造很多技术,但是在目前的国内环境下很难发生,最终都被同质化了。这个和中国的足球、汽车行业、大飞机项目等都类似。一个重要的问题是我们国家不保护知识产权,也不够重视人才,市场环境也很不规范。软件企业举步维艰,满嘴假大空的却可以风光一世,搞房地产的更是富可敌国。导致软件公司一上市都去搞房地产了,程序员干两年不是转行就是给外企打工去了。怎么可能有什么世界级的东西出来呢?靠一腔热血和抽血剥皮恐怕也解决不了问题,就像现在的中国足协,解散或通通换掉,又能怎么样呢。

可以预见在未来的很多年我们还会被外国人狠狠的上无数课,也许才可能开始醒悟和改变。
5 楼 imlsq 2010-03-12  
楼主太理想了。

国外绝对不是靠这些因素成功的,而是一个完全充分竞争的市场环境,造就了软件业的成功,其它都是次要的
4 楼 flootball 2010-03-12  
这个只是中国企业的冰山一角。
不光软件行业,别的企业一样不行!
3 楼 cuixuxucui 2010-03-12  
描述了很真实的现状,我们却无能为力。

个人很渺小,我们能做些什么呢
2 楼 风小却 2010-03-12  
世界可能将不再属于传统的软件制作商了,在传统的软件制作领域,积累是很重要的一个因素。决定软件成功可能性的,往往是代码量(这里指的是同档次编码者所编写的代码量)。一个处于起步期的软件想要打败另外一个功成名就的同门,几乎成了不可逾越的高峰。

可是随着互联互通时代的到来,一旦带宽得到极大的发展,整个软件行业进行一次抽血剥皮式的改造。软件不再是一坨功能的堆砌。而是解决某一问题的手段,或者说服务。

历史总是这样,螺旋盘环着上升,掀掉高高在上的微软,将人类带回到 unix 的软件设计哲学。

互联网给了中国很多的机会,可惜被某一小撮利益即得者任意的撕扯蹂躏到面目全非。豆瓣是其中最令我痛心的牺牲者。

BTW,JavaEye上那些无聊的投票者们,可不可以不要一看见跟自己意见不合的回帖就给评上差帖呢?
1 楼 zgqynx 2010-03-12  
very good !

相关推荐

    Net本质论 第1卷:公共语言运行库.pdf

    Net本质论 第1卷:公共语言运行库.pdf

    敏捷软件测试:测试人员与敏捷团队的实践指南

    敏捷软件测试作为当前软件开发领域的一种热门方法论,强调的是在整个开发周期中持续进行软件测试,以确保产品能够在每个迭代中交付预期质量和满足用户需求。Lisa Crispin 和 Janet Gregory 是敏捷测试领域的权威专家...

    软件资格水平考试(软考)-高级-论文样例:论软件质量保证

    软件资格水平考试(软考)-高级-论文样例:论软件质量保证 在软件开发中,软件质量是软件的生命力保证软件质量除了技术上过硬以外,还需要一个良性的管理环境。软件过程作为软件开发的管理环境对软件质量起着决定性...

    软件资格水平考试(软考)-高级-论文样例:论基于构件的软件开发

    软件资格水平考试(软考)-高级-论文样例:论基于构件的软件开发

    软件项目管理论文:敏捷在软件开发中的应用

    本文从敏捷方法的定义,提出背景,实施方法等方面对敏捷方法进行描述,并与传统软件工程方法相对比,分析敏捷开发的优劣。通过实际软件开发的案例分析软件生产的价值观,得出敏捷方法在软件开发中的价值。关键词:...

    软件测试论文

    - **软件测试案例分析**:通过对典型软件测试失败案例的研究,如美国航天局火星极地登陆任务失败、爱国者导弹防御系统的软件缺陷等,可以深刻认识到软件测试的重要性以及如何避免类似问题的发生。 #### 八、结论 - ...

    软件技术专科毕业设计(论 文)

    - **背景介绍**:随着信息技术的发展,软件技术已经渗透到了各行各业,尤其是企业管理领域。对于金融公司而言,一个高效且智能的客户信息管理系统能够极大地提升其竞争力。 - **客户需求分析**:金融公司面临的挑战...

    .Net本质论 第1卷:公共语言运行库

    .Net本质论 第1卷:公共语言运行库。讲述CLR的

    软件系统架构的方法论

    总之,软件系统架构的方法论是一门综合性的学科,它要求架构师在理解和平衡业务需求、技术限制、性能要求和团队协作等多个因素的基础上,构建出高效、稳定且易于扩展的软件系统。通过学习和掌握这些方法论,开发者...

    软件技术基础工程-软件项目管理

    【软件项目管理】是软件技术基础中的重要组成部分,起源于20世纪70年代中期,当时由于大量软件项目因管理不善而导致延期、超出预算和质量不合格,引发了业界对软件管理的关注。到了90年代中期,尽管技术有所进步,但...

    软件开发 软件方法论

    在软件开发领域,软件方法论是指一系列指导软件项目管理和开发的技术、流程和规范的集合。一个好的软件方法论可以帮助开发团队有效地规划、设计、实现、测试和维护软件系统。UMLChina创始人潘加宇先生在其著作中深入...

    区块链技术调研报告之二:区块链技术进化论-区块链技术的国内实践和展望.zip

    区块链技术调研报告之二:区块链技术进化论-区块链技术的国内实践和展望

    ACE技术内幕:深入解析ACE架构设计与实现原理

    《ace技术内幕:深入解析ace架构设计与实现原理》从构架模式、编程示例和源代码3个维度系统地对经典网络框架ace(adaptivemunicationenvironment)的架构设计和实现原理进行了深入分析,它能解决4个方面的问题:,...

    引力论和宇宙论:广义相对论的原理和应用

    《引力论和宇宙论:广义相对论的原理和应用》是著名物理学家史蒂文·温伯格的一部经典著作,自初次出版以来,它一直是引力论和宇宙学领域的重要参考书。这本书深入浅出地阐述了广义相对论的基本原理,并探讨了其在...

    反抄袭软件反抄袭软件

    3. **知网查重**:中国本土的查重软件,特别适用于检测中文文献,对于国内的学术论文和网络资源有很强的覆盖率。 4. **Grammarly**:除了查重,它还提供语法和拼写检查,帮助提高写作质量。 三、使用反抄袭软件的...

    MES软件:GE Digital汽车制造二次开发-GEDigitalMES系统架构与组件

    MES软件:GE Digital汽车制造二次开发_MES系统实施方法论.docx MES软件:GE Digital汽车制造二次开发_MES软件:GEDigital汽车制造二次开发基础.docx MES软件:GE Digital汽车制造二次开发_二次开发工具与技术.docx ...

Global site tag (gtag.js) - Google Analytics