作者 | Richard Sun
编辑 | Francesca jin
专栏 | 九章算法,高阶IT求职教育平台,官网www.jiuzhang.com
作为一名程序员:你是否经常被要求在同一时间完成多个deadline?你是否经常被要求干与专业不相干的活?或者是被要求快速上手其他软件业务?
在这相爱相杀的过程中,难免会出现矛盾与误解,那么,程序员要如何处理与项目经理之间的关系呢?以下建议或许对你有帮助:
不管你有多么的崩溃和绝望,只要你现在还不打算辞去这份工作,那么你就需要调整自己的心态:
● 如果所有的工作都是你在做,说明公司很需要你。如果你哪天不行了,那么公司的业务也就完了。
● 如果你经常加班到很晚,甚至是周末也在工作,那么说明你目前的工作节奏是不正常的,因为你的工作效率会很低。如果你每天工作时长恰当的话,你的工作效率可能更高。
● 如果项目经理向你提出不合理的目标规划,但是你最终竭力完成了。在这个过程中,你不仅仅是完成了工作任务,更重要的是,你完成的是一般人无法完成的任务,你学到了新东西,获得了能力的提高。
● 如果你认为领导应该为你的努力工作而嘉奖你,那么请不要相信“没有功劳也有苦劳”这句话,努力工作并不一定能通往成功,你需要思考的还有很多。
●如果你无法按时完成任务,你觉得下面哪一种想法更糟糕呢:a)你如临大敌般的接受任务,像魔鬼一样工作,然后畏缩的承认你无法按时完成;b)你在一开始就平静的告诉经理这无法在规定时间内完成,并且提出合理的完成时间,然后在提出的时间内平稳顺利地完成任务。
总之,最重要的是调整好你的心态,记住你的首要工作是完成任务,而不是与项目经理斡旋。
如果你对公司确实是有价值的,公司很需要你的话,你的离开一定会给公司带来损失。公司既然需要你为他付出劳动,你也应该有针对自己工作提出建议、拒绝不合理安排的话语权。
你可以使用甘特图表来显示你当前项目的进度,用来表明任务计划在什么时候进行,以及实际进展与计划要求的差别。用事实来证明自己的工作难度,有底气地向项目经理说出“不”。
如果实在无法沟通,你也可以选择更新你的简历,开始寻找其他的工作。
经常被项目经理催促,一方面是因为项目经理不懂技术,另一方面是因为自身工作效率不高。所以,提高工作效率是十分重要的。
以下这些技巧可以用来提高工作效率:
● 用文档记录自己所有的工作。认真对待,花点时间来做这件事,即使是在任务截至的最后期限。
● 定期进行开发进度安排时间表的修订。一周一次,每次花半小时进行修订,指出你觉得计划中不合理的地方,以及出现问题的原因。
● 制作bug跟踪和时间表。量化你是如何花费你的时间,多长时间会花在那些不是你要的项目工作和外包引发的问题代码有多少。
● 分清工作的主次。将当前工作进行划分,哪些是优先级别的,哪些是可以缓一缓的,优先完成重要的工作
如果你发现很难向你的项目经理解释清楚事情,有两个可能的原因:第一个原因你的项目经理很蠢,第二个原因你用了一种蹩脚的方式解释事情。
试想一下,如果你能提供清晰易懂的进度表,那么项目经理就不会在进度慢的问题上过分纠缠你。如果你能解释明白当前的deadline已经到影响你的工作质量,那么项目经理就不会一再提前deadline。如果你能礼貌地表示自己承担的工作任务重需要得到应有的补偿,那么项目经理就不会错误评估你的绩效。
所以,你需要学会沟通,用正确合理的方式告诉他们你的想法和需求。不要抱怨,至少需要解释一下,相信一个有经验的项目经理是能够理解你的。你要知道,如果你无法妥善解决当前任务中存在的沟通问题,那么在接下来的任务中你的问题将持续存在,最终形成恶性循环。
很多的矛盾都是来源于对双方工作的不理解,项目经理需要理解程序员工作的辛苦,程序员也需要理解项目经理工作的难处。
项目经理作为项目组的最高领导,项目一旦出现问题,最终的责任会落实在项目经理身上。所以,项目经理有很大的管理压力,需要对项目中的任何一个环节负责。如果可以理解项目经理背负的责任,那么也就能理解项目经理为什么会一直催着你干活。
项目经理需要面对来自客户、领导、用户、团队成员等多方面的压力,往往会因为一个环节出错而落得里外不是人。所以,作为程序员所能做的,就是尽可能做好手头的工作,这样才能使整个项目的进程有条不紊。
如果可以站在对方的角度,设身处地地去思考问题,很多矛盾都是可以化解的。当然,如果你遇到的是一个毫不讲理、专横的项目经理,那么你可以考虑换个组或者换个工作了。
(原标题:相爱相杀,程序员如何与项目经理共事?)