这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10863 |
团队名称 | 拿奖不排队 |
这个作业的目标 | 事后诸葛亮 |
作业正文 | 如下 |
其他参考文献 | https://www.baidu.com |
一、设想和目标
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
- 我们的软件是一个学校重修系统
- 定义得很清楚,解决学校此方面的所有需求
- 对典型的用户和场景都做了清晰的研究和描述
2. 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?
- 原计划功能前端部分完全实现,后端与财务对接的excel文件解析未完成,总完成度达到百分之九十以上
- 当前版本已在原计划期限内交付
- 计划用户数量未达到
3. 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
- 团队软件工程的质量有些许提高
- 在明确分工和职责方面有所提高,团队成员之间的协作更加的高效与灵活
- 具体提升在百分之十五左右
- 以组员提交任务所需时间和任务完成度为标准衡量。
4. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
- 用户量与设想不一致
- 用户对重要功能的接受程度与设想略有差距
- 在完成度上看,我们离目标更近了
5. 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
- 在选择冲刺时间段的时候应该考虑更多的因素,比如环境因素,很多因素会对冲刺中的团队造成严重的影响
- 如果历史重来,我会考虑多种因素,选择规划一个更好的冲刺时间,让我们团队的冲刺阶段更为顺利
二、计划
1. 是否有充足的时间来做计划?
- 有充足的时间来做计划
2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
- 当你提出不同意见时,必须同时言明其中的利害关系,产品经理对这些意见进行归纳,在会议中进行讨论,最后选择是否采纳。
3. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
- 完成了大部分
- 文件上传解析部分由于和财务部门无法协调没有完成
4. 有没有发现你做了一些事后看来没必要或没多大价值的事?
- 比如:想用对每一行都有通过2个按钮对输入框进行禁用和使用来更改数据,结果不好提交表单,还不如使用对话框来提交表单。
前面的方法感觉更加麻烦,还得去学习怎么修改一行提交一次一行的表单还是整个表的表单
5. 是否每一项任务都有清楚定义和衡量的交付件?
- 是
6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
- 项目基本按计划进行,只有在冲刺阶段时进行了期末考试,时间上造成了冲突
- 在冲刺阶段时进行了期末考试没有估计到
- 无法预估学校的行为
7. 在计划中有没有留下缓冲区,缓冲区有作用么?
- 在计划时留下了缓冲区
- 以缓冲区来预防没有预料到的风险
8. 将来的计划会做什么修改?
- 考虑更多的综合因素
三、资源
1. 我们有足够的资源来完成各项任务么?
- 基本资源足够,缺少学校财务接口
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
- 根据网络上查询到的数据以及项目经验估计,精度一般
3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
- 时间不足够,其余资源基本足够
- 对界面设计的难度有所低估
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
- 工作的分配上确实有些不足,若能更好的分配工作确实会提升不少效率
5. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
- 需要更加合理的分配人力资源,同时选择正确的人员和时间
四、变更管理
1. 每个相关的员工都及时知道了变更的消息?
- 在QQ群进行通知,基本都能及时收到
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
- 头脑风暴每一项功能的利害关系,最后由产品经理总结得出每个功能的权重
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
- 有,在需求说明书中有详细的验收验证标准
4. 对于可能的变更是否能制定应急计划?
- 能
5. 员工是否能够有效地处理意料之外的工作请求?
- 百分之五十的组员可以做到
6. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
- 提升组员的响应速度至关重要
五、设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
- 设计工作由马永康同学完成
- 是合适的时间,合适的人
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
- 有
- 由负责人收集意见并进行决断
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
- 已经用到了UML,计划后续测试使用unit test
- 和刚开始的UML文档相比,现在的UML文档表述更加清晰,各种关系更加明确
- 在讨论后对UML文档进行了优化
4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
- 没有严重bug
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
- 代码复审使用了IDEA自带的代码审查工具
- 代码严格遵守了代码规范
6. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
- 在项目进行过一个阶段后应该及时复查项目,有利于对项目各方面的优化
六、测试/发布
1. 团队是否有一个测试计划?为什么没有?
- 有
2. 是否进行了正式的验收测试?
- 没有
3. 团队是否有测试工具来帮助测试?
- 有,计划使用IDEA自带测试工具
4. 团队是如何测量并跟踪软件的效能(Performance)的?压力测试(Stress Test)呢? 从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
- 暂未进行测试,因为有一项关键功能未能实现
5. 在发布的过程中发现了哪些意外问题?
- 暂未进行正式发布,仅限于在局域网内进行浏览器访问
6. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
- 我们会对测试这一部分更加重视
七 、团队的角色,管理,合作
1. 团队的每个角色是如何确定的,是不是人尽其才?
- 通过自身所具备的技能来确定角色
- 人尽其用
2. 团队成员之间有互相帮助么?
- 有
3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
- 通过会议协商解决问题
4. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
- 我们学会了团队合作的重要性
- 如果重来,我们会做到更加详细的团队分工
八、总结
1. 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
- CMMI一级
2. 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
- 萌芽
3. 你觉得团队在这个里程碑相比前一个里程碑有什么改进?
- 团队协作更加的高效灵活了
4. 你觉得目前最需要改进的一个方面是什么?
- 团队的分工不够明确
5. 对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。
- 面对面交流,传递信息
- 团队每天都会面对面讨论项目
九、团队照片
- 因放假暂无全组员合体照