程序员们为什么这么忙?
业务需求经过业务、产品的手,最后才传达到程序员(包括测试)这里。这个时候,程序员就是地板,是最后一道防线,是背锅的最佳人选。
工作的时候,程序员不但要受理新的需求,而且还要维护已经上线的存量业务,每天都有冗长而无趣的会议,出了故障还要客串救火队员。
然而,业务项目deadline却还是从前那个少年,如期上线的初心从来未曾改变。
……
最近工作比较忙,忙到让我开始反思为啥程序员忙起来会比狗还忙?
思来想去,我觉得这个问题还是得从大环境说起。
大环境
首先,业务、产品侧对接项目,受限于自己的kpi和乙方身份天生自带的“跪舔”属性,巴不得项目立即原地上线——这往往会带来一个不切实际的承诺上线时间。
但是在技术侧,做这个新项目的同时,还得线上运维,还得各种开会。
倒霉的是,项目管理只会看每个月的的交付率,只在乎项目是否在规定的时间点上线。
如果程序员评估出来的工作量不能满足时间点,项目管理就会用他们唯一擅长的方式管理项目——他们会想方设法压缩程序员的时间。比如:
那个,承诺的时间不好改,面子上挂不住,要不周六加个班?
在这样的大环境下,程序员就是一个资源、一个耗材,耗材的宿命就是奋力燃烧自己的生命。
所以,程序员们能不忙吗?
那么,程序员都干了些啥?
为了满足交付时间点,就连程序员自己也接受了自己是耗材的设定、仓促应战,新项目能跑通就行,一切只能虎头蛇尾草草了之。
但,殊不知项目上线之后项目还得维护,所以导致后续线上运维工作越来越多。
运维工作越来越多,新业务还在按照原来的节奏接入,时不时冒出的线上问题要处理,老板拉的会还要参加——程序员只能是连轴转地忙到死。
忙到死之后,疲于奔命的程序员必然越来越草率,最后就成了恶性循环。
这个恶性循环,会带来两个肉眼可见的麻烦:
-
第一,程序员越来越忙,写着月抛型代码,没有一丝的成就感,最后要不躺平、要么跑路。
-
第二,技术架构和代码实现越来愈烂,相当于生产工具越来越烂,研发效率越来越低。
越来越忙、导致越来越慢;越来越慢,又导致越来越忙。
恶性循环之下,最后伤害的其实还是业务。
等一下,请先不要急着业务伤心,先想想自己怎么活下去吧——到最后,业务一定把这个锅丢给程序员的。
谁让你是地板、是最后的一道防线呢、是耗材呢?
耗材的宿命不就是燃烧自己照亮他人吗?
那么,程序员要怎么办?
不考虑换职业的话,这里我暂且想到三种对策:
第一,一个听话的程序员,反而会造出一个烂系统,最后把自己和业务坑死。
所以,程序员要拿出专业态度,把自己当成专家而不是耗材,敢于质疑现状,对不合理的时间安排敢于说不。
当然,要委婉的说不。 第二,程序员要让业务意识到,业务虽然很重要,但是从长远来看,没有良好的系统架构,是不可能服务好业务的,程序员要委婉地表达出下面的效果:
别tm把老子当资源、当耗材。
让业务侧解技术侧的实际工作负荷,不要一味的赶急图快,大家一起合理地安排项目排期。
当大家一起荡起双桨的时候,小船儿才会推开波浪。
第三,实在不行,现实情况糟糕到已经无法改变,你自己又不想摆烂,程序员们可以起义,哦,不,可以跑路。
但是,在神秘而古老的神州大地上,中华田园式软件开发遍地都是,你的下一家公司说不定会比现在更糟糕。
如果你真的绷不住了,一定要跑路,那我只能说:
一定要对下一家公司的情况调查清楚,然后祝你好运。
以上,就是我对程序员为什么这么忙的所有思考,希望对大家有用。
(全文完)
作者简介
王晓辰,软件研发工程师,8年+金融科技从业者,文字价值和文字理想的信仰者和践行者,公众号“架构师的白日梦”的作者。
他坚信用心写就的文字具有无穷的能量,可以穿越时空的阻隔,向读者传达最纯粹的经历、最质朴体悟以及最深邃的思索,最终完成思想的启迪和灵魂的交流。
架构创造未来,文字打败时间!
作者专栏