团队的组建
一个完全由精英组成的团队不一定是好的团队。对于一个研发性组织来说,需要各种不同能力的人以及不同专长的人加入.比如:精通编程的,熟悉数据库的,长于沟通交际的,长于思考的,长于行动的,长于决策的,愿意服从的。
人员的数量通常应大于2小于10.如果团队的人数小于3人,则更多时候发展起来的是个人之间的感情而不具有团队的性质.根据统计数字,每个人,即使是最有效的管理者,通常能有效直接沟通指挥的人不多于10个.如果有人声称自已能够领导10个以上的人做为一个团队成功运作.那么在他团队成员中,必然存在一些没有正式任命的潜在领导者来担当了下层领导的作用.
民主还是专制,关于这个问题争论很广泛.我个人的观点是,如果团队的产品要保证高度的一致性、概念统一性、有限定的截止期限、或严格的资源要求。那么就必须由少数人来进行专制决策.如果团队的产品要体现创造性,而且从各方面来说比较宽松,那么是适合民主性的决策的。比如一些没有紧迫的时间要求和市场要求的研究性课题。
管理的重要性
对于技术性机构来说,管理仍然是第一位的,管理是一个组织的灵魂。任何不受约束的行为必然导致无法预料的结果。
在企业中,任何技术性行为都不能够超越管理活动。即使存在技术性的尖子,也不能因为个人而破坏管理制度。
比如:一位技术人员不受计划的约束而对某项技术的过分沉迷研究有可能会导致该项目的严重延期。一位技术人员私下承接其它任务也必然打乱目组所制定的工作及进度计划。导致项目进度的无法掌控及团队管理工作的混乱性。
软件研发性机构的管理也不等同于传统工业的“控制”。更合适的字眼是:引导、纠正。
关注过程还是关注结果
这个问题其实视管理者所处的位置而定,如果处于高层管理者,那么可以只关注结果。而对于中下层管理者而言,对过程的忽视必然导致对进度的不可预知和项目的不可控。所以中下层的管理者不仅要重视人员的生产结果,还要密切关注其生产过程。
管理者的身份
管理者应将自己视为一个团队的出入口,应当将着眼点集中于团队通过你这个出口,可以为你的上级和其它团队提供了什么东西或成果。上级的决策及其它团队所提供的成果或其它资源将通过你这个入口对你的团队产生作用。如果走的不是这条路子,混乱性是必然存在的。
人的重要性
不同于很多传统工业,一些机械化的生产过程可以被大辐的自动化,从而缩减人力,提高生产率与精确性.但对于软件产业来说,即使是最小的工作也是由开发者个人的能力及其智慧决定的.好的生产者和差的生产者的效率及质量优异性最大可以差距到1:10.
除了雇用优秀的人员,对于士气的关注必然大幅提高生产效率.因为软件工作既然是一项脑力活动,任何开发者的情绪波动必然影响其生产效率.所以及时的发现,并沟通开发人员的情绪问题而且合理的解决问题显得更加重要了.
对于个人成就感的渴望对于每个开发者都是需要的.作为一种情感诉求,所承接任务的优越性、独特性、重要性,将会很大的影响其生产效率。
通常情况下,对一个开发人员付以厚重的期望与充分的信任(前提是开发者本人没有任何负面的情绪问题),并向他口头明确的表达或当众表示你对于他的期望和信任。他会超出自己的能力限度,发挥最大的潜能来完成这件任务。
Case工具和过程无法替代人的重要性,即使理论上再好,再先进的Case工具及软件过程也不可能如你所期望的那样最好的提高生产力。归根结底,事情不是由工具去完成的,而是由人去做的。
与其在Case工具和过程上投入更大的精力,不如放在对人员及其生活、福利的关注上。
有效的工作时间,因为软件生产是一项脑力工