`
softstone
  • 浏览: 472423 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

“软件蓝领”批判

阅读更多

“软件蓝领”批判

撰文/透明

说在前面

最近一段时间,“软件蓝领”的概念被炒得沸沸扬扬,连我老爸都忧心忡忡地打个电话问我:“听说以后只要找些高中生来培训两个月就可以编程序,那你岂不是要没饭吃?”由此可见,尽管“软件蓝领”的阶层尚未真正形成,“软件蓝领”这个概念倒是早已深入人心。不过就历史经验来看,中国人最擅长逻辑思维,因此也最容易受语言的鼓惑而陷入逻辑先验的泥潭。那么,抛开所谓的“概念”,我们来科学地看看“软件蓝领”。

在开始一切的讨论之前,首先要说明一点背景。本文将大量使用建筑科学与软件科学作类比,这是基于这样的考量:软件工程学很大程度上受到建筑科学的影响,并且软件比建筑物更具灵活性;因此软件与建筑是有可比性的,但是软件对感性质量的要求会更高、而对物理质量的要求则不如建筑那么高(我想这是很自然的:尽管Windows不断打补丁,它仍不失为一个优秀的软件;而盖房子则不允许有任何“补丁”出现)。如果你不能承认这一考量,那么下面的文字对于你都是废话,可以不必看下去了。

一点背景

OK,现在我们已经有了起码的共识,继续。传统软件工程方法强调软件的“模块化”,认为用少数的、规格统一的模块(module)加上简单的模块拼装就可以构建出大量的、彼此不同的软件产品。这正是软件蓝领能够产生、存在的理论基础。其实这种概念并不新鲜,自从第二次工业革命以来,建筑师们就开始追求一种快速的、模块化的建筑方法,并且卓有成效——他们用完全相同的“小格子间”模块建起了无数的摩天大楼。这是伟大的成就,难怪软件工程专家们一开始就选定了“模块化”作为自己模仿的对象。而且,当软件的用户只是极少数人的时候,这种模块化的开发方法的确起到了很好的效果。

但是你知道在70年代,以Christopher Alexander为首的建筑学家把这种模块化建筑方法叫做什么吗?“语言的沦丧”。C.Alexander认为,建筑物之所以“有生气(alive)”,是因为它由一些特定的、有生气的模式(pattern)组成。模式之间彼此相似,但又彼此不同。道理很简单:模式具有可定制性,而模块则不具有。完全相同的模块必定是与具体目的无关的。换句话说,用模块化方法方法建造的产品能够满足最基本的要求,却不能满足任何一个人的特定要求。为了满足单个人或者一小组人的要求,就必须采用模式化的方式为他们定制。模式是既有的,设计、建筑是定制的。有人会说:任何的物质,最终都是由同样的模块——原子——构成的。但是,即使是两个碳原子,它们也是彼此不同的,因为其中的电子具有量子性。所以,模块化(所有模块完全相同)不是自然的,而模式化(概念上一样,细节上有差异)才是自然的。

上面这一段也许有点太抽象,现在从工程学的角度来看看。C.Alexander认为,任何一个系统都必须处理一个问题:系统的内应力。学过工程力学的人都知道,在设计结构时必须注意内应力。如果内应力疏解得当,它会使系统更加稳固;如果疏解不当,它会加速系统的崩溃。在《建筑的永恒之道》里,C.Alexander把“内应力”从物理范畴扩展到了心理范畴,人的喜好、习性……都属于内应力。如果使用恰当的模式、进行恰当的组合,内应力将得到恰如其分的疏解,从而增强系统的稳固性。很明显,要使内应力得到“恰如其分”的疏解,建筑者必须了解模式本身,并在实现的过程中不断根据当前的情况进行微调,否则很容易造成应力集中而加快系统崩溃。

(在这里插上一段。C.Alexander认为:好的模式应该在其内部处理相关的内应力;好的模式组合应该在其之间恰当地疏解内应力。这个观点是不是和开放-封闭原则很相似?是不是也有点象高内聚/低耦合的原则?所以说,各种科学之间都是相通的;所以说,建筑学对软件开发者绝对有指导意义。)<!----><o:p></o:p>

然后,C.Alexander也提到了设计和实现之间的关系。他认为:一个具有了模式思想、掌握了模式语言的人可以作出优美的设计,这个设计是能够满足他的要求的;但是,如果设计的实现者没有模式思想、没有模式语言,他便不能完整地实现该设计。而且,从最简单的方法,他会采用模块化的实现方法,从而使产品的质量迅速降低。

回到正题

总结一下,我刚才讲了三件事:

1.       模块化方法不能满足任何人的特定要求,只能满足所有人的最基本要求;模式化方法是根据特定要求而定制的,所以能满足客户的要求。

2.       模块化方法不利于疏解系统内应力,从而使系统趋于崩溃;模式化方法利于疏解系统内应力,从而使系统具有自适应能力,趋于稳固。

3.       模块化实现方法使设计质量降低;模式化实现方法保证产品质量与设计质量一致甚至更高。

我相信大家都能看懂我的意思了。由于软件对于感性质量的要求更高,对于物理质量的要求较低,所以模块化方法更加不适宜于软件开发;而模式化方法则更加适宜于软件开发。另一方面,从我上面的叙述大家也能看出:模式化开发要求开发者有对整个系统的全面了解,有足够的知识广度和深度;而所谓的“代码工人”、“软件蓝领”只能进行模块化的开发,他们的知识无法保证他们现实的需求作出正确的微调,因此他们开发出的模块极易造成应力集中。在建筑学中,模块化方法建造出的产品只能满足最基本的要求,那就是物理性质的要求;而软件产品对于物理性质要求更低,而对感性质量要求更高,所以模块化方法建造出的软件产品连最基本的要求都可能无法满足。

上面讲了许多建筑学知识,最后再从软件科学的角度来说说。我们都有知道:软件中的可复用模块是被很多其他功能部分共享的,也就是说,很多功能部分依赖可复用模块。如果可复用模块再依赖这些使用它的功能部分,那么它必定是不稳固的,因为任何一个部分的修改都可能导致连锁反应。所以,可复用模块必定是不依赖于功能部分的,否则它便不具有可复用性。很明显,这样不依赖任何特定功能的通用模块数量会很少,而且设计要求极高——设计STL绝对不是“软件蓝领”能做的。从上面的结论可以得知:可复用的模块设计要求极高,用可复用模块拼装成的功能部分又不具有可复用性(因为它依赖于特定的应用)。那么,没有深厚知识底蕴的“软件蓝领”们该何去何从?

总结

软件工程和建筑工程有很多共通之处,上面我用一些建筑学的知识,证明了“软件蓝领”的不合理性。当然,“代码工人”这个词本身便带有建筑学的影子。但是请注意两个事实:第一,软件工程中的科技含量远远高于土木工程;第二,软件开发中重复性的劳动很容易用机器代替。由此,我更加可以肯定:所谓的“代码工人”、“软件蓝领”——也即不具有深厚专业知识底蕴,只有编码能力的程序员——在软件行业中是无容身之所的。

参考资料

《建筑的永恒之道》,原书名The Timeless Way of BuildingChristopher Alexander著,中文译本由赵冰翻译,知识产权出版社20022月出版。

《设计模式》,原书名Design PatternsEric Gamma等人著,中文译本由李英军等人翻译,机械工业出版社20009月出版。

Robert C. Martin, Designing Object-Oriented C++ Applications Using Booch Method, Addison-Wesley, 1992.

分享到:
评论

相关推荐

    2020新蓝领人群洞察报告-QuestMobile-202009精品报告2020.pdf

    而“新蓝领”这一概念在现代社会中,往往是相对于传统的蓝领工人而言,指的是那些工作在新兴产业中的蓝领工人,比如物流配送、电子商务、智能制造等行业的工作人员。 洞察报告往往会通过市场调研、数据分析等手段对...

    蓝领O2O项目演示

    以微信为入口的蓝领打工O2O项目,让每一名蓝领扫一扫,摇一摇,更有趣,更好玩的O2O打工项目。

    蓝领需求申请表

    ### 蓝领需求申请表知识点解析 #### 一、蓝领需求申请表的基本概念与用途 蓝领需求申请表是一种专门用于企业批量招聘基础人力(即蓝领工人)时所使用的标准化表格。该表格主要适用于那些对于基础劳动力有大量需求...

    中国蓝领群体就业研究报告(2022).pdf

    中国蓝领群体就业研究报告(2022) 本报告对中国蓝领群体的就业特征进行了全面的研究和分析,涵盖了蓝领群体的规模、结构、就业发展历程、流动情况、就业意愿、离职倾向、就业质量、岗位特征、招聘模式等方面。 ...

    2021年蓝领用工及薪酬管理调研报告精华版(39页).pdf

    "2021年蓝领用工及薪酬管理调研报告精华版" 本报告是中智管理咨询有限公司(简称“中智咨询”)于2021年4月发布的蓝领用工及薪酬管理调研报告精华版。该报告基于对273家企业的调研,涵盖蓝领用工管理、薪酬激励策略...

    用户洞察报告系列-中国新时代蓝领消费与成长白皮书.pdf

    在中国社会结构转型和经济发展的大背景下,蓝领群体作为劳动力市场的重要组成部分,其消费特征和成长路径备受关注。《中国新时代蓝领消费与成长白皮书》是一份由即有分期主导,人民网和零点有数市场调研机构共同制作...

    95后新蓝领现状报告.pdf

    《95后新蓝领现状报告》是一份深入研究95后年轻蓝领群体生活、工作状况的研究报告,旨在揭示这一特殊群体的特质、职场挑战、心理压力以及未来规划。以下是对报告主要内容的详细解读: 一、95后新蓝领群体的定义与...

    2021一线蓝领用工管理及薪酬策略调研报告.pdf

    【2021一线蓝领用工管理及薪酬策略调研报告】是中智咨询于2021年4月发布的一份深入研究,旨在探讨中国企业在一线蓝领用工管理和薪酬策略方面的现状、挑战与发展趋势。中智咨询作为国内知名的管理咨询公司,专注于为...

    一线蓝领用工荒情况调研报告.pdf

    报告是由中智管理咨询有限公司发布的,主要针对当前市场中一线蓝领用工荒的情况进行了调研分析。报告中明确强调了内容的版权归属,禁止未经授权的转载和引用,并提供了官方的联系方式以便需要者获取更多信息。 2. ...

    金蓝领个人技术总结(2).pdf

    金蓝领个人技术总结(2).pdf

    传媒:一线蓝领用工荒情况调研报告.pdf

    报告涉及传媒行业在一线蓝领用工荒的实际情况。在报告中,版权声明部分详述了报告内容、数据和图片的版权所有,以及使用报告的条件和责任追究条款。 2. 样本分布和调研背景: 报告基于有效样本N=128的企业进行调研...

    中国蓝领调查报告.doc

    【中国蓝领市场现状与消费行为分析】 中国蓝领阶层的规模日益壮大,成为社会经济的重要组成部分。然而,尽管他们的消费总量超过白领,但市场上针对蓝领消费者的特定品牌却寥寥无几。这一现象揭示了商家对蓝领市场的...

    2020年一线蓝领用工荒情况调研报告-中智咨询-2021-29页.pdf

    ### 2020年一线蓝领用工荒情况调研报告 #### 调研背景与目的 本报告由中智管理咨询有限公司编制,旨在通过深入分析2020年中国一线蓝领劳动力市场的现状,探讨用工荒的具体表现及其对企业和社会的影响,并提出相应...

    2024蓝领人才发展报告-智联招聘.pdf

    ### 2024蓝领人才发展报告关键知识点解析 #### 一、蓝领人才供需趋势 1. **国内蓝领人才需求持续攀升**:近年来,随着我国经济高质量发展的推进,制造业不断转型升级,服务型消费需求逐渐增长,这些因素共同推动了...

    2023年中国蓝领零工行业研究报告.pptx

    "2023年中国蓝领零工行业研究报告" 本研究报告旨在深入探讨中国蓝领零工行业的现状、问题和发展趋势,为政策制定者、企业和相关机构提供参考和借鉴,推动行业的健康发展。 蓝领零工行业概述:蓝领零工是指从事体力...

    2019年蓝领生活与金融需求问卷调查报告.rar

    《2019年蓝领生活与金融需求问卷调查报告》是针对中国蓝领阶层的生活状况及金融需求进行深入研究的报告。这份报告揭示了蓝领群体在经济、消费、储蓄、投资、信贷等方面的行为模式,为我们理解这个庞大且重要的社会...

    基于微信小程序的蓝领劳务招聘平台设计.pdf

    蓝领劳务招聘平台是一款专门为招聘蓝领人员设计的移动互联网产品,基于微信小程序开发。此类平台的出现是为了解决传统蓝领招聘市场所面临的诸多问题,如用工效率低下、招聘渠道成本高昂以及蓝领人群换工作频繁等问题...

    2024年中国蓝领零工行业研究报告.pptx

    【2024年中国蓝领零工行业研究报告】 中国的蓝领零工行业是伴随着经济发展和产业结构变迁而崛起的重要劳动力市场板块。蓝领零工主要指从事体力或技术劳动的非正式员工,他们在建筑、制造、物流和服务等领域发挥着...

    2020新蓝领人群洞察报告-QuestMobile-202009.zip

    《2020新蓝领人群洞察报告》是由QuestMobile发布的关于中国新蓝领人群的深度研究报告,旨在揭示这一特殊群体在2020年9月时的生活、工作、消费习惯以及数字行为特征。报告主要关注了新蓝领人群的规模、分布、消费水平...

    ciic:2019年蓝领用工管理及激励策略调研报告.rar

    《2019年蓝领用工管理及激励策略调研报告》是针对中国工业与信息化产业发展中的一个重要议题——蓝领劳动力管理进行深入研究的行业报告。报告聚焦于2019年的实际情况,旨在揭示蓝领员工的管理工作现状、面临的挑战...

Global site tag (gtag.js) - Google Analytics