项目管理体系并不敢奢望成为“最好的”方法,但盼望成为“最切实可行的”方法。
水晶项目管理体系将团队导向7个安全体系特征。其中,前3个是水晶项目管理体系的核心。其余4个可以任意顺利添加入内以提高安全限度。这些体系特征包括:
1.经常交付。
2.反思改进。
3.渗透式交流。
4.个人安全(信任的第一步)
5.焦点
6.易于与专家用户取得联系。
7.配有自动测试、配置管理和经常集成功能的技术环境。
水晶项目管理体系可适用于成员人数在2~8个、共处一室或处于相邻办公室内的团队。
水晶项目管理体系与极限编程(XP)有一些共同的特征,但一般来说它不如后者要求严格。您可以把它看作是较为松散的替代方法,是极限编程方法无效时的后备方法,又或是在应用极限编程前获取一些敏捷做法的跳板。
他们总是尽可能仅用2~4个成员来开发某个项目,这样团队内部就可以协作轻松自如。如果团队需要6个以上的成员人数,那么就意味着他们没有正确限定项目范围。
团队中总有一个经验丰富的成员,通常也只会有一个新手。如果团队中有两名新手,则说明团队领导人必须是一名经验特别丰富且能力优秀者。
人们学习新技能通常要经历的三个不同阶段,即大家熟知的:模仿、分离和精通。
成功的团队都不约而同地使用各自的配置管理工具,而且把它看作是团队拥有的唯一最重要的工具。
他们执行清晰的产品所有权模式。明确哪些人对每个类别、模式或用例进行修改或者部分删除是非常重要的。
近来,改变编码的速度取决于是否拥有自动测试系统,而且越来越多的团队应用测试驱动开发以后做得更好了。
如果团队两个月交付一次则更能保证项目的安全进行。而利用网络进行配置的团队则应当每周交付一次。
每一次交付之后,我们都会聚到一起,讨论哪些工作没有起到作用,并想办法改进。
尽管两三名成员在毗邻工作室内工作的模式可以提供许多好处,但如果成员不在同一办公室内工作,则渗透式交流将难以实施。
建立信任就必须有曝光,以下是同软件开发相关的三种曝光:
1.曝光他人的疏忽。
2.曝光错误。
3.曝光某人在任务中某些方面无能为力的事实。
另一个项目领导告诉我他是如何通过让团队共同努力解决难题来建立团队凝聚力和安全感的:
首先,他们不会因为承认自己的无知而受到伤害,即使是在他们的专业领域方面。
其次,他们学会如何理解他人的行事方式并非挑衅,甚至是在激烈讨论的时候。
最后,他们意识到只有团结才能解决单凭个人力量不能解决的问题。
一些团队将上午10点到正午这段时间作为禁止会议、来电、软件演示干扰工作的时间段。
常用的与用户联系的3个方法:
1.每周或者每半周举行一次用户会议,另外还应当利用电话与用户保持联系。
2.团队自身拥有一个或一个以上富有经验的用户。
3.开发人员可以在一段时间内扮演实习用户的角色。
配置管理系统一直被团队认为是最重要的非编译工具(Noncompiler tool)。
自动图形用户界面引导系统测试(automated GUI-driver system tests)并没有出现在被推荐表中,因为它们的自动操作相对昂贵,且一旦图形用户界面有任何改动就得重建一次测试系统。这种不便使得开发团队创建一个支持弱图形用户界面接收测试的系统结构显得更为重要。
编程员的单元测试需要在几秒钟内,而不是几分钟内执行完毕。
无论是httpUnit还是Ward Cunningham的FIT(集成试验框架――Framework for integrated test)对弱图形用户界面接受测试的建立都有帮助。前者是用来测试基于网络系统的超文本链接标示语言(html)流的。后者则允许商务专家在无需掌握编程技术的前提下,自己构建专属的测试系统。Robert Martin将FIT与Ward的Wiki技术结合起来创建了FITnesse。许多团队使用电子制表软件以便于商务专家轻松地利用设定的数据进行软件系统功能测试。
社会学家Karl Weick(1979)发现:一些小小的成功就能够帮助团队增加实力与自信。让人高兴的是,当团队急需这种力量时,我们能够在项目启动的初期帮助团队获得这种成功。
对于一个软件项目而言,编写出一组可运行、经测试的代码就是一种小小的胜利。
大多数项目存在7种循环:
1.项目周期。
2.交付周期。
3.迭代周期。
4.工作周。
5.集成周期。
6.工作日。
7.开发部曲(代码段的开发及测试)。
(收起)