软件开发管理者必须明白的道理
  • 快眼网络传媒
  • 日期: 2019-03-22
  • 分类: 快眼新闻
  • 阅读量: 271

多年的开发和管理工作为Bill积累了一些避免问题的管理经验,希望这些经验也可以解决你们所面临的问题。

 

1、盯紧那些“高效”的程序员

 

“高效”程序员指的是那些能够快速完成任务的程序员,他们其实非常少见,你所见到的大部分“高效”程序员是通过有意的或无意的走捷径的方式快速完成任务的,他们可能没花时间认真设计和架构代码,可能不会测试每段代码,也可能用了一些难懂、难维护、难扩展的代码。所造成的后果就是代码中存在大量潜在的漏洞,等产品上线的时候,问题就一个又一个冒出来了。

 

如果产品不是急着要发布的话,请一定盯紧这些“高效”程序员,对他们的架构思路和代码进行必要的review。你要在review的时候提出问题、给出建议,并要求其他员工也这样进行review。否则,被检查的员工可能不把检查放在心上,一些员工可能不好意思提出问题,本身愿意提出问题的员工也可能由于其他员工习惯沉默而变得越来越消极。

 

通过正确的监督和指导,这些“高效”程序员的代码质量会越来越高,他们自己工作得也会越来越开心,团队的整体效率也会越来越高。

 

2、鼓励员工持续优化产品

 

不论怎么努力,代码中总会存在漏洞。应鼓励程序员在做其它项目的同时持续对之前的产品进行优化。比如,将多次复制粘贴的代码封装成可以重复使用的模块或函数,将大的难维护的模块分解为合理的较小的模块,或是优化用户界面提升用户体验等等。请不要把改进产品当作单独的项目,因为是项目就有可能会完全停止,优化产品这个任务应该融入程序员的日常工作中去。

 

习惯了持续优化产品的程序员会工作得越来越开心,因为这个过程让他们感觉更自主,感觉自己在做对团队有意义的工作。对于管理来说,这意味着团队工作效率可能稍稍变低,但是这种做法的长期效果会非常不错。

 

3、鼓励代码负责制

 

管理者常常希望所有程序员都熟悉所有的工作内容,这样当他们中的某一个离职的时候,才不会对整个团队造成太大的影响。其实,这样想是不对的。你的员工如果愿意为你工作的话,离职率应该是极低的,你应该针对最一般的情况优化管理。

 

代码负责制是指每一部分代码都有一个负责人,在他没有允许的情况下,别人不能随意修改这段代码。这样的制度会带来工作效率的提升,因为每个程序员都会对自己当前在写的代码非常熟悉。另外,这样做还可以帮助管理者识别哪些程序员需要特别关注,这些程序员负责的代码可能会带来更多的bug。

 

4、识别谁是领导者

 

你肯定能够发现,有些员工和其他人不一样。他们常常被邀请参加白板讨论,经常有人向他们问问题或求助。这些程序员就是天生的领导者,其他的同事已经不自觉地帮你把他们挑出来了,你要做的就是给他们一个名分。

 

首先,你要意识到同时做程序员和领导者相当于同时做两份工作,软件开发需要集中注意力,注意力如果总被其他同事的问题和求助打断就会影响效率。其次,要公开对员工进行升职,这会使他们对其他同事的协助变得更加顺利,也会提高员工的士气和对公司的忠诚度,千万不要等到你的员工主动要求升职,这样就晚了。

 

5、仔细设计考核标准

 

你的团队的业绩考核标准是不是类似于完成任务的数量,或者代码行数呢?

 

程序员都很聪明,他们很快就会学会怎么应付,这种考核标准一定会适得其反。比如说,有些人会挑简单的任务去做,那么解决困难问题的员工就会士气低落。如果写代码和修bug是一个人的话,他可以快速写完,再解决5个bug,这样就完成了6项任务,而写得比较慢却没有产生bug的员工则只完成了1项任务,他会怎么选择呢?想必你已经猜到了。

 

所以,不要再使用这种荒谬的业绩考核标准了,如果你不得不这样做,不要相信它的结果。

 

6、减少员工受到的干扰

 

一些员工意识不到时不时向别人问个小问题这种行为会影响别人的工作。你可以鼓励你的团队成员通过这个优先级进行交流:邮件、团队聊天室、私信、电话或当面沟通。

 

另外,如果其他团队需要你的团队成员的帮助,让他们先来和你谈,由你来指定谁更适合给予协助。

 

这些建议都是较软的规则,因为管理者需要在团队协作与降低干扰之间建立平衡,任一方面都不是绝对的。

 

7、创造员工的私人工作空间

 

不少公司将程序员挤在一整层开放办公区域内,而大部分程序员都带耳机来集中注意力。开放式办公室可能促进了员工的交流,降低公司成本,或者激发更多的创意,但是却很容易干扰员工的注意力,影响他们工作。

 

软件开发需要私人工作空间,听觉干扰和视觉干扰都需要被减少。程序员的办公桌应该有隔板将他们包围起来。公司中也应配备足够的会议室,以便员工们需要沟通或者紧密配合的时候使用。

 

8、鼓励员工的实验项目

 

我们都知道是Google著名的20%时间制度产生了Gmail这个产品。也许你的公司没法投入20%的时间成本供员工做实验项目,但最好定期鼓励并支持他们进行实验。

 

程序员为开发投入精力的同时,更容易提出改进和扩展软件的好想法。同时,管理者可以通过这个过程发现谁是天生的领导者,这些员工更愿意,也更善于寻求更优的解决办法。

 

9、同意员工加入别的团队

 

如果团队成员希望离开你的团队去另一个团队,就算这个员工入职时间较短,也应尽量批准。这不是说你要在项目关键时刻同意他离开,可以让他完成手头的工作再走。同时你应该以平常心去对待这件事。

 

强迫员工留下不会有什么好结果,这会打击他的士气,同时也会影响整个团队。他很有可能效率变低,也许干脆辞职。管理者应尽可能在快乐和效率之间取得一个平衡。

 

10、不要拒绝员工鸡毛蒜皮的请求

 

如果你的员工需要一个大一点的显示器,给他买一个。

如果他需要一个特定的键盘,给他买一个。

如果他因为个人原因,需要每个星期在家工作半天,请答应他。

如果他想要Mac电脑不想要PC,给他换一个。

 

只要这些要求没有严重影响公司的预算,或者他们没完没了地提要求,请尽量满足他们。

 

程序员的工资都不低,相对于他们的收入来说,这些要求都是小问题。满足这些小要求,可以极大地改善他们的工作环境,从而提升工作效率。

 

如果你不是公司的创始人或老板,而公司因为这点事情而出现预算紧张的话,你也应该考虑换一份工作了,因为公司的管理可能已经出现了比较严重的问题。

 

11、避免年度工作总结

 

永远不要让员工等6个月才知道你对他们的印象是好还是不好,经理和员工应该经常交流。

 

很多公司一直坚持传统的那一套方法,不仅没什么用,还对公司有害。特别是员工互评这个制度,关系好的员工可以私下约好互相给好评,关系不好的员工可能因为个人原因而互相指责。

 

经理和员工的交流最好不是强制性的,而是有需要就沟通。如果是强制性的,可能也没话可说,导致浪费时间。如果双方都不太愿意沟通,这更是一个需要解决的问题。

 

12、你并不比你的员工优秀

 

软件开发是一份工作。软件开发管理也是一份工作。你的员工向你汇报工作并不意味着你更聪明或者你比他们更能胜任他们的工作。

 

很多程序员就是喜欢写代码,不喜欢管理,你要弄清楚这一点。不要因为做管理的薪水多,就认为做管理就是软件工程师的必经之路。

 

一辈子写代码也没什么不好。程序员转管理岗位一般只有一种可能,那就是他们想做。

 

13、不要有年龄歧视

 

年轻的员工更有活力,而年纪大的员工因为丰富的经验而有较高的工作效率。一个团队如果拥有不同年龄层的员工,他们的合作就可能有1+1 > 2 的效果。

 

Bill工作过的最好的团队中,员工的年龄层就不一样。从20多岁到临退休年纪的都有。他们刚好能够互补,合作得非常愉快。这种高效的协作很难用科学来讲清楚。

 

总之,在面试的过程中,不要把年龄当成一个考核标准。

 

14、不要设定愚蠢的着装规定

 

现在都是21世纪了,在软件公司,着装随意已经是一个不成文的规定了。

 

如果你是传统企业的话,就需要好好注意这一点。你的员工也都是成年人,不要在这一点上为难他们。做商务工作的员工,可能因为工作需要而穿正装。但如果是公司的技术人员,不需要出去见客户,就请让他们怎么舒服怎么来。

 

总结这篇文章有点长,希望能够帮到你的团队。如果你关心员工的话,他们也会关心你,结果就是双赢。