敏捷开发管理实践(1)让人的资源多起来.doc
敏捷开发管理实践( 1)让人的资源多起来 第 1 部分 开篇语 项目管理作为一门独立的学科,已经发展了很多年,并为实践提供了丰富的理论依据。而软件开发的项目管理,虽然也属于传统项目管理的范畴,但是由于软件工业本身的特点,很多在传统项目管理理论中被证明行之有效的理论和方法,拿到软件开发的项目实践中却常常达不到预期的效果。软件开发的项目管理与传统项目管理的这种差异究竟在哪里呢?这个问题已经有很多人在研究并成果丰富,一致的结论性的原因就是:软件开发中的项目管理本质是人的管理。 人作为项目管理的主要素主导着整个项目的成功和失败,所以对于软件项目开发管理者来说,需要引起足够重视的一点就是要重视人 —— 在软件开发中,这将主导技术、效率、质量。 本文内容上没有阐述敏捷项目管理与普通项目管理的区别,也没有完全按照计划—— 分工 —— 执行三个环节来论述,更多的是作者随想随写的一些经验之谈。软件的项目管理也是整个软件工业没有“银弹”的一个重要方面,很多时候,经验比理论占据更重要的地位。文中的很多内容对于有实际项目管理经验的同行来说,可能能够产生一些共鸣,如果这样,本文就起到总结经验的作用。对于那些尚 未有取得这些经验的同行来讲,本文中的实际案例和场景可以帮助增进这些读者的感性认识。 第 2 部分 让人的资源多起来 软件项目开发的核心资源就是人,在一定的项目规模和资本规模下,人的资源是受限的。项目中考虑人的资源常常以人数来计,但是实际中我们都清楚,工作量是以任务来分解和总和的。这就说明人和任务之间存在一个关系,这个关系就是角色。 1.1. 角色( Role)角色是对工作任务的职责抽象,与具体的职位有着区别。一般情况下,角色和职位是多对一的关系。敏捷风格的项目管理认为在产品(软件)开发过程中,成员所承担的角色虽然 有其固定的一面,但是可以赋予它更多变化来改变工作的分配模式。举例来说, A 的职位是项目经理,但是同时也是优秀的设计师,那么,可以认为 A 承担了项目经理和设计师两个角色。 在软件开发管理中,角色其实非常丰富。常见的角色如:项目经理、需求分析师、系统设计师、开发工程师、测试工程师。对于大型项目,比如基于 J2EE 的项目,根据实际项目中的技能需求,需要各种类似专家的角色,比如人机界面工程师,部署工程师,配置管理员, DBA 等。 敏捷的项目管理中要求角色不是固定的,一人可以担