团队作业6——事后诸葛亮分析报告(Vitamin C)

张琳英 2022-11-30 23:56:45

目录

目录

  • 目录
  • 作业详情
  • 一、设想与目标
  • 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
  • 1.2 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
  • 1.3 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
  • 1.4 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
  • 1.5 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
  • 二、计划
  • 2.1 是否有充足的时间来做计划?
  • 2.2 团队在计划阶段是如何解决成员对于计划的不同意见的?
  • 2.3 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
  • 2.4 有没有发现你做了一些事后看来没必要或没多大价值的事?
  • 2.5 是否每一项任务都有清楚定义和衡量的交付件?
  • 2.6 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
  • 2.7 在计划中有没有留下缓冲区,缓冲区有作用么?
  • 2.8 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
  • 三、资源
  • 3.1 我们有足够的资源来完成各项任务么?
  • 3.2 各项任务所需的时间和其他资源是如何估计的,精度如何?
  • 3.3 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
  • 3.4 你有没有感到你做的事情可以让别人来做(更有效率)?
  • 3.5 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
  • 四、变更管理
  • 4.1 每个相关的员工都及时知道了变更的消息?
  • 4.2 我们采用了什么办法决定“推迟”和“必须实现”的功能?
  • 4.3 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
  • 4.4 对于可能的变更是否能制定应急计划?
  • 4.5 员工是否能够有效地处理意料之外的工作请求?
  • 五、设计/实现
  • 5.1 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
  • 5.2 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
  • 5.3 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
  • 六、测试/发布
  • 6.1 团队是否有一个测试计划?为什么没有?
  • 6.2 是否进行了正式的验收测试?
  • 6.3 团队是否有测试工具来帮助测试?
  • 6.4 在发布的过程中发现了哪些意外问题?
  • 6.5 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
  • 七、总结
  • 7.1 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
  • 7.2 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
  • 7.3 你觉得团队在这个里程碑相比前一个里程碑有什么改进?
  • 7.4 你觉得目前最需要改进的一个方面是什么?
  • 八、讨论照片
  • 九、团队成员在Alpha阶段的角色和具体贡献

作业详情

作业所属课程软件工程
作业要求团队作业6——复审与事后分析
作业目标Alpha阶段项目复审(单独一篇博客)、事后诸葛亮分析报告(单独一篇博客)

一、设想与目标

1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

A: 我们要解决的问题是要让我们的目标用户:学生和教师使用该软件时能尽可能的简单而又清晰,无论是学生测试单词拼写还是教师查询成绩。定义得很清楚。对典型用户和典型场景有清晰的描写

1.2 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)

A:部分目标未能实现,如当以老师身份登录后,可以给其所管理的班级布置作业的功能。基本功能都以实现并按时交付了。原计划达到的用户数量也达到了。

1.3 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?

A: 和上一个阶段相比提高了。在代码的后期扩展性和维护性提高了不少,代码结构清晰明确,便于以后增加功能或修改

1.4 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?

A: 基本一致,用户对核心功能基本满意,离最终目标更进一步

1.5 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?

A: 时间安排不够合理,预期与现实实际相差较大,未考虑技术基础,计划赶不上变化;如果历史重来一遍,前端方面可以做的更好。

二、计划

2.1 是否有充足的时间来做计划?

A:在时间上是比较充足,但是每名队员都有自己的学习规划,因此需要先进行队员讨论和分工。

2.2 团队在计划阶段是如何解决成员对于计划的不同意见的?

A:通过开展团队会议,就不同意见的讨论、分析,最后达成共识。

2.3 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?

A: 原计划工作大部分已经完成,但仍有一小部分功能没有完善好,原因是队员们对于相关页面渲染技术涉猎较浅,经验不足。

2.4 有没有发现你做了一些事后看来没必要或没多大价值的事?

A:没有,在项目开始前已经对要做的事情进行分析。

2.5 是否每一项任务都有清楚定义和衡量的交付件?

A: 是,基本都具有一定价值

2.6 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?

A: 基本按照计划进行,意外是在项目开发时会出现较多bug,需要队员间相互检查解决。没有预估到风险是由于缺乏项目经验以及对本团队开发人员的技术水平考虑不全。

2.7 在计划中有没有留下缓冲区,缓冲区有作用么?

A:有预留缓存区,缓冲区可以有效保证项目按期完成。

2.8 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

A:我们学到了相关的编程经验和相关文档编写能力,学到了团队合作、制定计划的相关知识。
改进:针对出现的问题需要队员间调用积极发言。

三、资源

3.1 我们有足够的资源来完成各项任务么?

A: 项目的各项任务基本已经完成,在项目开发过程中队长提供了项目的初始命令行版本(用C++编写),利用已有资源和队员们的编程能力和文档归纳编写,我们基本完成各项任务。

3.2 各项任务所需的时间和其他资源是如何估计的,精度如何?

A:主要是根据任务的难易程度,所实现功能的复杂度来分配时间,精度一般。

3.3 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?

A:对于测试的资源,人力/软件/硬件资源足够,对于不需要编程的资源,没有低估其难度,对于存在的疑问队员讨论加以解决。

3.4 你有没有感到你做的事情可以让别人来做(更有效率)?

A:有,因为队员的技术栈可能并不相同,所学技术的应用实践能力强弱不同,因此,需要团队在计划任务分工时一定程度地考虑了队员技术栈、时间等相关因素。

3.5 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?

A:首先,在项目开始之前可以提前了解各位队员之后的时间安排以及所学技术,以便于后面进行更好的分工合作;其次,对于在项目开发过程中所出现的问题,队员间讨论难以解决,应当主动请教周围老师和同学,提高自己的学习和开发效率。

四、变更管理

4.1 每个相关的员工都及时知道了变更的消息?

A:每个成员都及时了解到项目的进展和、变更及阶段效果。

4.2 我们采用了什么办法决定“推迟”和“必须实现”的功能?

A:我们采用面对面开会及微信群讨论的方式决定,由于我们的项目是智贤同学高中时期自己的项目,功能上已有一些计划与部分实现雏形,所以基本经过开会及讨论可以确定往后的大概项目进程。

4.3 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?

A: 当改程序可以完成所有功能完善及测试即“做好了”。

4.4 对于可能的变更是否能制定应急计划?

A:事先有对一些较为复杂的功能有计划,比如单词测验和成绩那块有些字段是可能需要,后续经过开发对其进行了优化。

4.5 员工是否能够有效地处理意料之外的工作请求?

A:都可以,大家相互帮忙,不懂的地方都积极提问讨论,经过讨论及资料查阅,很快可以化解问题。

五、设计/实现

5.1 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?

A:设计工作是在第一次集体会议的时候大家集体决定的。是在空闲时间 对某些技术比较熟悉的人完成相应模块。

5.2 设计工作有没有碰到模棱两可的情况,团队是如何解决的?

A:有,把问题在集体会议中提出来,一起讨论应该怎么解决,最后确定方向。

5.3 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?

A:单词测试功能BUG最多,因为当时设计的时候不够细心。发布之后没有暂时发现重要的BUG。

六、测试/发布

6.1 团队是否有一个测试计划?为什么没有?

A:有,在项目安排里就有测试计划,这样子才能让项目更加完整。

6.2 是否进行了正式的验收测试?

A:对几个主流的浏览器进行了各个功能的验收测试

6.3 团队是否有测试工具来帮助测试?

A:有

6.4 在发布的过程中发现了哪些意外问题?

A:没有。

6.5 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

A:测试对于一个项目产品来说格外重要,它能更好得展现出我们平时没有发现的bug,可以避免不好的用户体验以及用户隐私泄露等问题。以后可以采用测试工具帮助测试。

七、总结

7.1 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?

A:2级

7.2 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?

A:萌芽

7.3 你觉得团队在这个里程碑相比前一个里程碑有什么改进?

A:凝聚力更强了,大家之间的交流也更有效率了

7.4 你觉得目前最需要改进的一个方面是什么?

A:对未来功能的扩展以及HTML页面的设计

八、讨论照片

九、团队成员在Alpha阶段的角色和具体贡献

姓名(学号)角色贡献分可验证的贡献
林智贤(3120004933)后端开发20后端开发
林俊宇 (3119000392)后端开发20后端开发
马佳武 (3120002439)前端开发16博客编写、前端开发
何智勇 (3120005337)测试8测试
苏松炜 (3120005354)后端开发20后端开发
张琳英 (3220005324)博客编写8博客编写
孔家振 (3120005385)页面设计8博客编写
...全文
703 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
代码下载链接: https://pan.quark.cn/s/90052d681b2f 本书系统地阐述了利用C语言进行程序开发的各种方法与技巧,全书总共分为十二个章节,涵盖了从基础到高级的多个方面,包括但不限于基础知识、指针运用、数据结构、算法设计、数学运算、文件处理、库函数应用、图形图像生成、系统调用、加密与安全机制、游戏开发以及综合案例等。整个书籍精心设计了三百个实例,每个实例都着重展示了其在实际应用中的价值。本书既适合作为C语言编程的入门教材供初学者研习,也能够为程序开发者、相关专业培训机构的教师和学生提供参考和借鉴。第一章聚焦于基础知识,详细介绍了进制转换、条件判断、多重循环图形打印、循环的数学应用、数组操作、字符与字符串处理、函数使用、趣味计算、宏定义与位运算等内容。第二章深入探讨了指针的相关知识,包括指针变量、指针与数组的关系、指针与函数的交互、字符串与指针的结合以及指向指针的指针运用。第三章着重于数据结构的学习,涵盖了结构体、链表、栈与队列、串与广义表、二叉树以及图及其应用等多个重要主题。第四章详细介绍了算法设计,涉及简单问题求解算法、排序算法、查找算法、数学定理与猜想以及逻辑推理与判断等内容。第五章围绕数学应用展开,讨论了素数问题、整数趣题、数学问题求解、矩阵运算以及生活中的数学实例。第六章专门讲解文件操作,包括了文件读写操作、文件内容处理、文件的创建与查找删除、以及文件相关操作等。第七章介绍了库函数的调用,涵盖了时间转换与操作函数、数学函数、字符串与字符函数以及其他各类函数的使用方法。第八章则聚焦于图形图像的处理,详细介绍了基本图形的绘制、色彩填充与使用技巧等。

203

社区成员

发帖
与我相关
我的任务
社区描述
高校教学社区
其他 高校 广东省·广州市
社区管理员
  • ryue.zh
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧