文档介绍:第一讲学****项目管理
管理涉及的内容
主要内容
产品
过程
W5HH原则
本课程的学****对象包括软件工程和计算机学科方向的学生以及从事业务信息系统学****的学生。从事技术工作的学生在学****那些与编程无关的课程时,往往会没有
项目管理是人员密集型的活动,因此,胜任开发的人却常常有可能是拙劣的团队负责人,他们完全不具备管理人员的技能。
领导能力的MOI模型(Jerry Weinberg [ WEI 86 ]):
Motivation(激励):(通过“推”或“拉”)鼓励技术人员发挥其最大才能的一种能力
Organization(组织):形成能够将最初概念转换成最终产品的现有过程的能力。
Idea or Innovation(思想或创新):即使必须在特定软件产品或应用的约束下工作,也能鼓励人们去创造并让人感到有创造性的一种能力。
成功的项目负责人应采用一种解决问题的管理风格。也就是说,软件项目经理应该注重理解要解决的问题、把握住涌现 的各种意见、同时让项目团队的每一个人知道质量很重要,不能妥协。
人员
软件团队
14
有多少开发软件的组织,就有多少种软件开发人员组织结构。不管理怎么说,组织结构不能轻易改变。至于组织改变所产生的实际的和行政上的影响,并不在软件项目经理的责任范围内。但是,软件项目中所直接涉及的人员的组织,则是项目经理的职责。
“最好的”团队结构取决于组织的管理风格、团队里的人员数目与技能水平,以及问题的总体难易程序。
规划软件工程团队结构时的七个项目因素(Mantie [MAN 81])(1)待解决问题的难度;(2)开发程序的规模,以代码行或功能点来度量;(3)团队成员需要共同工作的时间(团队生存期);(4)能够对问题做模块化划分的程度;(5)待开发系统的质量要求和可靠性要求;(6)交付日期的严格程度;(7)项目所需要的友好交流的程度。
人员
软件团队
15
软件工程团队的四种“组织范型”(Constantine [CON 93]):
封闭式范型。按照传统的权利层次来组织团队。当开发与过去已经做过的产品相似的软件时,这种团队十分有效。但在这种封闭式范型下难以进行创新性的工作。
随机式范型。松散地组织团队,团队工作依赖于团队成员个人的主动性。当需要创新或技术上的突破时,按照这种随机式范型的团队很有优势。但当需要“有次序地执行”才能完成工作时,这种团队就会陷入困境。
开放式范型:试图以一种具有封闭式范型的控制性,又包含随机式范型的创新性的方式来组织团队。工作是大家相互协作完成的。良好的沟通和根据团队整体的意见做出决策是开放式范型的特征。开放式范型的团队结构特别适合于解决复杂的问题,但可能不像其他类型的团队那么有效。
同步式范型。依赖于问题的自然划分,组织团队成员各自解决问题的一部分,他们之间没有什么交流。
人员
软件团队
16
为了建成一支绩效良好 的团队:
团队成员必须相互信任
团队成员的技能分布必须适合于要解决的问题。
如果要保持团队的凝聚力,必须将坚持个人己见的人员排除于团队之外。
一个有凝聚力的团队是一组团结紧密的人,他们的整体力量大于个体力量的总和。与一般团队相比,有凝聚力的团队成员 有更高的生产率和更大的动力。他们拥有共同的目标和共同的文化,而且在很多情况下,“精英意识”使得它们独一无二。
但是,并非所有的团队具有凝聚力。事实上,很多团队都受害于Jackman[ JAC 98]称之为“团队毒性”的东西。她定义了5个“培育潜在含毒团队环境”的因素(1)狂乱的工作氛围(2)引起团队成员产生摩擦的重大挫折(3)“碎片式的或协调很差”的软件过程(4)在软件团队中没有清晰的角色定义(5)“接连不断地重蹈覆辙”。
人员
敏捷团队
17
近年来,敏捷软件开发已被当成解决软件项目开发困扰的一个良方。敏捷方法学倡导的是:通过尽早地逐步交付软件来使客户满意;组织小型的充满活力的团队;采用非正式的方法;交付最小的软件工程工作产品;以及总体开发简易性。
小型的充满活力的团队,也称为敏捷团队,采纳了很多成功的软件项目团队的特性,同时又避免了很多产生问题的***。同时,敏捷方法学强调团队成员的个人能力与团队协作精神相结合,这是团队成功的关键因素。
在软件项目中,为了充分发挥每个团队成员的能力 ,并培养有效的合作,敏捷团队是自组织的。自组织团队不必保持单一的团队结构,而是采用随机、开放、同步式的范型,并且拥有制定计划和做技术决定的自主权。
人员
协调和通信问题
18
现代软件存在规模很大、不确定性和互操作性的特征。为了有效地处理这些问题,软件工程团队必须建立切实可行的方法来协调工作人员之间的关系。为了做到这点,需要建立团队成员之间的正式的和非正式的交流机制。
正式的交流机制是通过“文