思考总结
设想和目标
1、我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们软件很明确的定义为,实现一个创新课程管理系统,开发出一个基础版本,供下一个项目组接手并投入实际使用。
典型用户:创新课程的系统管理员、学校管理员、教师、助教、学生。
典型场景:上软工导论课。
2、我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)?
第一次迭代开发目标完成。
3、用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
1)暂未投入使用,用户实际接受成度未知
2)暂时可以说离目标更近了
4、有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
项目看似简单,实则很复杂,且要求使用框架实现,需要学习更多东西,所以。。。如果上天给我再来一次的机会,我(不)会再选这个项目。。。
计划
1、是否有充足的时间来做计划
有很长一部分时间都在做计划、原型。但后来导师说要用框架,做的原型基本不能用,只能照着框架去加功能。
2、团队在计划阶段是如何解决同事们对于计划的不同意见的?
不同意见就讨论,虽然原型没什么太大用,但是至少把需求弄清楚了。
3、你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
没有全部做完
框架需要学的东西实在是很多,只能在第一次迭代中力所能及地实现能实现的功能。
4、有没有发现你做了一些事后看来没必要或没多大价值的事?
很多,比如提交开发的过程文档 写各种计划,还有过多的讨论。
我觉得我们应该把第一次迭代分两次迭代进行,加快第一次上手开发的时间。
5、是否每一项任务都有清楚定义和衡量的交付件?
并没有,每个功能在各自版本上实现了,就git到服务器上。
假如后面有BUG了,那就GG。
6、是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
基本没有按计划进行,一方面是因为我们组太纠结于原型需求,
另一方面因为导师要求用框架,导致后期交付的一周我们整个组的心态都是崩了的。
因为我们太天真可爱善良了,不懂人世间的黑暗艰难险恶。
7、在计划中有没有留下缓冲区,缓冲区有作用么?
在计划中没有留下缓冲区,导致开发后半段十分紧张。迭代开发验收的前两天,边老师突然在群里发了一份儿验收要求,仔细一看,我们组当时做的没有几条是符合要求的。于是我们赶紧加班加点按照老师 的要求各种改代码,找bug。这也给我们一个教训,不要正好卡在ddl完成项目,一定要留出充足的时间去应对各种突发情况。幸运的是,最终验收结果还算较为满意。
8、将来的计划会做什么修改?(例如:缓冲区的定义,加班)
硬着头皮往前冲!第一周就开始先在加功能的同时熟悉框架,第二周就突击剩下没有实现的功能,第三周就看看有什么BUG没。
9、我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
1、尽可能快的开始迭代开发,开发周期尽可能地压缩,把精力更多地放在开发上面。
2、应该一开始就集体集合开发,这样能提高整个组的效率。
资源
1、我们有足够的资源来完成各项任务么?
我们有足够的资源来完成各项任务。
2、各项任务所需的时间和其他资源是如何估计的,精度如何?
各项任务所需的时间和其他资源是通过其大致专业难度,听取老师意见决定的。
3、测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
对于那些不需要编程的资源 (美工设计/文案)没有低估难度。
4、你有没有感到你做的事情可以让别人来做(更有效率)?
我真的一点都不想做各种文档。。。感觉很打断我开发,各种占时间,浇灭我开发的热情。
5、有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
尽快的把要做的跟开发无关的工作做完,给开发流出足够多的整块的时间。
设计/实现
1、设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
因为之前大部分时间一直都在写各种各样的文档,所以我们的项目起步比较晚,真正意义上编写代码的时间只有不到两个礼拜。而且,我们当初把项目实现想得过于理想,导致后来时间有些不够用。
2、设计工作有没有碰到模棱两可的情况,团队是如何解决的?
设计工作碰到模棱两可的情况,团队举手表决。
3、比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
团队运用UML来帮助设计和实现。工具有效。 比较项目开始的 UML 文档和现在的状态,发现有些逻辑在实际实现中发生了改变。需要要更新 UML 文档。
4、什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
前端页面注册登录功能产生的Bug最多,因为在这个模块中需要反复测试各种错误提示。
5、代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
代码复审(Code Review)是小组间互相审查的,较为严格地执行了代码规范。
测试/发布
1、团队是否有一个测试计划?为什么没有?
只有简单的进行一些数据的测试。
2、是否进行了正式的验收测试?
进行了中期验收
3、团队是否有测试工具来帮助测试?
暂未考虑
4、团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
暂未考虑
5、我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
等我们有能力完成开发了再考虑测试吧。
团队的角色,管理,合作
1、团队的每个角色是如何确定的,是不是人尽其才?
团队的每个角色是通过表明自己所擅长或感兴趣的方面来确定的,大致做到了人尽其才。
2、团队成员之间有互相帮助么?
每次遇到问题时,团队成员之间能够做到互相帮助。
3、当出现项目管理、合作方面的问题时,团队成员如何解决问题?
当出现项目管理、合作方面的问题时,团队成员通过讨论开会达成一致。
但是有一点不是很适应,因为我们组并没有全员参与开发,其实老师有一些强制性的要求对我们组不是很公平,不过也好在我们组内5个人都比较有凝聚力,我相信大家迎难而上我们一定可以按期按量地完成任务。
总结
4、你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
属于CMMI一级,完成级
5、你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
规范
6、你觉得团队在这个里程碑相比前一个里程碑有什么改进?
更加有效率
7、你觉得目前最需要改进的一个方面是什么?
学习框架知识尽可能地多开发
总结: