目录·序言

12.5 团队讨论

移山之道:VSTS软件开发指南 作者:邹欣


  12.5团队讨论

  由于大部分人都反映以前的项目太忙,每人都加班,但是劳而无获,阿超把一队人马都带到小河边开会,大家一边晒太阳,一边讨论时间安排问题。

  阿超:要弄清这个问题,首先要说明员工到底有多少时间用在工作上?或者说,有多少时间花在写代码上?

  小飞:又来了,员工的时间是取之不尽,用之不竭的,不过,上次我们的加班费还没有着落呢。

  果冻:报告超总,我每天工作10小时,一周7天,天天如此。

  大牛:玩游戏的时间也算上了么……(众笑)

  员工每周只有40小时上班时间,每天8小时。上班时间是你出现在公司的时间。而项目工作时间是指你在精力集中、无干扰的情况下为项目进行开发的时间。根据我的经验,每人每周最多只有四天时间,32小时实实在在地在做项目。其余的8小时花在下面三个地方——

  日常事务,我们的确要花很多时间处理琐碎而又不得不做的事:交流、开会、讨论、写E-mail、玩游戏等,对于一些员工来说,8小时还远远不够。

  作为缓冲,如果你任务没完成,那就首先用这个时间来填补。这意味着如果你项目的任务没完成,那就少一点开会/讨论/玩游戏,等等。

  在项目过程中有不少突发事件,你要应急,可以先从这里拨出时间,如果不够,可以再从32小时工作时间中拿。

  软件学院的同学们不理解为什么一周要有8小时“非开发时间”,我们有工作经验的同事不妨说说,我们在没有直接开发/测试/设计软件的时候都在干什么:

  我没看见你在写软件,你到底在忙什么

  (移山公司的同事集体创作)

  (1)人员调动和安排工作环境。

  (2)数据迁移。

  (3)安装,定制办公及开发软件,调整Windows桌面背景设置。

  (4)从网上下载代码和其他技术资料(还有电影),并研究。

  (5)进行各种内部测试(如Beta)。

  (6)演示软件,为演示软件而做的杂事,如制作PPT等。

  (7)维护以前版本的系统。

  (8)为单位别的人员(特别是刚买了高档laptop的领导)提供技术支持。

  (9)项目管理系统(如TFS)的管理和维护。

  (10)支持用户及其他技术文档的写作/复审。

  (11)培训(技术培训/听课;公司的非技术培训)。

  (12)技术会议。

  (13)公司大大小小和技术无关的会议。

  (14)读/写E-mail。

  (15)写工作总结,等等。

  大牛:当然,也可以从40小时以外抽时间。

  阿超:是的,如果在规定时间没有完成任务,也许要搭上自己的时间,或者是刚到公司,要学的东西太多了,或者是工作规划时估计不够,或者是个人时间运用的效率不高。这些情况下,都要加会儿班。但是如果我们想让公司、团队和个人得到长期的发展,加班不能是常态。

  荔荔:员工培训的时间呢?

  阿超:在项目过程中,我们的精力主要应该放在项目上,这时我们的培训时间应该从8小时机动时间内划分,或者用业余时间。在项目告一段落时,我们可以花更多的正式时间来进行培训。最好的培训,是在工作中学习。

  我原来还想增加日常事务的时间,但是大智总裁觉得不妥,他认为40小时都应该是项目工作时间,8个小时已经太多了。最后决定先按照我的折中方案试试看。

  果冻:智总真是太英明了。

  阿超:所以,我们的项目是基于一线人员每人每周32小时的工作量来安排。

  对于管理人员(组长)来说,每人每周再有8小时用于管理工作,管什么呢,管人、管技术、管进度。

  所以,项目管理人员,包括每周只有24小时用于直接的项目任务,另外16小时用于管理,以及日常事务。注意,管理人员的管理时间也是非常重要的,他们虽然没有在写代码,但是花在不写代码的这部分时间对项目的成败有更重要的影响。

  归纳起来:

  一线员工:每人每周32小时的工作量,8小时日常事务。

  管理人员:每人每周24小时的工作量,8小时日常事务,8小时管理。

  对开发人员的期待:

  (1)从用户的角度考虑问题。

  (2)设计和实现代码时允许缓冲区,但是一旦代码完成,质量必须是最好的。

  (3)代码的行数和工作绩效无关。

  (4)真正好的工程师是能够用简单的办法解决复杂的问题。

  (5)模块的最终质量决定了工作绩效。

  对测试人员的期待:

  (1)尽早参与设计。

  (2)尽早发现问题,最好在问题要发生前就能阻止问题的发生。

  (3)发现的缺陷的数量和工作的绩效没有直接关系。

  (4)模块的最终质量决定了工作绩效。

  对项目管理人员的期待:

  (1)推动项目的发展,从技术层面说,就是在出现不同意见的时候做决定。做出后来发现是错误的决定,也比没有及时做决定好。

  (2)从管理方面推动项目的发展,不仅要注意现有的任务的进展,还要注意有哪些东西应该做而没有做。

  (3)整个大模块,或整个产品的质量决定了管理人员的绩效。

  (4)自己所领导的团队的绩效也决定了管理人员的绩效。

  小燕:芸芸是程序经理,是不是程序员的经理?然后测试工程师是不是也受程序员和程序经理的共同领导?

  九条:测试工程师马上就有几座大山压在身上了。

  芸芸:不会吧,我正在实习,还没有毕业,怎么可能领导别人呢?

  阿超:在团队中,不同专业的人员为了完成一个项目或功能在一起工作,大家是平等协作的关系。

  大牛:图12-2是官方的人员关系图,你看,没有领导关系,只有协作关系,这样大家该放心了吧。

  大拴:从图上看,分工真详细,但是我们没有这么多人来玩这么多角色,怎么办?

  图12-2人员的关系

  阿超:事实上,大部分的团队都没有这么齐全的队伍,很多项目也并不需要样样齐全的正规军来做。对于小型的团队和小型的项目,可以根据表12-1来这样合并角色:

  表12-1合并角色

 

体系

结构

产品

管理

程序

管理

开发

测试

用户

体验

发布

管理

体系

结构

 

N

P

P

U

U

U

产品

管理

   

N

N

P

P

U

程序

管理

     

N

U

U

P

开发

       

N

N

N

测试

         

P

P

用户

体验

           

U

发布

管理

           

 



  (P:可能;U:不可能;N:不推荐)

  如果我们尽量合并角色,会得到表12-2。

  表12-2合并角色之后的关系

合并后的角色

主要职责

管理人员(程序管理,发布管理)

主要进行项目具体的管理工作

开发人员(体系结构,开发)

主要负责项目具体的技术设计和开发工作

质量控制人员(产品管理,测试,用户体验)

主要负责产品质量,用户对产品的认可和接受程度



  这就是我们目前的角色分配。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号