程序员,你为什么加班?
**
程序员,加班两个词成了必然的联系。想到程序员就想到加班。甚至晚上打车听到滴滴广播也是软件园区域打车的人超级多。深圳是这样,北京更是如此。我们乐此不疲的加班的同时,也要静下心来思考:程序员,你为什么加班?
以下仅以我当前项目(出差紧急验收)为例展开讨论,不具有普遍适用性。如:一线公司百度、腾讯、华为、某服公司加班是常态甚至固定加班则可以排除在外。
一、项目进度延期
分析为什么延期?
1、工作量层面:工作量远远大于预期。或者工作估算不准确。
2、技术层面:后期遇到疑难bug,影响进度。
如:本次遇到的典型bug:IOCP程序正常或者非正常退出,但只在VPN网络下出现,原因可能和IOCP机制有关,根因很难排查。
3、人员层面:核心人员离职。
4、需求层面:临近交付,需求有大的变更,且很难短期实现。(这次项目便是这个原因)
5、测试层面:多家单位没有联调,自己模块测试非常不充分,或者没有测试。
二、需求变化如何应急解决?
需求的突变是程序员的痛点,时有需求引起的“血案、命案”。
1、及时沟通,给出方案。
如何尽快处理,思考为什么改需求?改动的难度以及改动的工作量评估。如果难度大且改动对用户无关紧要可以不改;如果是用户强烈要求,且评估也认为必须要改,要给出时间、工作量估算、投入人数后再改。
核心一点:如果是功能可以,只是体验的因人而异的问题真的可以不改。可以放在后面版本改进。
2、充分考虑改动的后果和可能影响?
有版本出现过改动后出现“连锁反应”,“牵一发而动全身”。分析原因:前期代码扩展性差。
3、对于甲方拍脑袋,一言堂的情况处理?
此时乙方领导不能熊。“兵熊熊一个,将熊熊一窝!”必须以身作则,和团队共患难。明确:解决问题的方法肯定比问题多。
三、如何让程序员高效加班?
1、项目经理甚至主管定好改动后的需求。
2、.架构师审核新的设计是否合计并给出指导意见。
3、项目经理给出明确的版本时间节点和进度安排。
4、项目经理能自己或者协调高层调配人员,如美工。
5、程序员加班双薪,解决疑难Bug物质或非物质奖励(书籍、电影票等)。
6、解决程序员出差的一日三餐,让其无后顾之忧。
四、反思
1、流程规范的重要性。没有流程规范,很多口头需求变化会成为一纸空文,没有约束力。必须写下来,或者有邮件来往、RTX聊天记录作证。
2、关注点随时间推移由功能变为性能及稳定性
3、管理人员对应急需求的处理,及时发挥团队的力量。
4、甲方乙方的协调对接很重要。乙方对甲方蛮横需求的应急公关处理很重要。
2015-10-27 pm11:30 整理于宾馆
作者:铭毅天下