90%做维护,10%做开发,这正常吗?

标签: 人力资源 程序员 | 发表时间:2012-06-29 10:00 | 作者:陈舸
出处:http://blog.jobbole.com

译注:这篇译文来自 Stack Exchange上的一个提问,在许多开发者中都产生了共鸣。很多时候,作为 程序员的我们,在日常工作中并没有很多时间用在编写代码上,而是不断的在维护某个年代久远的系统,不断的bug fix,维护的项目会越来越多。如果我们希望能改进已有的代码,对系统做下 重构,有时候并不能得到公司的支持。提问者声称自己的报酬非常低,但却在做整个开发团队级别的工作,这到底正常吗?难道所有的开发者都是这样的?以下两个回复获得了大多数开发者的认同,想学习下如何同公司高层沟通的技巧吗?

TiredProgrammer 6月12日:

我在一家中等规模的公司里做Web开发。刚开始的时候,我的任务是对一个已有的应用做扩展(这个项目的代码很糟糕,是由多个程序员花了好几年时间开发的,他们用不同的方法处理相同的任务,而且基本上没什么结构可言)。

当我成功的按照需求完成了对应用的扩展后,公司让我全职负责对这个应用的维护工作。这当然没问题,或许只有我是这么想的。但是公司却禁止我去改进已有的代码,只让我集中精力解决bug——如果有bug报告的话。

从那时起,我又陆续接手了3个类似这样的项目,现在我都得一起维护。之后,我又被委任了4个项目——这次可以从头开始创建整个应用,当然了,这些新开发的项目我也得去维护。

现在,我快被每日不断的用户邮件给搞疯了,我所负责维护的每一个应用都是这样。公司希望我能直接处理这些邮件中提到的问题,同时又丢给我2个新项目(这之后已经有5个项目在排队等着了)。杯具的是,对于我自己编写的代码,我还没有收到任何bug报告,只是偶尔会有那么一些脑残要求希望彻底颠覆原来的需求。

无论如何,这正常吗?在我看来,我一个人做的工作顶得上一整个开发团队了。我最初预想的可不是这样的啊,我是白痴吗?我猜这个帖子可能会引起网上的大论战,但请告诉我,并不是每一个开发者都遇到了我这种情况。 P.S. 我的薪水几乎和超市的收银员一样多,如果不比他们低的话。(亮点…)

acattle最后编辑于6月13日:

我在实习的时候也发现有很多时间都花在解bug上了。你必须意识到作为初级程序员,你没法获得更有挑战性的工作,你得从没人愿意干的脏活累活干起。这当然是不幸的,但这条规律适用于所有的工作。

另外,你得认识到一点,对于公司来说,能正常工作的代码远比清晰的代码更重要。从你所在的公司的角度来看,修改已有的代码库是在浪费金钱,你不过是在重做已有的东西,而且还可能会带来更多潜在的错误。通常这种类型的公司都不是计算机/软件公司,因此高层都缺乏足够的技术背景来理解你要做的这种大改动的意义。也就是说,如果你所在的公司是技术型公司,由懂技术的人来管理,他们能够理解好的代码所带来的价值的话,你可能还会有更多的余地,尽管有时候你还是需要选择一下战场(毕竟,生意的主要目的还是为了赚钱)。

那就是说,丢下你现在的工作而期望得到更有意义的工作是不合理的。同样令人遗憾的是,你不得不同时处理由各个不同的项目经理针对各个项目提出的要求。

作为一名程序员,事实就是比起你自己从头写起代码的时间,你要花费更多的时间在维护和修改其他人的代码上。如果这对你来说难以接受,也许你应该只把开发当成一项爱好,然后选择别的行业谋生。如果你对维护代码没有什么异议,但感觉工作并没有使自己发挥出全部的功效,或者觉得自己快被工作榨干了,那么你需要同你的经理好好探讨一下你的工作模式。如果你面临的问题比这个更严重,或者如果你感觉经理并不知道如何有效的根据你的技能来管理你的工作,那么考虑换个新公司应该是个好主意。根据你提到的低工资,跳槽可能是你现在最好的选择。

Péter Török最后编辑于6月13日:

看起来似乎是管理层在任务优先级的选择和工作量的管理上出了问题。你应该同你的经理谈谈,让他们知道你的工作已经过载了,如果每个人都跑过来烦你,让你完成他们马上想达成的要求,这样你就无法继续有效的工作了。那样会让你从一个任务跳到另一个任务,浪费了大量的时间在切换思维上。对于高效率的软件开发工作来说,你应该只全身心投入到一项任务中去。有越多的中断和干扰,你就要花越多的时间在环境切换上。有研究显示,大约15分钟的时间能让你进入专注的状态,此时你的思维是最有效率的。如果你每15分钟被中断一次,你永远也无法专注下去,这对你和公司都是很大的浪费。

因此你应该试着和你的经理沟通,达成一个更加合理的工作模式。这应该包括 对任务进行优先级划分,并在某种程度上提前进行规划。所有的用户需求都应该按照优先级的顺序记录在列表上。并且, 优先级不应该由需求的发起者来指定(自然地,大家都会认为自己的需求是世界上最重要的),也不能由你自己来定,而应该由某个拥有足够多的商业知识以及对你维护的一系列产品有着全局认识的人来指定(产品经理)。理想情况下,所有的需求请求都应该被录入到问题追踪系统如Jira或者Mantis上,或者至少给产品经理发送邮件,而不是直接发给你。应该由他/她去负责处理 “为什么我的需求还没有完成?”这样的用户抱怨,而让你集中精力在开发工作上。如果这种情况难以实现的话,当你在处理新的需求时,你至少要和经理沟通协商出一段时间,这段时间内你不能被打扰,只负责开发工作。

如果上面的做法可行,下一步就应该是提前做好规划。比如,估计一下完成最高优先级的任务需要多少时间,然后将你的时间划分为各个“冲刺阶段”,每个阶段可能是1周或好几周时间,为你的下一个冲刺阶段安排满足够多的任务。你可能还希望保留一段时间以应对紧急的需求,但其余的都可以提前规划好。你也可能更希望将不同项目的工作划分到不同的时间点上,比如,项目A就安排在周1解决,周2到周3是项目B,周4上午可以做项目C,下午就可以做项目D等等,以此进一步的减少任务间的切换。按照这种方式,你对于未来1周或几周的工作任务就有了大致粗略的了解。此外,这也为你的客户提供了一个路线图:他们可以了解到他们的请求何时可以得到解决。这里你可能不会想对你的经理提到“敏捷”这个词——这基本上就是敏捷开发,但有些人并不清楚敏捷开发到底是什么,他们就是一味地反对。

尽管你现在的职位看起来报酬很低,可是 你维护的项目越多,你就越有资本来沟通协商。对于公司来说,招一个新人进来给他培训,再让他维护所有这些项目需要花费相当长的时间(时间就是金钱)。你可以正当的指出你的代码比原有的部分要好的多,所以从公司的方面来说,他们没法轻易的以同样的价钱雇到一个合适的候选者来完成同样的工作。更不用说如果他们不改善工作条件的话,他们雇到的下一个家伙很快也会像你一样受够了就退出不干了。 试着让公司懂得让你快乐的留在公司对公司是最有益的。这会给你一些资本来和公司协商以上的情况,并要求加薪。

你究竟有多少谈判的资本——这是个大问题。管理层可能会也可能不会对你的请求有足够的尊重。但如果你把握的够好的话,你就有机会。如果他们拒绝,你总是可以再去寻找更好的工作。这种情况对于每个职场菜鸟来说并不相同,虽然(很悲催的)你的经历是相当典型的。但是确实总是有更好的工作地点在那等着。工作场所的好坏同地理位置的关系联系并不大,但给我的感觉是,在欧洲北部你可以获得的机会比平均水平要高一些。因此,在你完全受够之前, 如果你无法显著改善现在的工作条件,你应该马上开始寻找新的工作机会。骑驴找马总是很好的,所以你不要因为需要用钱就立即接受第一份offer。最终你总会找到一个更好的去处的。

英文原文: StackExchange  编译: 伯乐在线—  陈舸

【如需转载,请标注并保留原文链接、译文链接和译者等信息,谢谢合作!】

 

你可能感兴趣的文章

相关 [开发 正常] 推荐:

90%做维护,10%做开发,这正常吗?

- - 博客 - 伯乐在线
译注:这篇译文来自 Stack Exchange上的一个提问,在许多开发者中都产生了共鸣. 很多时候,作为 程序员的我们,在日常工作中并没有很多时间用在编写代码上,而是不断的在维护某个年代久远的系统,不断的bug fix,维护的项目会越来越多. 如果我们希望能改进已有的代码,对系统做下 重构,有时候并不能得到公司的支持.

正常/不正常

- fufa - FeedzShare
来自: 绝版青春 - FeedzShare  bullog.org - FeedzShare  . 发布时间:2011年10月11日,  已有 2 人推荐. 虽然时间不长,但却足够让人获得一种奇妙的体验:一些原本习以为常、司空见惯的东西,到了遥远的北欧一下子变成了超出日常经验的事情. 在国内住宾馆,第一件事总是拿电水壶去烧开水喝;但到了斯德哥尔摩住下后,翻箱倒柜才找到一只电水壶,拿到洗手间去接水,发现水池边赫然贴着温馨提示:瑞典的水质之高全球闻名,且富含矿物元素,请别担心,直接接水龙头里的水喝吧.

正常、非常、非正常

- ACE - 左岸读书_blog
现在觉得这个世界正常的人已经非常少了,甚而某个人说现在的时代是多么的诱人和斑斓,一定有人认为他(她)非正常. 什么是正常,什么是非常,什么又是非正常呢. 正常本来如规范,是平均数的一个总结归纳,代表了绝大多数和一定的计算,我们也听惯了“百年一遇”“千年一遇”的说辞,也无非一很符合这个平均数和标准,二代表以非正常做个推脱.

一切正常

- ndv - Chun Tian (binghe)
最近工作很忙,除了偶尔在微博上说几句话以外,根本没兴致写博客,今天来公司加班,顺便更新一下状态吧. 现在已经基本适应外包公司的工作流程了,每周都要同时做三四个 G2 项目. 这些小项目通常都有严格的截止时间,完工后要写详尽的文档,再由第三方 QA 进行严格的验证,最后才会被上游接受;通常一批项目过了提交时间以后,另一批项目就要来了,因此必须动作麻利,而且要处处小心,因为 QA 也是竞争对手,通常是毫不留情的.

漂浮于正常之外

- linsen - 庄雅婷
假如新闻联播是一种生活,那么都市报的社会版又是另一种生活. 微博上的八卦是一种生活,你身边朋友讲给你的故事又是另一种. 于是迷惑了:难道大家都在不同的维度中,通过虫洞保持接联系. 你看你基本是个正常人,也看见漂亮异性也会赞美或冲动,总归有感情需要. 虽然有时鼠首两端,有时矛盾有时有占有欲;也想过结婚这件事,也知某人注定是过客;一夜情早就不是什么罪大恶极,喜新厌旧更多被用以人性解析.

睡觉,抽动一下很正常

- Jesse - 果壳网 guokr.com - 果壳网
伪心理学说:睡觉抽搐是大脑以为身体快要死亡了,所以发送一个脉冲. 科学说:睡觉抽搐可能因为大脑在学习呢. 真正的科学家都应该具备谣言粉碎机式的思维——这条微博靠谱吗. 另外,既然“肌抽跃”在睡觉时经常发生,为什么又说常发生肌抽跃的人身体可能不是很好呢. 肌抽跃是一种急速的肌肉不自主地抽动,类似触电一样的动作.

女性幻想被强奸,正常吗?

- 什么原因 - 果壳网 guokr.com - 果壳网
作者:Boey 不少女性曾幻想过被强奸. 乍一看,强奸幻想似乎是不可理喻的——为什么要去幻想那些在现实生活中让人受伤、恶心、还危及生命的事呢. 有这样幻想的女性难道是出了什么问题吗. 其实,女性这类的幻想并不罕见. 就如同许多男性都做过英雄救美的白日梦,但其实并不想真的去面对持械的暴徒或被困于23层楼的火灾中,女性的幻想也只是想想而已.

Android开发Tips

- - CSDN博客推荐文章
欢迎Follow我的 GitHub, 关注我的 CSDN.. 介绍一些, 在Android开发中, 会经常使用的小知识点.. submodule与git可以保持实时同步. 导入, 路径多于一个, 前面不添加冒号(:).. 使用PackageManager.. // 检查App是否安装 private boolean appInstalledOrNot(String uri) {.

不翻墙正常使用Gmail和Google阅读器

- Freeman - 车东[Blog^2]
Shared by 车东. 还有 203.208.39.22 docs.google.com. 貌似GFW干扰Gmail很久了,据说Gmail SSL封锁规律是每小时的0-19分可访问,20-29分被墙,30-49分可访问,50-59分被墙. 听说对Gmail的封锁是我党在出国路由上做的手脚. 解决的办法就是把域名解析到不受GFW干扰的谷歌北京IP上.