`
- 浏览:
22464 次
- 性别:
- 来自:
天津
-
中国有十几亿人口,从事软件的人员有数百万,但却鲜有听说,中国有哪个企业做出了一款软件产品,可以与国际上同类软件相媲美的,达到世界一流的水平。
这里所说的软件,是指以产品或项目形式,最终交付客户手中,经得起客户严格检验的纯软件模块或系统。所谓达到世界一流的水平,不是厂家自己来宣传,而是在市场上得到世界性的认可。
以这样的标准,你能说出中国有哪款软件是世界一流的?
以前有种说法:中国不适合做基础软件的开发(比如操作系统、数据库等),只适合做应用开发。因为基础软件技术门槛高,我们没有技术积累,另外国外巨头希望自己牢牢把控核心技术,通过各种手段来限制别人来开发。因此,中国只能做应用开发。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)世界一流的软件文档写作能力
老外的软件,都会带有详尽的文档。文档内容之丰富,表述之精确,文本之流畅,让我们佩服之极。
在中国,大学中至今还未有软件文档写作的课程,培训机构也未有此类课程。因此,中国的程序员大多不写文档。项目经理硬性要求时,才硬着头皮,写出一些干干巴巴、空洞无物的文字,实在让人无法读下去。
因此,中国的软件企业,用不称职的需求分析人员、二三流的软件架构师、最初级的程序员、最初级的测试人员,在需求管理失控的情况下,输出了低劣的程序、空洞的文档和三难的软件界面。
这种状况下,中国软件怎么不失败?
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Net本质论 第1卷:公共语言运行库.pdf
敏捷软件测试作为当前软件开发领域的一种热门方法论,强调的是在整个开发周期中持续进行软件测试,以确保产品能够在每个迭代中交付预期质量和满足用户需求。Lisa Crispin 和 Janet Gregory 是敏捷测试领域的权威专家...
软件资格水平考试(软考)-高级-论文样例:论软件质量保证 在软件开发中,软件质量是软件的生命力保证软件质量除了技术上过硬以外,还需要一个良性的管理环境。软件过程作为软件开发的管理环境对软件质量起着决定性...
软件资格水平考试(软考)-高级-论文样例:论基于构件的软件开发
本文从敏捷方法的定义,提出背景,实施方法等方面对敏捷方法进行描述,并与传统软件工程方法相对比,分析敏捷开发的优劣。通过实际软件开发的案例分析软件生产的价值观,得出敏捷方法在软件开发中的价值。关键词:...
- **软件测试案例分析**:通过对典型软件测试失败案例的研究,如美国航天局火星极地登陆任务失败、爱国者导弹防御系统的软件缺陷等,可以深刻认识到软件测试的重要性以及如何避免类似问题的发生。 #### 八、结论 - ...
- **背景介绍**:随着信息技术的发展,软件技术已经渗透到了各行各业,尤其是企业管理领域。对于金融公司而言,一个高效且智能的客户信息管理系统能够极大地提升其竞争力。 - **客户需求分析**:金融公司面临的挑战...
.Net本质论 第1卷:公共语言运行库。讲述CLR的
总之,软件系统架构的方法论是一门综合性的学科,它要求架构师在理解和平衡业务需求、技术限制、性能要求和团队协作等多个因素的基础上,构建出高效、稳定且易于扩展的软件系统。通过学习和掌握这些方法论,开发者...
【软件项目管理】是软件技术基础中的重要组成部分,起源于20世纪70年代中期,当时由于大量软件项目因管理不善而导致延期、超出预算和质量不合格,引发了业界对软件管理的关注。到了90年代中期,尽管技术有所进步,但...
在软件开发领域,软件方法论是指一系列指导软件项目管理和开发的技术、流程和规范的集合。一个好的软件方法论可以帮助开发团队有效地规划、设计、实现、测试和维护软件系统。UMLChina创始人潘加宇先生在其著作中深入...
区块链技术调研报告之二:区块链技术进化论-区块链技术的国内实践和展望
《ace技术内幕:深入解析ace架构设计与实现原理》从构架模式、编程示例和源代码3个维度系统地对经典网络框架ace(adaptivemunicationenvironment)的架构设计和实现原理进行了深入分析,它能解决4个方面的问题:,...
《引力论和宇宙论:广义相对论的原理和应用》是著名物理学家史蒂文·温伯格的一部经典著作,自初次出版以来,它一直是引力论和宇宙学领域的重要参考书。这本书深入浅出地阐述了广义相对论的基本原理,并探讨了其在...
3. **知网查重**:中国本土的查重软件,特别适用于检测中文文献,对于国内的学术论文和网络资源有很强的覆盖率。 4. **Grammarly**:除了查重,它还提供语法和拼写检查,帮助提高写作质量。 三、使用反抄袭软件的...
MES软件:GE Digital汽车制造二次开发_MES系统实施方法论.docx MES软件:GE Digital汽车制造二次开发_MES软件:GEDigital汽车制造二次开发基础.docx MES软件:GE Digital汽车制造二次开发_二次开发工具与技术.docx ...