设想和目标
-
我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们是要做一个基于文件同步展示的语音软件;感谢之前的两次项目审核,我们定义与描述得很清楚; -
我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
有三个计划内的事情没有完成:文件转换、权限转移和生成文件记录;
-
是否有充足的时间来做计划?
有! -
团队在计划阶段是如何解决同事们对于计划的不同意见的?
以理服人; -
你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
没有做完,因为时间有限精力有限,实现遇到到了困难; -
有没有发现你做了一些事后看来没必要或没多大价值的事?
没有 -
是否每一项任务都有清楚定义和衡量的交付件?
不是。仅验收有一个标准文件,以及界面设计可以参考的原型; -
是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
十日冲刺不如计划里那样井井有条,遇到了考试; -
在计划中有没有留下缓冲区,缓冲区有作用么?
没有缓冲区,一直在冲刺; -
将来的计划会做什么修改?(例如:缓冲区的定义,加班)
要在贝塔阶段做自动化测试,要把努力开始工作的时间提前,均衡地完成任务。
资源
-
我们有足够的资源来完成各项任务么?
时间资源不够! -
各项任务所需的时间和其他资源是如何估计的,精度如何?
时间资源规划时的粒度很大,对于每项工作我们没有设定严格的DEADLINE,整个开发比较松散,而这难以避免; -
测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
我们只有一个人在自动化测试,时间很有限,做的内容也不多;
整个前端开发都涉及美工,我们做得不够好,但是一直都知道难度大,亲自体会后,它大的程度又增大了一些; -
你有没有感到你做的事情可以让别人来做(更有效率)?
我们组内的任务分配非常灵活,尽力让每个人都发挥最大的效益;
变更管理
-
每个相关的员工都及时知道了变更的消息?
在群内可以很方便地交流;但这种交流不如面对面来得有效,然而我们能够面对面的时间并不多; -
我们采用了什么办法决定“推迟”和“必须实现”的功能?
我们的软件核心模块非常突出,核心模块的核心功能也非常突出,由此决定必须实现;其余的都可以推迟; -
项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
没有! -
对于可能的变更是否能制定应急计划?
没有! -
员工是否能够有效地处理意料之外的工作请求?
可以!普遍接受新的任务时没有怨言;
设计/实现
-
设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
项目设计在之前的两次审核中已经做好,具体的实现设计由其负责人负责; -
设计工作有没有碰到模棱两可的情况,团队是如何解决的?
没有 -
什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
房间部分的逻辑比较复杂,仅凭思考设计不够;在实践中才发现之前的错误,这算探索!
画笔的位置相对文件在传输后变化,没有考虑适配的问题 -
代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
没有代码复审
测试/发布
-
团队是否有一个测试计划?为什么没有?
没有,因为时间不够,我们也没有足够重视 -
是否进行了正式的验收测试?
没有 -
团队是否有测试工具来帮助测试?
没有
团队的角色,管理,合作
-
团队的每个角色是如何确定的,是不是人尽其才?
依照大致能力分配的 -
团队成员之间有互相帮助么?
有,非常多 -
当出现项目管理、合作方面的问题时,团队成员如何解决问题?
很小的问题,几乎没有,在交流之中就可以解决;
总结
1.你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
一级
2.你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
磨合
3.你觉得目前最需要改进的一个方面是什么?
时间规划(最难改)