我是一家农村电商研发部门的主管,接管研发部门后,一直都想写一篇关于程序员应不应该加班的文章,这段时间部门已经有几个年轻人都辞职了,其中有个女孩跟我说辞职原因是“男朋友心疼”。另一个男孩跟我说的辞职原因是“加班太多,身体吃不消”。从我的角度来看,都挺可惜的,毕竟对公司来说重新招聘一个人培养一个人是需要一个过程的。对他们来说毕竟刚毕业,做事情还需要磨练,多一些沟通,多一些耐心,少一些浮躁,少一些个性,也许会发展得很好。
其实我不推崇“加班文化”,我不喜欢天不亮起床,洗洗就赶去公司,我也不喜欢深夜才到家,然后洗洗就睡了的生活。到底是什么导致了各个公司的程序员一直在加班?很长一段时间,我们几个研发部门的人私底下说:白天都在跟其他人扯淡,等晚上那帮傻X消停了,俺们才能干点事……确实白天是在会议,讨论,进度跟踪,各种协调中很快就过去了,到晚上才发现今天的研发工作还没有完成,才开始专心做点 “自己的事”。
其实这一切是因为“程序员”的这种工作性质导致的。
1,项目制管理制度决定了加班不可避免
项目是指一系列独特的、复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间、预算、资源限定内,依据规范完成。最近这段时间519项目,530项目,630项目相继启动,而项目都是有时间属性的,都是需要在规定时间内完成的。它是质量、进度、成本之间的平衡,时间是公司的最大成本。每一个技术评审点、网上问题攻关、转测试、验收,整个研发部门都是需要阶段性的加班到很晚,甚至通宵,否则集体的目标是无法达成的,谁也不愿意因为自己的原因导致整个团队的绩效差,“胜则举杯同庆,败则拼死相救”的文化正是因为这一次次的深夜加班而形成。
2、程序员的工作属性决定加班不可避免
程序员快乐来自于创建事物的纯粹的快乐。通过在键盘上键入咒语去满足了程序员内心深处创作的渴望,当程序不能正常运行的时候不想回家;bug没有找出来不想回家;甚至睡着了,梦里面全是代码,相信每个程序员都有在梦中找到bug的经历,程序员有一种克服困难的必胜信念,因为对于程序员来说一个小小的bug可以导致全部的努力付之流水。
从程序员的开发工作来说,整块时间的连续思维,对于程序员解决问题是非常有帮助的,只有深入的思考,系统的分析,突破自我思维的局限,才能准确的找到bug。程序员做的,都是别人没有做过的事情,很难轻而易举达成,正是这样的工作特性决定了不是人人都可以做研发。又比如你正在写代码,写一半时,有人让你去吃个自助餐、看个电影。然后让你回来再接着干活,你响应中断,恢复中断现场需要的时间都很长,而且很容易出现差错。这也是程序员和别的工种的区别所在。
“烧不死的鸟就是凤凰”,只有在一个接着一个的项目中去历练,在一天一天的加班中去成长才能成为一个优秀的程序员。