论文部分内容阅读
摘要:本文探讨了在大型软件项目的实施过程中,如何有效的管理团队成员,如何可控的推动项目进度,从实践的角度上,给出了一种加强软件项目管理的有效模式。在SCRUM敏捷开发过程的基础上,该模式从计划、组织分派、控制纠偏及团队建设四个方面介绍了软件工程项目管理的有效经验。
关键词:软件项目;管理实践;SCRUM
中图分类号:TP311.5-4 文献标识码:A 文章编号:1007-9599 (2012) 21-0000-02
1 引言
Scrum被认为是目前全球最流行与最有效的敏捷项目管理理念与方法之一,在软件业发达地区被众多知名企业广泛采纳。TFS(Team Foundation Server)是集成的团队管理工具,能够实现团队成员之间更好的交流与协作。本文所介绍实践经验是以Scrum及TFS的实施为基础的。
2 项目管理实践模式
现在从SCRUM每一个迭代周期中的目标与计划制定、工作的组织分派、过程中的控制与纠偏这三个方面介绍,最后介绍团队建设。
2.1 目标与计划
计划的制定分为阶段性工作计划,以及周工作计划。
阶段性工作计划以里程碑时间点为界,时间跨度根据项目的大小而定,对于一个大型的项目,可以季度末作为里程碑时间点。
周工作计划在每周一制定,确定本周每人的具体工作。
制定目标与计划时,要尽量做到项目细分。项目细分得越小,则说明计划考虑得越周到,实施过程中也会使得偏差越少,是做得较好的。最好能够对每一项任务做一个时间上的大概安排。
2.2 组织与分配工作
(1)每周工作认领会。每周一,周计划制定之后,团队召开“周工作认领”会议。Team Leader将本周所有工作项写在纸片上,并将所有纸片贴在墙上,大家依次认领各纸片上的任务。每认领一项任务,认领者需要预估一下所需时间,其他成员评估一下此时间是否合理。当然,如果有人认为可以用更少的时间来完成此项工作,那么这项工作可以转交给此人。
(2)每日立会。每天早上前10至15分钟,大家一起站到任务看板前进行立会。立会中,每人发言。发言的内容主要有三个方面:总结前一日的工作;反映前一日工作中遇到的问题,必要时,Team Leader需要安排人协助;承诺今日的工作内容。承诺很重要,它会给开发者带来“必须完成”的压力。
(3)任务看板。任务看板上主要分为两块:左侧用于张贴任务条,分为计划中的任务、进行中的任务以及已完成的任务;右侧绘制燃尽图,反映进度情况。所有的工作项都写在纸片上并贴到任务看板上,每日立会时需要对首任务看板讲解,同时任务看板上能够一目了然的反映出各项工作的进展。
(4)TFS中为每个工作立项。所有的工作项,都应该在TFS中立项。这样便于工作的跟进,以及开发人员之间的协作,另外,也有利于工作量的统计。
2.3 控制与纠偏
(1)TFS持续集成。我们将TFS的集成模式设置为持续集成,生成的结果将会立即返回给提交者,以保证服务器上的代码是最新的、可用的。(2)工作项细分。每项工作要细分为2~16h。较小的工作项,便于跟踪并及时精准的调整进度。实践经验证明,工作项细分之后,相比宠统的工作项,更能够有效的保证进度。(3)每工作项?时间点检查。每工作项进行到预估时间一半的时候,Team Leader应检查执行情况。如果此项工作进展不顺利,要分析原因,或安排人员协助,或改变技术方案,及时调整进度。(4)经常性的演示,及时发现问题。安排尽可能多的演示,目的有二:第一,让用户、领域专家参与到开发过程中,避免开发人员迷失在代码丛林中;第二,谁做的工作谁演示,这会缎带演示者“演示成功”的压力,从而做好做细工作。(5)推行代码审核制度 每天工作快结束时,留下约15分钟的时间,相互之间进行代码审核。建议不要固定某两位互审,而采用交叉循环的方式。(6)最有效的沟通方式:面对面+白板。技术讨论或工作安排时,把相关人员一起叫到白板前,边解说,边绘制草图,这种方式是十分有效的。不建议大家采用文档的方式进行沟通。(7)技术总结文档十分重要。把个人的经验总结写成文档,可以供团队其它成员,以及后来的成员学习,从而让大家都掌握。另外,有些问题的解决过程比较复杂,如果能够把其形成文档,可以依照此文档即可解决相同的问题,这样可提供工作的效率。
2.4 团队建设
(1)不定期的培训。条件许可时,可以参加培训机构举办的培训,或者邀请培训老师到公司来进行培训。即使条件不允许,我们也可以进行内部培训。Team Leader可以组织开发类、专业类及测试类的专题讲座,也可以请团队成员各自讲授自己所善长的技术。(2)经常鼓励团队成员。当团队中某成员工作上取得了突破,或攻克难题时,大家都给他(她)祝贺,不一定非得物质上的奖励,其实,即使发个邮件、拍拍肩膀等方式,也可以取得很好的效果。(3)优先考虑团队总体进度。对于新工作的成员,往往只想到把自己的工作及时完成了,保证了自己的进度就好了。其实这是不够的,团队的进度才是第一位的。团队总体进度,往往卡在进度最慢的成员那里。所以大家要及时协助遇到困难的同事,这一点上,Team Leader尤其要有表率作用。(4)双向沟通优于单向沟通。交待工作时,最好采用协商讨论的方式进行,让接收者也尽可能发表自己的看法,不要强制性分派工作。
[作者简介]
陆中元,中国建筑科学研究院深圳建研软件有限公司,主要从事技术工作领域:BIM软件开发、计算机应用。
关键词:软件项目;管理实践;SCRUM
中图分类号:TP311.5-4 文献标识码:A 文章编号:1007-9599 (2012) 21-0000-02
1 引言
Scrum被认为是目前全球最流行与最有效的敏捷项目管理理念与方法之一,在软件业发达地区被众多知名企业广泛采纳。TFS(Team Foundation Server)是集成的团队管理工具,能够实现团队成员之间更好的交流与协作。本文所介绍实践经验是以Scrum及TFS的实施为基础的。
2 项目管理实践模式
现在从SCRUM每一个迭代周期中的目标与计划制定、工作的组织分派、过程中的控制与纠偏这三个方面介绍,最后介绍团队建设。
2.1 目标与计划
计划的制定分为阶段性工作计划,以及周工作计划。
阶段性工作计划以里程碑时间点为界,时间跨度根据项目的大小而定,对于一个大型的项目,可以季度末作为里程碑时间点。
周工作计划在每周一制定,确定本周每人的具体工作。
制定目标与计划时,要尽量做到项目细分。项目细分得越小,则说明计划考虑得越周到,实施过程中也会使得偏差越少,是做得较好的。最好能够对每一项任务做一个时间上的大概安排。
2.2 组织与分配工作
(1)每周工作认领会。每周一,周计划制定之后,团队召开“周工作认领”会议。Team Leader将本周所有工作项写在纸片上,并将所有纸片贴在墙上,大家依次认领各纸片上的任务。每认领一项任务,认领者需要预估一下所需时间,其他成员评估一下此时间是否合理。当然,如果有人认为可以用更少的时间来完成此项工作,那么这项工作可以转交给此人。
(2)每日立会。每天早上前10至15分钟,大家一起站到任务看板前进行立会。立会中,每人发言。发言的内容主要有三个方面:总结前一日的工作;反映前一日工作中遇到的问题,必要时,Team Leader需要安排人协助;承诺今日的工作内容。承诺很重要,它会给开发者带来“必须完成”的压力。
(3)任务看板。任务看板上主要分为两块:左侧用于张贴任务条,分为计划中的任务、进行中的任务以及已完成的任务;右侧绘制燃尽图,反映进度情况。所有的工作项都写在纸片上并贴到任务看板上,每日立会时需要对首任务看板讲解,同时任务看板上能够一目了然的反映出各项工作的进展。
(4)TFS中为每个工作立项。所有的工作项,都应该在TFS中立项。这样便于工作的跟进,以及开发人员之间的协作,另外,也有利于工作量的统计。
2.3 控制与纠偏
(1)TFS持续集成。我们将TFS的集成模式设置为持续集成,生成的结果将会立即返回给提交者,以保证服务器上的代码是最新的、可用的。(2)工作项细分。每项工作要细分为2~16h。较小的工作项,便于跟踪并及时精准的调整进度。实践经验证明,工作项细分之后,相比宠统的工作项,更能够有效的保证进度。(3)每工作项?时间点检查。每工作项进行到预估时间一半的时候,Team Leader应检查执行情况。如果此项工作进展不顺利,要分析原因,或安排人员协助,或改变技术方案,及时调整进度。(4)经常性的演示,及时发现问题。安排尽可能多的演示,目的有二:第一,让用户、领域专家参与到开发过程中,避免开发人员迷失在代码丛林中;第二,谁做的工作谁演示,这会缎带演示者“演示成功”的压力,从而做好做细工作。(5)推行代码审核制度 每天工作快结束时,留下约15分钟的时间,相互之间进行代码审核。建议不要固定某两位互审,而采用交叉循环的方式。(6)最有效的沟通方式:面对面+白板。技术讨论或工作安排时,把相关人员一起叫到白板前,边解说,边绘制草图,这种方式是十分有效的。不建议大家采用文档的方式进行沟通。(7)技术总结文档十分重要。把个人的经验总结写成文档,可以供团队其它成员,以及后来的成员学习,从而让大家都掌握。另外,有些问题的解决过程比较复杂,如果能够把其形成文档,可以依照此文档即可解决相同的问题,这样可提供工作的效率。
2.4 团队建设
(1)不定期的培训。条件许可时,可以参加培训机构举办的培训,或者邀请培训老师到公司来进行培训。即使条件不允许,我们也可以进行内部培训。Team Leader可以组织开发类、专业类及测试类的专题讲座,也可以请团队成员各自讲授自己所善长的技术。(2)经常鼓励团队成员。当团队中某成员工作上取得了突破,或攻克难题时,大家都给他(她)祝贺,不一定非得物质上的奖励,其实,即使发个邮件、拍拍肩膀等方式,也可以取得很好的效果。(3)优先考虑团队总体进度。对于新工作的成员,往往只想到把自己的工作及时完成了,保证了自己的进度就好了。其实这是不够的,团队的进度才是第一位的。团队总体进度,往往卡在进度最慢的成员那里。所以大家要及时协助遇到困难的同事,这一点上,Team Leader尤其要有表率作用。(4)双向沟通优于单向沟通。交待工作时,最好采用协商讨论的方式进行,让接收者也尽可能发表自己的看法,不要强制性分派工作。
[作者简介]
陆中元,中国建筑科学研究院深圳建研软件有限公司,主要从事技术工作领域:BIM软件开发、计算机应用。