注:来自程序员第七期。
软件项目管理中的人员管理活动是一个闭环管理的过程:
对每个人员的评价可分为几个方面进行:
项目相关的技术能力
管理能力
软件技能
而相应的培训计划也应该扩展到很多和项目技术并不直接有关联的综合素质培养上。
软件开发组织中的人员管理和团队建设的一个关键点是,要意识到软件开发的团队组织是一群有创造力的软件工程师,在整个软件开发过程中应严格遵循规程,因为规程所制定的目的是保证一个项目小组所有人在一起协调有序的工作,任何违反规程的个人行为都将对整个小组的效率产生影响;而在需求分析和软件设计环节上,应大力鼓励创新和创造性思想,打破常规去发掘和发现用户真正的需求要求和需求动机,力图在系统设计一级上追求超出一般的解决方案。
对团队中的成员表现可以建立一套评测标准,其目的不仅在于考核效绩,更在于为每个人量身定做职业和个人能力发展的道路。一个合格的软件工程师应在以下六个方面体现:
软件编程能力:这是一个软件工程师的基础,主要衡量他的代码质量,有没有好的编程习惯,代码是否易懂、易维护、简洁有效。我们要求所有工程必须达到这个基本要求。
体系结构设计能力:一方面衡量是否有能力完成系统结构设计,另一方面要求做实现的工程师能否领会系统结构的设计意图,有系统意识,并时刻贯穿于具体实现当中。
领域知识:软件开发都是为解决某一领域的问题,而具有相关领域的知识将会有利于产生高质量且贴近用户的产品。
管理和协调能力:软件开发是一个团队的活动,如何组织好一个团队并使其产生效率将直接影响资源的有效利用率。
沟通和展示能力:团队的有效活动需要交流和沟通的支持,便我们又必须到内部交流所产生的代价,应设法提高交流的效率,使其在最小的代价下运转正常。
创新和创造能力:软件行业是一个高度密集的脑力劳动,创新能力将是一个软件开发团队富有活力的体现。要注意发掘和培养富有创造力的软件人才,使他们有施展才能的空间。
这六个方面注重的是一个软件工程师素质的全面发展,而不仅仅是着重于某一侧面,这有利于软件开发团队健康而长期稳定地发展。对于不同素质的人在委派工作岗位时,要注意用人所长、避人所短。我们希望看到的是,工作成果来自于一个团队的协作,而非一两个高手的杰作。