《Rapid Development:Taming Wild Software Schedules》阅读(五)

本文介绍了《Rapid Development》一书中关于如何有效地管理软件项目进度的多种最佳实践,包括变更委员会、每日构建和冒烟测试、面向变更设计等。这些实践旨在降低项目风险,提高开发效率,并通过渐进交付、联合应用开发等方式增强进度可视化和控制。同时,文中还探讨了外包、限时开发等策略的风险和影响,以及如何通过如签约雇佣、工具组等方法来激励团队和提升生产力。
摘要由CSDN通过智能技术生成
第三部分 最佳实践
第十七章 变更委员会(change board)——项目中多部门一起工作,多项目中的变更进行批准或拒绝
1、主要效果:降低项目进度风险!—— 建议长期使用!
 
2、主要风险:批准的变更太多或太少;
 
3、相互影响:可以与其他实践方法自由结合使用;
 
第十八章 每日构建和冒烟测试(daily build and smoke test)——持续集成,提高开发效率
1、主要效果:降低项目进度风险!—— 建议长期使用!
 
2、主要风险:过于频发构建的压力;
 
3、相互影响:与 里程碑实践结合使用发挥最大效能;为 增量式开发提供支持;
 
第十九章 面向变更设计开发(designing for change)——基于变更设计的开发是快速软件开发的捷径
1、主要效果:降低项目进度风险!—— 建议长期使用!
 
2、主要风险:过于依赖编程语言而没有采用基于变更的设计;
 
3、相互影响:为 增量式开发提供支持;
 
第二十章 渐进交付(evolutionary delivery)——少量多次,频繁迭代地进行软件交付
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、目标偏移;
    b、减弱多项目的控制;
    c、对开发时间的低效率使用;
 
3、相互影响:
    a、从阶段交付和渐进原型中发展出来;
 
第二十一章 渐进原型(evolutionary prototyping)——原型设计的渐进交付
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、建立原型时间没有被充分利用;
    b、设计不佳;
    c、缺乏可维护性;
 
3、相互影响:
    a、渐进交付的基础;
 
第二十二章 设定目标(goal setting)——确定目标,然后实现目标!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、目标变化挫伤士气;
 
3、相互影响:
    a、有助于 签约、限时开发、自愿加班和激励员工
 
第二十三章 代码检查(inspection)——组织会议、划分角色、找出错误、提高开发速度!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、无;
 
3、相互影响:
    a、可与其他实践结合使用;
 
第二十四章 联合应用开发(joint application development)——用户、管理人员、开发人员通过异地、封闭、集中的会议澄清一些与系统有关的细节问题(侧重需求和计划),更关注商业问题而非技术问题!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、由JAD会议产生的不切实际的效率期望;
    b、有JAD会议产生的对剩余工作的不切实际的估计;
 
3、相互影响:
    a、可与增量式开发、原型工具结合使用;
 
第二十五章 生命周期模型的选择(life cycle model selection)
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、选择某一个生命周期模型本身没有风险,但是可能会有附带风险;
 
3、相互影响:
    a、无;
 
第二十六章 测量(measurement)——制定测量计划,保证项目质量!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、对某一个测量计划过度优化;
    b、对员工评估中误用测量方法;
    c、从代码行测量中获得错误误导信息;
 
3、相互影响:
    a、为改善项目预算、制定进度计划、评估生产工具和评估编程时间提供了基础;
 
第二十七章 小型里程碑(miniature milestones)——便于进行项目控制和跟踪,很好地提供项目状态的可视性。
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、无;
 
3、相互影响:
    a、特别适合 项目恢复
    b、与每日构建和蔓延测试结合使用特别有效;
    c、增加项目跟踪工作量换来良好的可视性和控制性;
 
第二十八章 外包(outsourcing)——软件开发承包给第三方公司!
1、主要效果:
    a、 增大了项目风险!——慎重使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、失去对开发的控制;
    b、丢失进度可视性和对进度的控制;
 
3、相互影响:
    a、以丢失进度和失去对开发的控制换来降低成本和提高开发速度;
 
第二十九章 原则性谈判(principaled negotiation)——一种基于改善沟通和创造双赢的策略!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、无;
 
3、相互影响:
    a、无;
 
第三十章 高效开发环境(productivity environments)——软件开发是高智力活动,必须保证环境的适宜性!
1、主要效果:
    a、对 目标进度风险没有影响!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、以装饰为目标的办公环境会导致生产率下降;
    b、搬迁造成停工;
    c、由于开发人员的待遇提高造成各种反应;
 
3、相互影响:
    a、小成本增加带来生产率提高;
 
第三十一章 快速开发语言(rapid development languages)——采用比第三代开发语言(C/c++、pascal)更高的语言减少开发工作时间!
1、主要效果:
    a、 增加了项目进度风险!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、带来银弹错误(太过信赖新技术)和过高估计节省的时间;
    b、不能扩展到大型项目;
    c、会造成鲁莽编程;
 
3、相互影响:
    a、用降低设计和实施过程的灵活性来换取实施时间的缩短;
   
第三十二章 需求修正(requirements scrubbing)——删除不必要的需求!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、删除不必要的需求;
 
3、相互影响:
    a、无;
 
第三十三章 代码复用(reuse)——公司构建常用部件库,使得新程序能够直接使用,提高开发效率!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、不仔细挑选要重用的部件,会造成资源的浪费;
 
3、相互影响:
    a、重用需要和生产工具相协调;
    b、有计划的重用必须遵守软件开发的基本规则;
 
第三十四章 签约雇佣(signing up)——同候选小组签订约定,激励小组成员投入更大的时间和精力!
1、主要效果:
    a、 增加项目进度风险!—— 建议慎重使用!
    b、缩短原定进度压力!
 
2、主要风险:
    a、增加无效性;
    b、降低对状况的可见性与控制能力;
    c、个人潜能发挥的比较少;
    d、撕毁约定。
 
3、相互影响:
    a、削弱了项目的可视性、控制以及效率换来对雇员的激励;
 
第三十五章 螺旋形生命周期(spiral life cycle model)——经典的生命周期模型,重点能够发现和降低风险!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、无;
 
3、相互影响:
    a、用增加对计划的要求和实施的追踪,换来进度可视性的改善和大幅度降低风险;
 
第三十六章 阶段交付(staged delivery)——分阶段进行交付,以功能优先级来进行开发!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、目标偏移;
 
3、相互影响:
    a、利用小型里程碑,规划每个阶段的交付;
    b、灵活性小于渐进交付和渐进原型;
    c、可作为渐进交付的基础,用增加计划时间的投入,换取进展的可视性。
 
第三十七章 W-理论管理(theory-W management)——W理论提供了一种平衡项目各方利益的管理框架!
详细参考《W理论软件项目管理:原则与实例》
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、无;
 
3、相互影响:
    a、与螺旋生命周期模型协调;
    b、在协商时效果显著;
    c、取决于对原则性讨论方法的使用;
 
第三十九章 舍弃型原型法(throwaway prototyping)——一些代码生来就是为了舍弃的!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、保留一个舍弃型的原型;
    b、没有有效利用建立原型的时间;
    c、不现实的进度和预算;
 
 
3、相互影响:
    a、无;
 
第四十章 限时开发(timebox development)——限定时间内完成任务!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、将限时开发应用于不适宜的工作产品中;
    b、为了保持特性的数量而不顾质量;
 
3、相互影响:
    a、依赖于渐进原型的使用;
    b、通常在JAD项目中与JAD、CASE工具及渐进原型共同使用;
 
第四十二章 工具组(tools group)——建立经典工具集合,事半功倍!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、无;
 
3、相互影响:
    a、无;
 
第四十一章 十大风险清单(top 10 risks list)——列出风险清单,逐个避免!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、无;
 
3、相互影响:
    a、无;
 
第四十二章 构建用户接口原型(user-interface prototyping)——快速开发用户接口来探究用户接口的设计和系统需求!
1、主要效果:
    a、降低项目进度风险!—— 建议长期使用!
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、不断装饰原型;
 
3、相互影响:
    a、从发展的原型和舍弃的原型得出结论;
 
第四十三章 自愿加班(voluntary overtime)——额外的工作时间直接提高了生产力!
1、主要效果:
    a、 增加项目进度风险!—— 建议慎重使用!    
    b、改善进度可视化!
    c、缩短原定进度压力!
 
2、主要风险:
    a、过度的压力和过度的加班影响进度;
    b、降低了响应紧急需求紧急加班的应变能力;
 
3、相互影响:
    a、需要采用具有人情味的和非强迫性的激励办法;
    b、通常支持小型里程碑、渐进生命模型、限时开发等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值