谁该为程序员加班“买单”

7,376 阅读11分钟

前言

昨天在刷朋友圈,看到深圳一名24岁的程序员小哥,在周六加班时起身因为过度疲劳而摔倒,幸好没有什么健康危险。但这件事也引起了我深深的反思,因为身边很多人在互联网行业或者就是在做程序员,所以觉得很有必要给大家分享一些自己的建议。

加班文化

在很多互联网科技公司或者BAT等一线公司里,加班变成一种常态。995,996变成了大家的潜意识,甚至于很多中小公司和BAT网易去对比,说人家加班都到晚上十点十一点,我们九点已经很好了。也有公司领导把加班的人,加班越狠的人作为重点鼓吹的对象,提倡大家加班。

这里加班是好还是坏,听我娓娓道来。

加班在做什么

赶需求

有绝大部分原因是因为赶需求,那么为什么需求在正常的节点不能完成呢?一定要加班去做呢?大家看下自己的公司对号入座。

  • 客户紧急需求,我就是需要什么时间上什么功能啊
  • 市场需求,竞品公司都在开发这个功能,我们提前做完,哪怕是提前一个月就能争取到优势
  • 公司想最大可能的榨取你的剩余价值,众所周知,加班一般没有任何加班费的,好一点的公司给点加班餐,再好的公司给你报销打车回家的费用,再好的公司允许你第二天上班晚一点来。看看自己公司做到了什么程度吧。
  • KPI,大部分部门都会有KPI作为部门考核的指标,而如何体现自己部门厉害呢?那还用说,当然是上线了更多功能。自己有发现有相当一部分公司在定自己季度计划的时候,其实就是按照加班才能做完制定的,不知道有没有和自己的团队商量过呢。
  • 奖惩措施。其实我觉得偶尔加班也是允许的,但是加班过后还是加班,没有任何过度,大家白白加班了,没有任何奖励,哪怕是口头的或者简简单单吃顿饭,上班时间里团建个一两天。

需求合理么

大部分的需求都是合理的,产品提的都是合理的,公司领导或者产品经理肯定会这样讲。我只是提下想法,看看是否存在以下需求场景导致不必要的加班。

  • 客户或者产品经理反复没有原则没有限制的修改
  • 不断的深入的需求细化
  • 单位时期内需求总数不定,不断累加
  • 过高的单方面预估需求研发能力,过低估计项目需要的时间成本和人力成本
  • 快、好、省在中小公司不可能同时达到的噩梦。现在很多问题就是因为前期做的不细致,后期一系列的债务,影响了正常的开发进度
  • 团队体制和流程不合理,对需求提交方式,消化的方式让整个过程没有任何控制,没有节点概念

保证“代码”质量

其实和其他职能一样,程序员需要保证自己的工作质量,也就是代码质量,还有就是自己的交付。

举例说明:如果自己的估期是两天完成一个功能,那么就要自己实际的完成,并且负责其后的维护和优化工作。这是毫无疑问的,如果因为自己的原因,无论是能力还是其他,要保证自己的这个功能点如期交付。当然最直接的方式就是自己加班完成需求、加班进行功能维护,这是你的事情,责无旁贷。

如果在我工期内完成了负责的事情,其他的需求或者临时任务,还没有下班,我也有义务接,但如果已经下班了,其实我们可以选择拒绝。前提是这个点不是紧急到必须马上改,马上发布的。

那么为什么会有紧急bug或者需求呢?追根溯源下:

紧急需求或者bug(短期)

一般情况下可能有以下的几种原因:(不考虑完整需求)

  • 之前的逻辑不够完善严谨,产品细节不够
  • 之前的测试不够完整,没有进行完整的线上环境的验证和回归
  • 不同开发环境和线上的差异
  • 技术角度,技术选型,技术设计的失败或者漏洞
  • 对产品迭代概念不清晰,总是每次迭代要求的是完美产品,其实每次上线的保证应该是产品范围内正常使用的功能即可
  • 没有预留足够的测试时间,没有科学严谨的单元测试和测试用例

综上:紧急需要改的小需求或者bug是无法完全避免的,但研发团队应该注意到从源头减少这种可能性。让大家更多的投入到完整的科学的研发中。

加班费

谈了这么多,讲下个人对加班费的看法。其实偶尔加班到九点,我自己个人觉得无可厚非。毕竟是这个行业职业的特征,但我坚决不支持995,996这种。那么我分几种情况说明吧。

1 没有任何需求,公司也要求到995,996,提倡加班文化,趁早考虑

2 有做不完的需求,对自己的技术成长没有任何帮助,一年前进去什么样,一年后还是什么样,趁早考虑

3 按照真实需求的优先级,需求总量,规律性的加班,可以接受。可以适度的建议,学习或者就是回家

如果我加班了,该不该给加班费或者相关的补贴,给的这个钱能弥补我自己的健康或者是值得么、

我只是一名员工

加班没有任何补贴的就不要考虑了,还有部分伙伴可能公司离家很远,如果这时候公司不给你报销回家车费,自己这方面一个是比较扎心,一个是经济支出上多了很大一笔。当然这是从“打工”角度考虑的。

如果有一定的加班费或者项目费或者补贴了,这部分能和正常下班做其他的事情等值么。对于刚毕业的学生,我个人建议是稍微辛苦一点很必要的,因为职业技能和职场规则很多不清楚,刚从学校毕业很多习惯都来不及改善,经过职场一点加班文化的熏陶和强度的工作锻炼,未尝不是一件好事。但如果你已经工作四五年,甚至更久了,你还需要通过无节制没有任何意义的加班来提高自己么?

当我只是一名员工的时候。看不到需求背后的意义,如果这部分有了对应的荣耀,也非常难能落实到我个人头上。更多时候,上级是把完成这部分需求的优秀能力认定给了tl。很多时候,tl的确能力还不错的话,可以带领任何一个还不错的团队加班完成需求。这让我想起来一句古诗“一将功成万骨枯”,我们虽然没有那么惨,但是你透支的身体迟早会告诉你的。

如果我是认可公司的tl

其实对于认可公司的管理者来言,没有什么加班不加班之说,只有做事情,这件事值得我做么,值得我怎样做,做完之后是否能得到公司的认可,自己在职业路上有多大的后续可能。

对于这部分人,我自己也是想成为这样的人。我只建议,大家拼可以,注意身体,注意公司是什么样的,你的领导能否认可你的付出,能否认可你的管理,能不能给你权限。很多时候管理会反过来讲,你做的足够好,做到无可替代就自然得到认可、得到权利了。这其实有点虚的吧,对于大部分进阶管理的人,其实其前方都是迷茫的,如果我做过总经理当然知道总经理的能力应该如何发挥出来,但我是在去总经理的路上,怎么知道公司给了我一条这样的路,又该如何一步步的走向这样的路,直接上级是怎样的直接关系到了这点。

公司是什么样的也很重要,包括高管所奠定的公司文化。之前听广播的时候,听到一个为公司服务了24年的高管,得重病的时候,公司马上把他的工资降到了最低标准。客观的人会说,公司不养闲人。但24年那已经不是一份工作了,而是一个家。如果你将要付出的是这样一个冷血无情的“家”,趁早对自己的小家好一点,早点下班,你的老婆孩子,你未来的女朋友更需要你。

投资自己

与其让谁谁为自己买单,还不如自己投资自己,这才是理性的自己,感性的自己。作为一名技术人员,除了本身的技术水平,自己的管理水平,情商,家庭美满幸福,自己身心愉悦也都是不可缺失的闭环。如果你的加班让进丢失了这些,想下是否值得,真的值得么?

投资给健康

正常的生物钟,早睡早起,每天至少8小时的睡眠,中午最好午休下。

这里我强烈建议大家番茄工作法了解一下,每个小时给自己的身体精神放松调节一下,对自己的持续工作会更好。更多的番茄工作法实践,请加我微信或者查阅我的博客(达摩兵的空间),百度第一条就是哦。

投资给技术

如果你的需求完成了,已经下班时间了,学习下最新的技术,做下自己的工作总结,技术提升,对自己的持续职业发展有很大的裨益。

如果公司已经有对应的技术周会,或者培训学习机会,那更好了,自己好好把握。

当你如果面试或者跳槽的时候,就知道这份能力才是真正有用的,能让自己拿更多钱,去做自己想做的事情的基本前提。

投资给管理

如果你的职业发展路线是后续管理,因为大部分程序员不会一直做底层的技术,无论你后续是技术管理还是项目管理或者业务管理,必要的管理技能是无论如何不能一点不懂的。

对于管理是很多公司基本不会给任何培训或者学习的,如何在这方面有较完整的认知,来让自己在有机会的时候正常上位,管理方面的知识包括技术和人际交往能力非常必要。

投资给社交

职业发展中,经常会提到,二十岁靠奋斗,三十岁靠管理,四十岁靠社交。不是没有任何道理的。

当你专业能力和管理能力达到一定等级的时候,自己的社交对自己的发展是最大价值的。因为自己越来越多的事情需要给其他人做,越来越多的资源或者帮助是求助于自己的社交圈的。

投资给家庭

家庭是我们真正的家,有太多人因为事业疏忽了家庭,甚至于家庭破裂。很多人会说,有了事业才能有家庭,但这不是二选一的问题,至少我认为不是,我们应该抽取一定的时间投资给家庭,一起看电视、逛超市、出去旅游、做饭等等。

至于事业,那是一辈子的事情,但自己年轻的时间只有这么一次。应该没有人真的愿意把自己睁眼的时间全交给代码吧。