作为软件开发经理要避免的10个错误

管理要以人为本。

在我早期的软件开发生涯中,我非常幸运地较早地就成为了一名软件经理。作为一个相对年轻和幼稚的新经理,我工作上关注的重点一直是恪守承诺和项目交付。

尽管如此,我还是做得很好,爬上了管理的阶梯,成为了一名高级经理。当我今天回头看的时候,我虽然达到了作为一个经理的基本要求,但我在其他很多方面做的都不好。

在重新调整职业生涯并进入一个新行业后,现在我又回到了基础管理岗。既然我非常幸运地拥有了第二次当经理的机会,我会从过往的经历中学习,努力避免以下错误。

1. 项目不是最重要的,人才是

作为开发人员,什么是最重要的?我们的项目和截止日期!向老板证明我们价值和能力的唯一方法就是确保项目按时交付。

甚至在我被提升为主管、经理,后来又被提升为高级经理之后,我都带着这种心态。我向老板证明所有的项目都按时交付了,给他们留下了深刻的印象。

当然,我也有下属,他们是使项目可行并保证按时交付的资源。当我们团队离开一个人之后,我们会招到下一个。

我大错特错了。

没错,我是完成了一些项目,但十年之后,这些项目都过时了。它们成为历史了,这些项目中的大多数很快就会被遗忘。但是十年前和我们一起工作的人现在仍然很活跃。我那时没有压迫他们,所以我们现在还是朋友。

但后来我问自己:作为一个经理,为了让员工变得更好,我投入了多少精力?我有多关心他们的成长,让他们能做得更好,而不仅仅是为了完成项目?我对他们本人了解多少?他们的激情和抱负是什么?

一想到这一点,我就深感懊悔。在这一点上,我失败了。我们有一对一的交流,在这些交流中,但所有的对话都是关于项目的。

不要误解我的意思,项目很重要。但如果我们更加关注与员工的情感联系,项目交付就会变得更加自然。以人为本使我们能够培养员工,与他们建立联系,并顺利完成项目。

2. 不能让统计工作影响开发工作

我在工作中对自己相对严格。为了知道我在哪些地方花的时间最多,我创建了一个电子表格,并记录了我经常做的事情。为了健康的目的,我还会记录自己每天喝了多少升水。

有一天,我想到我正在考虑衡量团队的效率,我们需要度量一个项目所需要的努力。那时,我们还没有一个好的工具来自动完成这个任务。

所以我想出了一些流程,让每个开发人员尽可能准确地定期为我记录他们的工作,然后我将它们合并到一个电子表格中。根据这个表格,我创造了一个计算公式。开发人员不太高兴,但我用“如果你不能衡量一个事务,你就不能改进这个事物”这句话说服了他们。

我大错特错了。

虽然这是可行的,而且(对我来说)这并没有增加很多工作量,但它需要开发人员花费相当大的精力来记住、定期输入这些值并进行测量。然后,这些数据被汇编成一些图表和统计数据。

它根本没有帮助开发人员提高工作效率,也没有以任何方式简化他们的工作。我在他们的工作中添加了更多的流程,却没有任何好处。开发人员的首要任务是完成项目,而不是提供统计数据。任何增加的过程都应该帮助他们更好地完成项目,而不是让他们承担比实际工作更多的“任务”。

如果我们需要量化效率,我们应该雇佣专业人员,他们能够量化开发人员的工作,而不会让他们的工作变得更加困难。

我回想起我主动收集的数据来量化效率这件事,但这些数据并没有太大用处。最后,这个流程被抛弃了,所有的努力都白费了!

3.不要让开发人员内部竞争,要建立同志情谊

我曾经被告知:“竞争提高成绩”。没有竞争,人们会变得自满,以后的表现会下降。这就是为什么我们看到运动员在奥运会上的成绩不断提高,因为竞争很激烈,对吧?

这也是我们在学校里学到的道理。学生们在班级里是按成绩排名的,这会激励学生努力学习,最终进入更好的班级或学校。

如果我们将这种心态应用到软件开发中,就会开始引入类似的竞争机制。看看谁的bug最少,谁得到的负面反馈最少。也许我们还可以看看每个人的代码贡献量,除以他们出现的bug,然后衡量每个开发人员的业绩。让他们通过竞争成为最有效率的开发人员。

我大错特错了。

我忘了一件事,工作不是四年一次的奥运会,也不是有毕业时间的学校。

开发人员每周工作5天,每天工作8小时。这可能会占到他们生活的30%,有些人花在工作上的时间比和家人在一起的时间还要多。

持续的竞争环境会使工作环境充满敌意。每个人都会想到谁会是他们的下一个对手。这容易导致大家暗箭伤人,甚至更糟的是,这会让团队难以合作、功能失调。这将造成一场内战。

从历史上我们能得到的教训是:一个有内战的国家将会被外部力量所征服。同样,内部功能失调的组织也会输给外部竞争。

因此,我们不要在内部建立竞争。相反,我们应该建立同志情谊!让工作场所成为每个人都想一起工作,一起欢笑的地方,并一起建立一种强烈的团队意识。它不仅会让开发人员在工作中更快乐,而且还会建立起一个更强大的组织。

4. 不要吝惜赞美,小的成功也要庆祝

我从小就有这样一种心态,那就是,在默认情况下,工作就应该做好。这是我们的责任,是我们应该这么做!没有什么值得称赞的。我认为作为一个实干家,这是我们应该期待的。我们得到报酬是为了做好工作。

作为一名经理,我害怕“赞扬”和“感谢”带来的膨胀。如果我们过于频繁地表扬或感谢某人,称赞的价值就会变得越来越少。我想最终,人们可能会认为这是理所当然的。

因此,我只对那些非常非常大的成就说“谢谢”和“赞扬”,也就是那些非常令人印象深刻的成就。我的期望越来越高了。过去,80分的好成绩会得到“表扬”,现在80分是及格,90分的好成绩才会得到“表扬”。

我大错特错了。

我不知道的是,我实际上是在建立一种“不欣赏”的文化。做好工作是员工应该做的事情,为什么说“谢谢”?

得到一个“感谢”的门槛变得如此之高,那么为什么还要费事去追求呢?只有少数顶尖的人总是能得到所有的赞赏和感谢,因为他们是唯一能够不断实现不可能实现的目标的人。很快,大多数人开始疑惑,为什么还要来工作。也许只是为了养家糊口,仅此而已。

我有机会和一个年轻聪明的人一起工作。他工作努力,态度端正,但他从来都不是顶尖的。因此,作为经理,他没有得到我太多的“感谢”。我内心感激他,但从不口头上表达,只是为了对别人公平。我对他们一视同仁,除非他们表现异常优秀。

一天,他辞职去了另一个公司工作。几年后,我听说他因为一场意外的疾病去世了。他是个年轻有为的小伙子,真遗憾他离开得太快了。更糟糕的是,我从来没有对他真诚的工作表示过感谢,我以后也不会有机会这样做了。

5. 避免加班,或者在晚上沟通工作

我是一个工作非常努力的人。当我开始我的职业生涯时,我会从早上9点工作到凌晨2点,直到把事情做完,给老板留下好印象。

当时我工作过的大多数公司的标准下班时间是下午6点,尽管正式的工作时间是上午9点到下午5点。作为一个比别人工作更努力的工作人员,我通常在晚上8点下班。

我的老板告诉我不要这样做,以免我过度劳累。我没有筋疲力尽,所以就像前面提到的那样,我爬上了通往“成功”的阶梯。我很快就当上了主管,后来又当上了经理,然后又当上了高级经理。

作为一名开发人员,我把这种工作到很晚的态度带到了高级经理的岗位上。我需要向所有人“证明”我得到提升是因为我工作努力。我得做个榜样。我会在深夜发邮件跟进我白天错过的事情。

我并不是故意这么做的,但因为白天有很多会议,所以只有在晚上我才有时间清理邮件和跟进事情。因此,这成了一种习惯。

我大错特错了。

我想,“我这么做是为了我的家庭,为了谋生,让我的家庭生活得更好。”我没有意识到的是,我留给家庭的时间非常少。我很幸运,我有一个真正理解我的妻子,她在那段时间非常支持我,而且还辛苦把我们的两个孩子抚养成人。

我不仅忽视了家庭,而且还建立了加班文化。没有多少人能真正跟上我的步伐,但更多的人试图跟上。当我在晚上发邮件时,我的直接下属有时会感到有压力要立即回复,只是为了表明他们也很敬业。

整个工作文化就像一个工作引擎的压力锅。许多人工作时真的觉得自己总是在崩溃的边缘。一些人仍然在努力工作,因为公司“给他们的报酬足够高”。

但是工作不再是愉快的。到办公室来工作是件苦差事。有些人“加班到很晚”只是为了表示他们“在工作”,而不是真的在创造价值。他们为公司贡献了30%的生命,现在不得不付出更多——这是家庭和个人生活的权衡。

回想起来,我作为一个人是失败的,因为我没有让别人的生活变得更好。我不仅毁了我的家庭,也毁了别人的家庭。

6. “开发者的快乐”

我以前从来都不知道“开发者的快乐”(Developers’ Happiness)这个词。

当考虑工作过程改进(工具、技术、框架等)时,我考虑的是有效性、效率和成本。

开发者的感受是“次要的”。如果一个项目是有效的,高效的,成本也是合理的,那就已经够好了。

我当时的理论是,当我们变得更有效率时,开发者自然会更快乐。如果不是,至少当公司从改变中获益时,我们可以给开发人员奖励,他们也会“更快乐”。

我大错特错了。

对我来说,在那个时候,人的感受总是次要的,起码优先级低于项目的成功交付。现在回想起来,我感觉糟透了。

我第一次听到“开发者的快乐”这个词是在我第一次以开发者身份转到手机开发领域时。我们建议改用一种新的语言,也就是Kotlin,它在2017年就开始流行了。

在说服管理层使用这种新语言时,我试图证明这种语言在表达能力方面是多么厉害,因为它比Java更简洁。也有人问我它在编译时、运行时和潜在风险方面的表现。

要证明所有这些都很困难,但是我的技术主管说:“如果Kotlin没有明显的缺点,如果它增加了开发人员的幸福感,那么它值得考虑。”

哇!我的幸福和快乐很重要!我感到被珍惜和感激。

在考虑对任何工具、过程等的更改时,开发人员的幸福感是一个非常重要的考虑因素。如果开发者喜欢它,他们就会尽可能地让它发挥作用,除非我们选择了一个糟糕的选择。

即使我们的选择是错误的,但我们这样做是为了“开发人员的幸福”,团队也将愿意努力纠正和改进这种情况。

我们会从错误中学习,我们“高兴地”犯错,也会“高兴地”修复。

7. 作为领导,我们不应该把“特殊待遇”看成“理所当然”

“我努力工作,晋升是我应得的!”这是一个人们很容易陷入的陷阱。

我非常谨慎,不落入这种“骄傲”。但在从事管理工作数年后,“有资格”享受特殊待遇的感觉自然会产生。

在一张团队照片中,由于我的职位,我应该得到“C位”。人们看到我时应该自然地向我打招呼。我得到了关注和特殊待遇。作为高级经理,我在很多事情上都有优先权和排他性。

当我说话时,人们会倾听。我认为这是我“应得的”。

我大错特错了。

当我转行后,我不再得到所有的关注,也没有额外的待遇。当我说话时,人们会打断我,然后继续说。我只是个“噪音”。

然后我意识到一个事实:当我还是高级经理时,很多人对我更好,不是因为我是谁,而是纯粹因为我的职位。

事实上,我不值得。如果他们对我好,我应该感激的。即使他们没有,也没关系。永远不要陷入“自命不凡”的陷阱,因为我们永远不知道什么时候会有一天,我们将不再是那个位置上的人。

事实上,正是在我们“不在高位”的日子里,我们才能发现真正的朋友和真诚的人。这些人没有任何附加条件地对你很好,我们可以和这些人建立长久的关系。

不管我们的地位如何,我们和其他人一样都是普通人。恭敬地对待每一个人,永远不要期待排他的待遇。毕竟,我们只是暂时生活在这个世界上的伙伴,总有一天,一切都会过去。到那时,重要的不是我们被如何对待,而是我们如何对待他人。

8. 保持技术能力,与开发人员保持联系

我的职业生涯是从开发人员做起的。我专注于学习技术性的东西:编程语言、技术、范例、实践。

当我成为一名高级经理后,我现在也有了为我工作的经理。我想,也许我应该专注于领导力,多读一些管理和领导力方面的书籍。

我的主管和经理应该处理所有的技术问题,我可以把它“委派”给他们。我再也没有时间做低级的“技术性的事情”了。

我大错特错了。

在一开始,这是可行的,因为我“过去”的知识仍然和时代同步,我仍然能够理解开发人员所说的内容。

但过了一段时间,技术进步了,出现了新的语言,引入了新的框架。开发人员继续前行,而我所理解的知识已经无关紧要了。

我仍然试着用“古老的知识”来看待我们提出和讨论的内容。我开始做很多假设,有时过于简化事情,而不是立足于现实中。我再也无法理解开发者的痛苦和挑战了。我无法理解复杂性,这让我过于苛求,并提出了不合理的期望。

当时对我来说,任何编程语言都只是一种编程语言。这有什么难的。我们可以在几周内学会任何语言并掌握它,因为我们的C++基础能让我们学会任何东西。

现在,当我重新开始我的职业生涯,回到实际的开发工作时,我现在很感激当时的开发人员克服了许多困难——学习的痛苦和技术上的挑战。

当开发者知道我们理解他们,并能够与他们建立联系时,他们会更愿意被引导。他们信任我们的领导。

9. 别忘了投资自己,这对你自己和公司都有好处

我是一个非常敬业的员工。我的时间是用来完成项目的。我会集中时间学习所有的内部流程和公司的专有工具。所有的大型组织都有自己的流程和工具,所以我的目标是掌握它们。

换句话说,我的投资都集中在公司内部。我是一个非常忠诚的员工。如果我花时间学习一些其他的东西,我会觉得我不够专注,因为我学的东西不能直接用于公司的工作。

我大错特错了。

我不仅错了,而且我非常愚蠢和天真!

了解和理解与我们的工作相关的组织内部流程是很重要的,但是我们也应该学习足够的知识来满足我们的工作需要。

我们应该花时间学习外部知识,探索我们有热情的领域。这些知识可能与公司工作没有直接关系,但它确实打开了我们的思维,让我们对许多事情有更广泛的思考和理解。

从自私的角度来看,我们要让自己与就业市场保持联系。在简历中,专有知识并不是很有用,相关的技能组合才能使一个人持续具有市场价值。

与此同时,在现实中,更广泛的知识也会让我们更有创造力,因为我们在寻求改进和解决方案时,有能力跳出固有的思维模式。当我们的组织拥有多样化的知识和技能时,它就能更好地创新和成长。

除了学习,我们还应该把时间花在生活的其他方面,比如健康和情感幸福上。通过成为一个更全面的人,我们也会成为更好的员工。

10. 永远不要排除一种可能:有时候我们自己才是问题的根源

问题是生活的一部分,管理也是如此:我们就是来解决问题的。有时我们称之为机遇。

当我们遇到问题时,我们有很多工具来帮助我们进行根本原因分析。这些工具帮助我们列出导致问题的不同可能性,这非常有帮助。

但这个工具的作用,取决于我们在确定根本原因时的诚实程度。在一些不能容忍错误的公司中,人们会避免列出潜在的根本原因,因为这些原因可能会引火上身。

作为管理者,我的职责是找出问题的原因。也许是结构问题,也许是外部因素,也许是我们员工的能力,但绝不是我的错误。

我知道我已经尽力了,根本原因不可能是我。

我大错特错了。

由于从不把自己看作问题的潜在根源,我有时感到非常无力。我一直观察自己的外部世界,寻找应该“责备”的地方,这样我就可以避免追究问题的“责任”。

错的总是“别人”而不是“自己”。因此,我们并不能真正完全控制局面。如果我们总是把自己排除在画面之外,我们可能会错过问题的实际根源。

这是我从一位技术主管那里学来的。有一天,一个专门的开发人员犯了一个看起来很“愚蠢”的错误,导致我们的软件崩溃。经过一些调查,开发人员了解到这个错误,并遗憾地承认了错误。

如果我是经理,也许我会同情开发人员,并要求他们在以后的工作中小心行事。我可能会要求开发人员帮助寻找解决方案,以防止今后出现这种错误。

但当时,我的技术主管并没有因为开发者承认错误而感到宽慰,而是承担了全部责任,并表示他没有制定出防止这种错误的安全网。如果他建立了安全网,这个错误就不会在软件发布之前才被发现。

当我听到这个消息时,我并没有因为他没能建立起安全网而鄙视他。相反,我对这位技术主管的尊重与日俱增。他不仅让开发者感觉更好,而且还承担了全部责任,他觉得自己应该确保问题得到解决。Respect!

写在最后

如果我们仔细看看上面的十条,就会发现管理的重点应该永远放在人身上。管理的过程是为了帮助人们成长,而这些项目是培养人才的机会。

领导要以人为本。事实上,如果没有人,就没有领导。

作为管理者,首要任务是让员工成长,作为回报,员工也将更好地为公司做出贡献。

如果没有人一起工作,经理就什么也不是。我们能有今天,是因为一直得到了员工的支持。

译者:Jane

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值