快速软件开发——项目修复(笔记)
来源:互联网 发布:贵阳大数据就是吹牛 编辑:程序博客网 时间:2024/05/02 05:04
陷入麻烦的项目的一些特征
- 没有人对项目何时结束有一点点概念,而且绝大多数人连猜测的欲望都没了。
- 产品满目疮痍。
- 开发组人员工作超时,每周多余60多个小时——或者是在非自愿的情况下,或者是同事间引发的压力下。
- 管理者已经无法控制进度,甚至无法准确评估项目的状态。
- 客户对开发组能否交付承诺过的软件不再抱有信心。
- 开发组对项目进度采取了守势。如果组外的任何一个人向他们指出项目有麻烦时,开发组就感到了威胁的压力。
- 开发人员、市场人员、管理人员、质量保证小组及客户之间的关系非常紧张。
- 项目正处于被取消的边缘,客户和管理层正在考虑这个问题。
- 开发组的士气极度低落,开发的乐趣荡然无存,剩下的只是严肃和沉重。
理念
想修复项目,必须在获取项目的“控制权”的前提下,同时着手于人员、过程和产品。根据项目情况,果断采取措施,小修小补只会影响团队士气。
人员
- 采取一切措施恢复开发者士气,采取一些象征性的行动以表明你把开发人员放在首位。
- 消除重大的人员问题,处理影响员工士气的人员。
- 消除重大的领导问题,处理好行政方面的事情,可以给经理配备助手。
- 尽量不要添加新手。
- 充分利用开发人员的时间,帮他们排除环境干扰,避免无关紧要的工作,并减少私人的停工时间。
- 允许开发人员的不同处事、工作风格,但不容忍高声斥责英雄式开发人员想出风头的英雄否定者,不允许破坏团队士气的人。
- 观察开发人员的开发节奏,给开发人员时间来考虑质量,进度其实会自然而然地加快。
过程
- 识别并改正典型错误。
- 修正明显支离破碎的开发过程,找到出问题的“根本”原因,并解决。
- 创建详细的小型里程碑。里程碑必须具有小型性:必须在1~2天内完成;二元性:要么完成,要么没完成,不存在完成90%的情况;彻底性:最后一个里程碑完成,意味着项目也就结束。
- 依据里程碑的完成来安排进度,当前的里程碑当天完成,没完成可适当加班完成,已完成可提早下班回家。在安排里程碑的进度时,不要把开发人员的加班时间计算在内,那样只会自食恶果。
- 细致地跟踪进度进展状况,确保已完成的里程碑是确实“100%”完成。保证小型里程碑在进度上偏离正轨。
- 记录里程碑未完成的原因,可以发现一些潜在的原因。
- 在一个短的时间以后再调整——1周或2周。如果开发人员总是比计划的里程碑慢半天,那便需要校正开发人员的开发进度。如果开发人员需要7天完成计划4天的工作,那就把余下的工作量乘以7/4。不要想以后把时间补回来,你肯定补不回来!
- 在你得出一个有把握的进度前不要对一个新的进度计划做承诺!
- 进行风险管理要不辞辛苦。每天进行风险例会,发现的问题要做出及时的决策。
产品
- 稳定需求。确认可接受需求集,并禁止接受过高的变更。
- 修正特征集。删除掉优先级较低的性能,定义一个最小的功能集。可以把优先级低的功能放在以后的版本中。
- 评估你的政治地位。设法排查政治上对项目造成的干扰。
- 去除没用的垃圾。找出产品中资料极低的那些部分,不要可惜,立刻删除重新设计。不然项目会被这些东西一点一点磨死。
- 降低缺陷数据,并要持续降低。
- 达到一个可知的良好状态,并在此基础上继续。使产品始终处于可构建和可测试的状态。
找准时机
启动项目修复计划的最佳时机,可能不是你第一次意识到你的项目陷入麻烦之时。你必须确信你的管理者与开发组都已准备好接受这个消息,而且做好了修复项目的准备。你要抓住展示出修复计划的时机,避免“狼来了”情况的发生。
总结
接手修复一个支离破碎的软件开发项目的确是一个挑战。
- 修复工作不是靠加班加点来实现的,而是通过鼓舞士气来加速的;
- 把需求搞稳定是修复的先决条件,如果需求还在变化,修复是不可能实现的;
- 根据需求进行详细规划,得出一个现实的进度计划,任何冒险的计划都会导致修复的失败;
- 采用小型里程碑技术有效跟踪计划,使其不偏离轨道,是修复实现的保证。
0 0
- 快速软件开发——项目修复(笔记)
- 快速软件开发——快速开发策略(笔记)
- 谈软件项目快速开发方法——敏捷开发
- 快速开发:功能限定与项目修复
- 快速软件开发——经典错误(笔记)
- 快速软件开发——软件开发基本原则
- 谈软件开发项目快速编写Project进度计划—2012年CMMI5试点
- 快速软件开发 学习笔记 之六
- 软件开发方法——快速原型模型
- 4566 开发笔记(2)修复快速重复点击 NavigationItem 导致的导航栈错乱问题
- 软件项目管理系统-项目管理-模块定义-开发笔记
- 【实战\Java SSM快速开发仿慕课网在线教育平台项目笔记】第1章 课程项目整体概述(整体介绍及Eclipse,Maven,新浪SAE软件平台介绍)
- 软件的快速开发
- 《快速软件开发》概要
- Eclipse插件开发Java快速修复
- WinForm版软件快速开发工具平台,生成B/S软件项目
- 三维软件开发笔记---项目数据管理升级+坐标轴简单标注
- 对日软件开发与外包——-项目管理
- svn 文件夹里面的文件没有绿勾
- Android 系统的自启动原理
- 非线性方程(组)的求解
- leetcode 409. Longest Palindrome
- NS3学习资料
- 快速软件开发——项目修复(笔记)
- 外观模式(Pacade Pattern)
- CXF系列之JAX-WS:SOAP服务
- do{...}while(0)的意义和用法
- 手机端:关于时间控件(type="date/time/week等")的默认提示
- gstreamer学习笔记:通过gst-launch工具抓取播放的音频数据并通过upd传输
- phpstorm10.0.3破解版安装教程及汉化方法
- 抽象数据类型之表(List)
- Remove Linked List Elements ---LeetCode