本来没有想写这么详细的,看了一部的提高生产率的几条建议,感觉,那是要带进沟里的感觉,奋笔疾书!
软件研发的主体是人,产出是软件,生产效率方面的措施均应该涉及到这两个核心:软件,人。
增加面向工作效率的考核
目前的绩效考核对“态度”的考核较多,但没有体现考核“效率”的,考虑增加一条如何?
例如,每次会议都能在半个小时内完成的,和超过一个小时的分别给予奖惩。
例如,提前完成工作,而且没有加班的,给予效率奖。加班可能会提高产出,但是会降低工作效率,这个应该是通识了。
培训
大多数的员工,需要进行培训,培训如何管理自己的时间,如何管理自己的工作流程。让员工掌握高效工作的技巧。
其次,公司的员工,尤其是研发的,菜鸟和小白的比例太高,需要建立更好的培训体系,建设更加浓厚的技术氛围。
有两点促使我思考,一个就是,我也听说华为员工入职就有长达6个月的培训,纯正的培训,这一点是不是也值得我们思考。另外一个,我之前的工作环境中,在午间休息,甚至聚餐的时候,讨论的是新技术,小技巧,而我们现在的情况是,大家在公司工作中都很少谈技术,员工都不热衷于技术的企业不可能是一个优秀的研究型的企业。
是否可以增加对培训的支持,例如支持员工自我培训,鼓励员工去考证,公司给报销考试费用?
架构设计与复用
在软件产品中,可复用的东西很多,而且复用的成本可以低到零,这是这个和硬件开发最不同的地方。软件产品,的文档,包括各种开发文档,用户文档,软件模块,组件,工具,系统,甚至是研发环境都有可能复用的。可是高可复用性来源于较高的架构设计,这些我能听到有口号,但是具体如何去做,如何提高我们的架构水平?我这个级别没有听到。
是否可以在公司内增加架构师的职位?
公司内的架构师是否能不断地对公司产品进行架构?周期性地推广这些架构,这样每个普通研发就能根据这些架构去努力增加可复用的软件产品?
规章与流程
规章/流程和生产效率的关系我也说不清楚,但是没有一个固定的规章能使生产效率达到最高,其他的影响因素太多了,这也是我即不好评论公司的规章制度,也不好对它提出什么建议的原因。
微软,谷歌为代表的企业,赚的是聪明人的钱,而只有“自由”的环境,才是创造力最高的,所以这样的企业精神就是工程师自由,当然级别越低,自由度越低,基本的规章制度还是有的,但是最基本的员工往往也允许有20%的可以自己支配的工作时间,或者上下班时间不受考勤约束等等(当然是针对研发人员的)。
印度的塔塔集团,则是世界上研发人员最多的公司,它们则有非常严格的规章制度,他们甚至把软件工作像流水线一样的进行分解。
华为和塔塔这两种模式放在本公司都会失败,然而,能找到一些适用我们的规则:
1.高素质的研发人员+自由的环境,工作效率提高
2.高素质的研发人员+严格的环境,工作效率略微提高(因为工程师主动性,创造性下降,额外有保持这些规章运行的额外的资源)
3.高素质的研发人员+蹩脚的的规章制度,工作效率严重下降(研发人员流动性增大)
4.低素质的研发人员+自由的环境,工作效率降低
5.低素质的研发人员+严格的环境,工作效率降低,(工作效率下降,工程师产出略微提高但是维护规则运行的成本高),但是在研发人员数量巨大的时候,可以运转,能支撑大项目开发
6.低素质的研发人员+蹩脚的的规章制度,工作效率严重下降(不管还好,越管越乱)
7.不同属性的工作,往往对应着不同的规章制度
8.只有频率较高的工作流程上设立规章制度才能带来积极的影响,例如在一个每天每几辆车通行的路口加了红绿灯,只会降低工作效率
9.一个工作,参与的人越少,规章制度越是消极作用。极端情况,一个项目如果是一个人做,但是还是有命名,审批,计划,等等完整流程,生产率会严重降低。但是随着团队的增大,规章制度慢慢体现出它的作用。
10.完整的软件开发生命周期流程已经被很多的软件实践所批评,其他的软件开发管理实践中,很多打破规章制度的管理,在不同的项目中都有取得好的效果的例子,值得我们思考。例如去文档化,就是把文档写在代码中的一种做法,也有好的效果。