让老板开心的程序员不是好程序员
我们每个人都有老板。我们也有为软件项目买单的客户,在合同期间他们也是我们意义上的老板。很明显,一个好员工/合作人员必须得让他的老板/客户高 兴。但是,只有不好的员工才会朝着这个目标努力。如果将这个错误的目标定为追求的方向,那就只会毁了项目。专业的员工为项目而工作,而不是为老板。
我们都是在为项目而工作,开发人员、设计师、程序员、项目经理、测试人员等等。老板也应该是项目中的一员。更正式地说,和我们每一个人一样,老板这 个群体也是利益相关者。每个利益相关者对项目都有着自己的要求:1)Jeff,开发人员,希望可以学习Scala,同时可以每两个星期拿一次薪水; 2)Sally,产品负责人,想要参加巴黎博览会,当然薪资也是不能少的; 3)Bob,CTO,想提高新一轮的融资,并拿到非常高的薪水;等等,不一而足。
甚至项目也有自己的目标,例如,在六个月时间里至少能实现上百万的下载量,各种花费得控制在30万美元以内,等等。
在朝着实现项目目标前行的道路上,我们个人的需要可能会被满足,也有可能会被牺牲。这里的“我们”指的是我们所有的人,包括老板、CTO、项目经理以及团队负责人等等。
我们都是“项目”机制里面的组成部分,无论我们是否意识到,项目这个机制都在根据规则和项目管理的原则而工作,也不管有没有项目经理。
一个专业和精明的老板明白,他在机制里的作用就是明确项目目标,并确保每个人的需求与这些目标相一致。通过恰当的项目管理和项目组织,每个人都可以在实现项目目标的同时,实现个人的需求:Jeff学到了Scala,Sally来到了巴黎,以及Bob能买得起新房子。
然而,假设Jeff想学习的Scala和我们正在开发的iOS应用程序相冲突了,那就需要老板出面来解决问题。要么说服Jeff去喜欢Swift(这个可能性值得商榷),要么就找人替换他。
这就是CTO的责任了,当员工的个人需求与支付他薪水的项目目标不一致的时候,那就需要CTO上场了。
任何一支专业的团队都明白这两件事:服从和拒绝。
首先,你要明白,老板在这里是为了帮助你管理你的时间,你的任务,你的沟通,你的计划等等事宜的。关于项目,他知道得更多,这些信息有助于你更好地完成工作。你真正的老板是项目:此时与你互动的老板担当的就是项目经理的角色,将项目目标翻译成计划、指令、日程安排。
此时你们的地位是平等的。你们都在同一条船上,只是职责不同而已。你不是在为他打工,而是在与他携手共同完成项目。真正专业的团队成员,其心灵务必强大,在他们眼中他们的地位与项目中的其他所有成员的地位是平等的,无论这些成员的职位有多高。
与此同时,他严格遵循流程和遵守所有的项目规则和说明,不是因为他害怕被解雇,而是因为他希望项目能够成功。
其次,作为一名专业团队的成员需要随时准备着质疑每一个指令,只要你觉得它违背了项目目标。一个真正的专业人士不是在为老板工作。他不必取悦于老板,也不在意老板是否开心。因为他知道,真正的老板是项目,他所做的就是在让项目“开心”——成功。
真正的专业人士也是在为自己而工作。Jeff希望学习Scala的同时也可以赚钱养家。他之所以参与该项目也是为了满足这些需要。如果项目失 败,Jeff就拿不到钱,也不能真正地掌握Scala。所以,如果此时中二病发作的老板让Jeff去做一些可能会危及该项目成功的事情,Jeff该怎么办 呢?他会不会因为怕老板不满而违心地去做了呢?如果他所关心的是这个项目的成功——同时也代表了他个人的成功的话,那就不应该为了让老板开心而盲从。
总而言之,让你的老板高兴是一个不成熟的、懒惰的、愚昧的目标。专注于项目成功才是我们作为一名专业的、强大的、成熟的团队成员该具备的目标。
译文链接:http://原网站已经失效/article/making-your-boss-happy-is-a-false-objective.html
英文原文:Making Your Boss Happy Is a False Objective
翻译作者:码农网 – 小峰