互联网企业的劳动不稳定性转移与应对
——技术变迁与劳动控制

2020-01-07 09:37刘继伟
湖南广播电视大学学报 2020年1期
关键词:不稳定性程序员编程

刘继伟

(北京大学,北京 100010)

一、问题的提出

2000年以后,伴随中国互联网普及和软件商业化的浪潮,程序员的规模不断扩大。截至2014年,中国信息传输、软件和信息技术服务业就业人数达到336.3万人①,其中直接从事软件编程的相关从业人员超过200万人②。高薪酬、弹性工作等特点不断吸引着新的劳动者加入程序员队伍,互联网企业宽松、娱乐和人性化的工作氛围更是为人称道。面对中国经济智能化时代的启动,互联网和软件业大发展的浪潮即将到来。传统劳动过程研究将资本主义生产看作一个静态、固定不变的过程,而互联网企业中没有固定工时、没有明确任务规划和缺乏严格监管等现象使其在传统劳动过程的研究框架下难以解释。根据互联网等新兴产业的特点,提供辅助性的分析视角就显得尤为重要。

本文通过引入劳动不稳定性的研究视角理解互联网企业的劳动特点。不稳定性的视角受到布迪厄、贝克等人理论的启发,更加强调现代生产中的风险和不稳定性分配,有助于弥补传统劳动过程研究过于重视静态分析框架的不足。本研究通过访谈收集资料,受访对象共有18位,包括在各种企业中直接从事程序开发工作的程序员(14人)和现已离职的程序员(4人)两类人群。

二、技术变迁、劳动控制与劳动过程的不稳定性

关于技术变迁与劳动控制的讨论起源于马克思。在马克思看来,劳动是人类改造自然、实现自我的基本方式。劳动过程是由劳动力、劳动对象和劳动资料三个基本要素构成的一个动态过程,技术以劳动资料和生产工具的方式参与到劳动过程中。现代工厂对机器等技术的运用不仅生产出更多不变资本,还与特定的资本生产组织关系相配合,构成了劳动控制体制。受马克思启发,劳动过程研究非常关注特定的资本生产组织方式与技术的配合在劳动控制中的作用。

(一)技术变迁与资本主义生产方式

技术从来不是独立于社会生产关系对劳动生产过程产生影响。技术变迁通过一定的生产组织关系影响劳动过程,又最终促进生产组织关系本身的变化。关于劳动过程的研究在不同程度上推动了技术变迁与资本主义生产方式间关系的讨论。布雷弗曼认为进入垄断资本时代以来,大机器生产、自动化生产线的普遍运用与泰罗制的科学管理方式互相配合,造成工人劳动过程中“概念”和“执行”的分离,从而实现了工人劳动技能的退化[1]78-150。一方面,机器和自动化技术的应用使资本家有机会使用机械手段替代直接监管、纪律等手段对生产过程进行控制。机器生产和自动化生产线的引入使工人的劳动过程脱离工人自己的控制,以一种预先设计好的动作模式和生产速度运行。另一方面,机器和自动化技术的应用增加了劳动者的可替代性。机器生产的出现使得原来手工工匠时代劳动者所具有的技能逐渐失去优势,并且在很大程度上简化了工厂中劳动者的技能要求,使工人的可替代性不断增强。在布雷弗曼看来,从手工工匠到机器技术、再到自动化机器的使用,劳动者的生产过程被逐渐简化,配合强调规范和标准化的泰罗制管理,工人沦为资本生产的附庸。

布雷弗曼只看到了技术应用与科学管理方式对劳动生产的控制。他过于结构化的分析方式不仅夸大了科学管理在经验中的实际运用效果[2],还忽视了工人在劳动过程中的能动作用。一方面,布雷弗曼将资本主义生产组织方式简单等同于泰罗制管理。泰罗制作为一种理想化的管理手段远不能代表资本主义生产组织的全貌。而且仅依靠科学管理与机器技术的配合也难以达成资本家将劳动力转化为实际使用价值的目的。另一方面,面对资本控制,劳动者具有一定的能动性。这种能动性有两种表现:第一,资本主义劳动过程中劳动者具有多样的抵抗措施,如果将这些抵抗措施搁置一边,就不能全面理解资本主义劳动过程的组织特点;第二,要实现劳动力的使用价值,资本需要获得劳动者一定程度的同意与合作。劳动者的主观意愿也是影响资本生产的重要因素。因此,无论从资本生产组织方式,还是从劳动者的能动性来看,布雷弗曼的研究都存在一定缺陷。

弗里德曼[3]认识到为应对劳动者的抵抗和斗争,资本家具有更加灵活的生产管理方式。当劳动者掌握核心技术,或工人群体抵抗较为激烈时,资本家经常使用责任自治的管理方式加以应对,以薪资、福利、工时和劳动控制等多方面的优待,换取部分关键工人的合作。而对多数不掌握核心技术、可替代性较强的工人,资本家依旧倾向于使用直接控制的方式。弗里德曼提出了比科学管理更加灵活的责任自治与直接控制相配合的资本管理方式,通过更加灵活的管理方式,机器、自动化等技术的应用不一定使全部劳动者都沦为资本生产过程的附庸。只要劳动者能够通过掌握新技术等方式获得有利的谈判位置,反倒有可能因为新技术的引进从而获得薪资、福利和工时等多方面的改善。

弗里德曼提出的责任自治与直接控制相结合的资本管理策略在一定程度上考虑到劳动者的能动性,也更加全面地揭示了机器和自动化等技术应用对劳动过程产生的影响。但弗里德曼对资本主义生产组织方式的理解依旧过于简单。责任自治、直接控制的区分往往是理论上构造出来的管理类型,对同一劳动者资本家也可能同时采取两种控制策略。现实中责任自治、直接控制往往作为资本主义生产组织系统中的组成部分互相转化和影响。责任自治、直接控制等具体管理策略只是资本主义生产组织方式的简单表现。埃德沃兹将资本主义生产组织方式称为一种结构控制体系[4]。结构控制并非特定管理策略的简单集合,而是在系统和体系层面达到了对劳动者的全面控制。在他看来,资本社会中的科层组织就是这种结构控制体系的典型表现。科层组织的建立并非完全为了效率,更重要的是隐藏了资本窃取劳动者剩余价值的本质。在科层体制下,资本家对哪些工人采取责任自治的管理方式、对哪些工人采取直接控制的管理方式都有明确的制度规定。由于科层制度的合理性,劳动者也难以对整个控制体系提出质疑。埃德沃兹还指出了技术变迁在结构控制体系中的作用。在资本生产的早期阶段,资本家直接命令劳动者、对劳动者进行监控的简单控制方式更加通行。但随着大机器的引进,资本生产规模扩大和劳动者人数增加,简单控制难以奏效。大机器和自动化的应用为结构控制提供了基础,逐渐形成了包括技术控制和科层控制在内的结构控制体系。

与上述研究不同,布洛维认为劳动过程的研究不应局限于控制与反抗的控制权分析框架,而应返回生产本身,聚焦于资本生产与再生产过程。在布洛维看来,资本主义生产过程的组织并不只包括管理手段、科层组织等制度化的生产关系,还包括产生于劳动环节中的生产中关系。在他看来,除了明确的管理制度和科层组织外,生产中产生和再造的这些关系形式也在组织生产中起到重要作用,使得工人甘愿投入到资本主义生产中。通过对吉尔公司的田野调查,他指出在车间中存在着一种称作“赶工游戏”的生产中关系,这种非正式的生产中关系不仅维持资本生产,还吸引和促使劳动者积极参与到资本生产过程中。

从布雷弗曼到埃德沃兹,劳动过程研究以劳动过程的控制方式为核心,从将资本主义生产组织方式简单等同于某种管理策略到对资本社会的科层组织进行反思,逐渐丰富了人们对资本主义生产组织方式的理解。技术变迁在上述研究中始终具有重要作用,从科学管理方式的变革到以科层组织为主体的结构控制体系建立,技术往往承担了诱发机制或提供基础条件的作用。布洛维对生产中关系的关注更凸显了资本主义生产组织并非单纯的正式管理制度和科层组织,生产过程中广泛存在的非正式的、不断再生产的生产中关系也具有至关重要的作用。布洛维丰富了劳动过程研究对资本主义生产组织方式的理解,但吉尔公司的机器和生产技术在很长一段时间内相对稳定[5],这使布洛维在《制造甘愿》中也描绘了一种较为稳定的生产中关系,而忽视了技术变迁可能对资本劳动生产组织方式造成的影响。

上述研究都将技术理解为机器生产和自动化等工厂生产技术,但自从互联网和信息技术革命以来,信息技术的形态和内容都与工厂技术具有诸多不同。首先,工厂技术往往以具体机器设备、流水线机台等物质形态进入生产环节;而信息技术在物质形态上具有较高程度的简化,以电脑为平台,互联网和编程领域中很多核心技术的发展并不需要与某种物质实体互相绑定,而是更多的以一种技术知识的形态出现。其次,在工厂技术的生产条件下,资本家在很大程度上可以决定是否引进某种机器设备,从而进行技术更新;但在信息技术中,技术更新与商品特性结合得更加密切,特定的信息技术类型往往与特定的商品相对应。由于商品畅销与否更多受到顾客和市场决策的影响,资本家也不得不服从商品流通的逻辑,因此他们在技术更新方面的权力在一定程度上被弱化。最后,信息技术以一种技术知识的形态存在。在劳动过程中,这些知识为劳动者所具有,但技术知识的整体变迁和更新往往又超出个体劳动者的影响,信息技术既属于劳动者,又不为劳动者所掌握。进入21世纪,互联网和信息技术逐渐在全球普及,在经济社会发展过程中也扮演着越来越重要的角色。信息技术与传统技术形态又存在诸多不同。因此,在信息和互联网等新兴技术产业中劳动过程如何组织,成为劳动过程研究要面对的一个重要课题。

(二)技术变迁与资本生产的不稳定性

随着智能手机、互联网等产业发展,一些社会理论学者也注意到了这些新兴产业对资本社会带来的变化。贝克认为资本主义现代性的发展带来了一种风险社会趋势[6]。在风险社会中,技术和科学的进步将人们联系在一起的同时,也不断增加了社会中潜在的风险。布迪厄更是认为资本社会偶然性的增强使得个体劳动者的未来更加难以预期,也降低了劳动者集体行动的可能性。他进一步认为现代资本主义经济结构中不稳定性的增强对劳动者形成了一种新的统制体制[7]。受这些研究启发,工作的不稳定性研究成为理解新兴技术变迁对资本主义生产组织方式的影响的重要视角。

对工作不稳定性的研究表明,与传统机器工厂生产相比,现代资本生产中劳动雇佣方式、劳动本身的形式、劳动组织方式和劳动对象等方面都越来越呈现出不稳定的特点。Star l. S.最早在对科学研究过程的研究中提出了不稳定性的问题,认为科学研究各个环节中存在诸多偶然因素,而且科学创新本身就是一种不确定性的工作。在科研成果的获得、科学研究的发现以及科研成果的发表各个环节中,偶然性因素都具有重要影响[8]。William T. Bielby在对文化行业的研究中,认为文化创造性工作也具有较强的不稳定性,这种不稳定性与市场需要和创造密切相关。市场需求本身复杂多样,但是文化创造本身又难以适应多种需求,这使得很多文化工作者陷入尴尬境地。他还分析了不稳定性对劳动者的心理和情绪影响,将不稳定性的研究推广到所有创造性行业[9]。Hesmondhalgh等人进一步分析了在以电视节目生产、唱片制造、商业杂志为代表的工作时间相对自由的文化产业中,劳动过程不稳定性给劳动者带来的创造压力[10]。此后不稳定性的研究还被运用到医生的诊断和音乐创作团队的相关研究中,关注他们工作不稳定性产生的原因及其为应对不稳定性而采取的办法[11-13]。随着研究深入,资本生产在各个环节中的不稳定性被不断揭示出来[13]。这些研究主要集中于对劳动生产不稳定性现象的描述和探索不稳定性对劳动生产带来的难以预料的影响,而对不稳定性产生的内在机制和不稳定性对资本主义劳动生产组织方式本身带来的影响却缺乏深入研究。

(三)技术变迁与编程劳动的不稳定性

作为新兴产业的代表,信息技术产业技术更新和劳动过程的变迁都具有典型特征。编程劳动作为信息技术产业的典型劳动形式,无论是劳动技术还是生产组织方式都与传统工厂生产存在诸多不同。尤其是编程技术这种新兴的技术形式对编程劳动的影响更加深刻。

编程技术的复杂度和更新速度远超传统工厂生产技术。从20世纪70年代末到2010年,共产生了37种编程语言,几乎每年都有新的编程语言产生。一般来说,程序员要精通一门常用语言,在精通一两门编程语言的基础上进一步学习和了解其他编程体系。但新编程语言的出现具有与老编程语言截然不同的思维方式,编程语言之间的转化绝不是知识体系更新那么简单。在程序语言之外,各种系统和语言环境的出现也带来更多的技术变迁。如果说传统技术知识主要以Windows系统为载体,而智能手机的安卓系统、苹果电脑的ios系统,甚至各种软件终端设备的出现,都使编程技术日益复杂化。语言和语言环境之外的各种不同程序算法的变化,也给编程劳动带来更多的技术复杂度。

除整体技术的变迁速度和复杂度外,具体的编程劳动也呈现出一定的技术不稳定性。程序员作为连接计算机世界与现实问题的桥梁,需要具有将现实问题转化为计算机可以识别的程序语言的能力。编程劳动中所要面临的技术要求就是将现实的工作要求转化为程序逻辑步骤,再进一步转化为计算机可以理解的程序语言。现实问题本身的逻辑、计算机的运行逻辑、编程语言的逻辑,需要经过程序员的技术劳动得以统一。不同逻辑间的转化过程本身就具有一定的不稳定性。不同的功能要求、不同的编程问题、不同程序语言和运行环境都会对编程产生巨大影响,这就形成了编程劳动中固有的一种技术不稳定性。除不同逻辑之间转化的难度外,编程中某一部分程序的完善优化周期、甚至漏洞的出现往往是难以预料的。尤其是漏洞的出现,是极其耽误时间和精力的。一位在某游戏开发部门工作的程序员小李表达了他对修补漏洞(bug)的看法:

写好一段代码不代表真的写好了,哈哈,以为自己写好了而已。就是说,觉得写的差不多了,然后呢,一运行或者一测试,好几个error……遇到这种情况倒霉吧,修bug,改程序,有时候要调整很多内容。这是知道的呢,有时候是程序已经做的差不多了,有一些bug怎么也改不过来。我有一回都写的差不多了,碰到一个绕不过的关键bug,想两天也没办法,最后推倒重做了……这个过程挺折磨人的。(LQ)

程序运行和维护过程中出现bug等技术问题也增加了编程劳动的不稳定性。程序技术的更新速度、内容复杂度、编程劳动的技术难度相互影响,共同塑造了编程劳动的不稳定性。编程作为一种与信息技术密切结合的技术劳动,随着信息技术的变迁不可避免地受到影响。在技术变迁带来的不稳定劳动下,程序员的劳动过程是如何组织的?如何理解这些劳动组织方式与传统组织方式的不同?在新的劳动组织方式下,程序员被哪些结构性力量所形塑?

三、不稳定性的转嫁:互联网公司的劳动组织方式

编程劳动因技术变迁具有一定的不稳定性。这种不稳定性对程序员和公司都产生了影响,互联网公司作为利润的主要获取单位采取了诸多措施应对这种不稳定性,其中改变程序员的劳动组织方式就是其中一个重要措施。

(一)弹性工作制与项目组

为适应不稳定的编程劳动,互联网公司一改8小时工作制的传统工作时间安排,取而代之的是一种弹性工作制。弹性工作制不对员工上班、下班时间作出硬性要求,而是强调以完成工作为核心。在完成工作的前提下,不对工时提出过多制度要求。

我们公司做安卓平台游戏的,主要面向海外市场,Google play是最重要的分发平台。公司氛围友好和谐,妹子多,汉子也不少,上班可以穿拖鞋、裤衩,不一而足,前台MM会不定期给大家订购吃的,披萨饼、大蛋糕,不一而足,对于吃货绝对是好福利,水果零食全天供应,不强制打卡,弹性工作制。(JZ)

与传统工时制度相比,互联网公司的弹性工作制确实更加适应程度员的劳动特点。

没想法坐一整天也没有进展。有时候突然搞明白了,就必须得弄出来。编程这个东西就这样,中间不能间断,不然思路接不上又耽误好多时间。什么时候工作对我们来说可能意义不大,耗时间其实也不一定能有结果。有了想法不管什么时候,一般都要把代码敲完。可能刚刚下班,也可能刚上班,难说。必须写出来,不然就又全都丢了。(JZ)

程序员的编程劳动不像工厂生产那样具有相对稳定性,可以在单位时间内获得固定产出。对程序员进行工作时间的限制并不具有实质意义。因此,为了适应编程劳动的不稳定性,互联网公司大多采取了弹性工作制度。

除弹性工作制外,互联网公司往往还会成立负责项目开发的临时团队。这些团队的参与者分属不同部门,为了完成某一工作任务而组合起来。项目团队能在一定程度上弥补相对僵化的层级管理制度,更好地发挥程序员的个体特点。项目团队的规模不大,目标单一,能够综合各个部门的人才,实现技术互补,从而更好地完成工作任务。项目团队对于减少工作中的不确定性有很大的帮助,遇到工作难题后,程序员之间可以互相交流,共享知识。

我们团队有8个人,程序员有5个,一个UI,一个PM和一个负责人,五个程序员都有不同领域,我负责后台,因为我对基础C++比较熟悉,其他也都有自己的特点。感觉团队做事效率要更高的。大家之间配合也更默契。我们一起搞开发,有时候有困难,其他人也会帮助我。有时候可能一句话,就能帮你减少很多时间。(ZQX)

项目团队能够有效打破不同部门和专业之间的隔阂,最大程度地动员公司内的各种专业资源,是互联网公司应对劳动不稳定性的一种有效的生产组织方式。与传统的科层组织相比,更加扁平的项目团队可以涵盖公司内更多部门和技术专业,也能根据多种技术需求进行有效结合。

(二)项目与绩效考核:双重管理

项目组和KPI(关键绩效考核制度)在互联网公司中普遍存在,程序员往往分属于项目组和技术管理部门两个组织,因此,他们的编程劳动往往同时受到项目经理、技术领导的双重干预。

工作安排都是有项目或者产品来了,项目好一点,因为一般要求很明确,按照人家的要求,把一块块的都分配好。产品要团队一起,开发需求的同时进行编码,需求容易变。但大体框架有了以后,还是要分工到每个人,每个人负责实现不同的部分,基础的就给底层或者外包出去。(LQ)

我有两个领导,产品leader和技术leader,他们能够调配我们的工作。一般做产品的时候就在产品leader这边,但是技术leader也在,他和我们一起。(WLL)

明确具体任务以后,程序员要定下完成任务的个人时间表和工作方案。个人工作方案的完成进度是考核员工工作业绩的重要指标。项目经理对程序员个人工作目标的完成情况进行考核,项目的考核一般在绩效中占有主要权重。在项目的考核之外还有技术能力的考核,一般每半年或一年进行一次。这种通过明确、具体、可见的指标对员工的业绩进行考核和评估的绩效管理体制具有很强的控制作用,程序员们都要尽量按照绩效指标和工作进度完成日常工作:

不是为了做好一件事,是为了完成kpi。写代码质量?不重要!数量重要!为什么?因为写的代码多少也算是kpi。这不扯吗。(ZXQ)

除绩效评估外,组会也是日常工作过程中用以管理程序员的重要方式。一般组会不是由公司明文规定,而是由项目或产品负责人召集,用来协调工作安排和进度的会议。在组会上大家要汇报自己的工作进度,反馈工作现状,组会是日常工作中控制工作速度和效率的重要手段。

前几天开例会,老板问每一个人的进度,听每一个人接下来的安排。然而第二天,老板就跟大家说一哥们离开公司了,不说原因。后来打听到是被炒了。明明前一天还在开会,说第二天要干什么,结果第二天工作就没了,多大的打击啊!还有一次身边的一同事早上开开心心来上班,突然他老板过来说某某你来开个会,然后那哥们就被说了,工作慢,态度不好,质量差都说,脸红着出来了。(XS)

参与组会且每个人都要报告自己的工作进度,这在一定程度上形成了群体压力,使得进度落后的程序员不得不想方设法提高工作进度,以防业绩较差或者被辞退。组会的频率会根据项目或产品任务量的大小来决定,组会的召开一般不会占用正常的工作时间,一般在早上上班之前或者下午下班以后。组会作为一种非正式的制度,广泛存在于程序员的日常工作中,它在控制和调节日常工作的节奏方面发挥了重要作用,是管理者控制程序员日常工作的一个重要方式。

通过弹性工作制与项目组织管理相结合,互联网公司一方面将程序员塑造为应对编程劳动不稳定性的主体,另一方面通过绩效考核和日常项目组会等方式督促和保证程序员按时完成劳动生产任务。通过这样一套不同于科层管理的新的劳动生产组织方式,互联网公司将应对技术变迁带来的不稳定性的责任最大程度地转嫁到程序员身上,使程序员不得不直接面对不断变迁的技术和不稳定的劳动生产。

四、不稳定性的应对:程序员的技术积累

互联网公司通过弹性工作和项目团队等方式将不稳定的编程劳动转嫁给程序员,又通过绩效考核和项目组会等方式监督程序员按时保质地完成工作。面临编程技术变迁的挑战,程序员们也有一些应对方法,这些应对方法主要表现为努力提高自己的技术能力。编程作为一种应用技术,既是一种知识体系,又具有实践特性,单纯学习基础编程知识往往与现实的编程工作有较大差距。为了应对编程劳动中的不稳定性,技术的实用性越来越受到程序员群体的重视,实用性理念成为很多程序员共享的一种技术追求。小秦在讨论编程技术的学习时,曾经说过同事们都不愿意花费时间精力去学习底层知识。

底层是一个很大坑,C语言、C++是一个很大坑,很多人不愿意学,太复杂了。多数情况下也用不到这些语言。我们公司新来的年轻人都是没有这方面基础的。学校里也没有认真听,都觉得过时了,淘汰了。(XQ)

编程技术的知识体系从应用层到底层逐渐复杂,越来越需要时间和精力加以掌握,而程序员们对底层的知识越来越失去了兴趣,因为底层知识不如学习上层编程语言收效快。上层代码库可以直接给予程序员的编程工作实际指导,上层编程语言也比底层语言具有更多的实际应用。除了技术知识学习的上层化倾向以外,程序员们还非常重视在日常工作中积累自己的代码库。这些代码库是根据已有的程序代码通过自己加工复制而来,或者是程序员自己在以往工作中积累保留下来的常用程序片段。这些代码库被程序员们形象地叫作“轮子”,像是汽车的配件,可以在关键时候拿来组装成完成的程序,不用自己重复每一个部件的生产。“造轮子”被很多程序员看作是提高技术能力、增强编程实用性的一个重要方式。

没有接触过的编程需求,短时间里完全自己想也不可能啊。造轮子就很重要。别人的基础上拿出一部分,再修改一部分,很多时候可以快速完成任务。老程序员一定造过很多轮子,轮子多了路好走,轮子多了工作不愁,哈哈。(XQ)

实用性技术知识的积累在一定程度上减轻了程序员日常工作中遇到的不稳定性压力,但仍具有一定的局限性。首先,实用性知识发挥作用的前提是程序员曾经处理过相似的工作任务,或者是接触过与编程内容相关的领域。新的任务必须与程序员积累的知识有相似性,可以迁移转化,才能通过“轮子”等实用性知识加以应对。当程序员面临全新的技术需求,又无法获得既有的应对方案时,实用性技术知识的作用就微乎其微了。其次,基于相似性的知识借鉴也不是每次都能发挥作用。事实上,程序员们对于“轮子”究竟能起到多大作用一直存在争论。很多程序员认为从编程的简洁性和功能性方面来讲,轮子很多时候并非最简洁的编程方式,也不能确保每次都能解决问题。因此,这些程序员认为花费大量时间学习和仿造“轮子”,是在不能全面理解新技术的情况下一种退而求其次的行为。

“造轮子”的技术积累方式不能及时应对最新的技术需求,所以很多程序员非常重视对最新技术的掌握和学习,希望通过对新技术的掌握在根子上应对并解决技术变迁带来的编程劳动的不稳定性问题。程序员爱忠在某跨国互联网公司中国总部工作刚满一年,他认为保持学习、提高对新技术的敏感性是非常重要的:

技术是硬实力,技术不好,工作不行,老板也嫌弃。我都会保持学习的习惯呐,晚上回去看会书、看论文,主要是看人家的思维。技术好工作中才能游刃有余,查bug、改框架,哪有一样不需要一个好技术。

小姜在工作的空闲时间和业余时间,也会用一两个小时看书、浏览技术论坛,他认为保持对技术的学习是程序员工作的基础。

作为程序员,技术是安身立命之本,需要首先有兴趣并不断学习,即便没有基础,不是科班出身,不断学习也会成为大师,用技术实现你的想法,总会做出成功的产品。

程序员们学习新技术的需求与克服编程劳动中的不稳定性密切相关,不断学习新技术才能在下一次编程任务来临时具有更强的应对能力。但是在互联网公司看来,程序员们这种学习新技术的努力会影响他们完成正在进行的日常工作,爱忠和小姜的公司都不鼓励他们花费很大精力学习前沿编程技术知识。爱忠的公司规定了程序员可以学习的几个常见知识领域,这些知识领域仅与爱忠公司的常见项目密切相关,除此之外,程序员们学习其他知识被认为是无用和浪费时间的行为。爱忠描述了一次他在午休时间看大数据相关技术,被技术经理看到之后的一段对话:

我在看书没睡觉,大家都睡了呀。我们经理过来看见了,他一瞧我在看大数据研发,他就说,你看这些没用啊,浪费时间。还不如人家午休啊,我看你下午还有没有精神啊。他也不太好意思多说,就说我影响下午工作。我说,我不午睡,你管不着。

不只是公司里的日常互动,小姜公司在评定程序员技术等级时,明确提出只有两个相关专业领域的技术知识可以作为评定标准,超出这两个领域的其他编程知识不能作为评价研发人员技术能力的凭证。小姜对自己公司的技术评级制度不以为然。

实际上,我很多工作都是靠学别的编程技术搞定的。有更先进的方法为什么不能学?为啥学也不算?有用的不让学,学的都是一些没用的、落后的。我们公司都是为了评级才去学那些东西,其实和工作没什么关系。要不是评级,不会有人看的,浪费时间。

为了应对技术变迁带来的不稳定性,程序员们在通过“造轮子”等方式不断积累实用性技术知识的同时,还不断学习前沿的技术知识。通过不断积累新的技术知识,程序员们可以如预期地应对技术变迁带来的挑战。但是互联网公司会干预程序员们积累知识的实践,约束他们技术学习的方向,以保证程序员们完成公司日常任务安排的优先性,因此程序员们应对编程劳动不稳定性的努力与互联网公司盈利的需求之间出现了一定的对抗。互联网公司一方面通过弹性工作制和项目组的生产组织方式将编程劳动的不稳定性转嫁到程序员身上,一方面又干预程序员们为减少编程劳动不稳定性压力所作出的努力。

五、结论:不稳定的编程劳动与程序员的职业规划

随着智能手机和各种应用终端的兴起,编程技术的变迁速度和任务复杂度都在不断加强。编程技术的迅速变迁使得编程劳动的不稳定性成为互联网公司生产环节中必须面对的重要挑战。通过弹性工作制和项目组的管理方式,互联网公司将程序员塑造成应对编程劳动不稳定性的主体。为应对编程劳动的不稳定性,程序员们不断积累包括已有编码经验和最新编程知识在内的技术知识。但互联网公司为了利润需求和保证程序员以当下的工作任务为重,通过各种规定和手段限制程序员们应对编程劳动不稳定性的努力。

程序员一方面要直接应对技术变迁带来的不稳定性,另一方面又难以在当下的互联网公司中积累更加前沿的技术知识。在这种技术提升的困难与工作不稳定性不断加强的两难处境下,很多程序员的职业规划中出现了向下流动和频繁跳槽的职业选择。向下流动是指程序员在初职选择时倾向于一些技术实力较强、规模较大的互联网公司,但是工作一段时间以后,很多人会选择跳槽去技术实力较弱、规模较小的企业。与这种向下的职业选择相对应,频繁跳槽、转换工作环境也是很多程序员经常采取的职业选择策略。此外,随着技术发展和更新的日新月异,程序员作为智力和体力都有限的劳动者,如果不能得到一定的技术职称和雇佣保证,终有一天难以应对技术变化带来的不稳定性,不得不离开编程行业。

本文通过引入劳动不稳定性的研究视角,拓展了既有研究对信息技术产业劳动生产组织方式的理解。认为互联网公司通过弹性工作和项目组等方式所塑造出的负责任的程序员形象不过是其将编程劳动的不稳定性转嫁给程序员的管理策略。程序员们为了应对编程劳动的不稳定性,需要不停更新自己的技术知识,进行知识积累。在编程技术不断变迁的现状下,不停积累编程知识的程序员成为互联网公司应对编程劳动不稳定性的工具。

注释:

①数据来自《中国统计年鉴2015》。

②数据来自数据分析公司IDC2014年报告,http://tech.ifeng.com/it/detail_2014_01/06/32762698_0.shtml。

猜你喜欢
不稳定性程序员编程
为了让妈妈看懂地图,一位“野生程序员”做了个小程序
编程,是一种态度
元征X-431实测:奔驰发动机编程
怎样成为一名优秀程序员
编程小能手
纺织机上诞生的编程
桃红四物汤治疗心绞痛(不稳定性)疗效观察
程序员之子
继电保护不稳定性形成原因及处理方法探讨
The Impact of RMB Revaluation on China’s Foreign Trade