团队作业6——事后分析

作业要求

这个作业要求在哪里 团队作业2-《需求规格说明书》
这个作业属于哪个课程 软件工程
这个作业的目标 事后分析

分析

设想和目标

1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述
根据在线购物实际业务开发,满足广大WEB用户的需求,为买家用户带来便捷;同时此系统可为众多大型电脑销售商提供线上销售平台,扩大销售人群范围,打造电商销售模式。典型用户和典型场景在之前的博客中已清晰提及。
2. 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?
原计划中的功能我们均已实现,并按交付时间交付了,但对于原计划中的用户数量,后续的用户数量需要在平台更加成熟以及推广之后才能达到预期。
3.和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
在本次项目中,我们都在深入体会作为一个团队开发项目的整个流程,也在努力进行沟通,分析软件的用户需求,不断进行改进;我们的分工也从一开始的交叉进行逐步走向合理,大大提高了我们团队的工作效率,使得我们的软件成品逐步成型并走向成熟。
4.用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
经过我们的测试,用户对重要功能的接受程度较高,虽然还没有达到我们原先的预想,但非常接近了。

计划

1.是否有充足的时间来做计划?
有。
2.团队在计划阶段是如何解决同事们对于计划的不同意见的?
大家积极讨论并沟通,最终由项目经理定夺。
3.你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
做完了。
4.有没有发现你做了一些事后看来没必要或没多大价值的事?
有的,当发现一些功能对于用户来说,用户使用度几乎为0,我们经过讨论后决定删除这些功能。
5.是否每一项任务都有清楚定义和衡量的交付件?
是。
6.是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
项目整个过程基本都按照计划进行,但一个阶段项目出现问题,我们也会按照计划进行下去,并在这个过程修复原先的问题,这样才能不耽误交付的时间。
7.在计划中有没有留下缓冲区,缓冲区有作用么?
有。在缓冲区,我们会再次对项目项目进行全方位的测试,以防项目出现原先我们没有预估到的bug。
8.将来的计划会做什么修改?
跟进项目的运用情况,分析各个功能的应用情况。
9.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
我们深入了解并体会了一整个软件开发的流程,作为一个团队,我们感受到及时的沟通非常重要,如果历史重来一遍,我们会更深入去调查用户的需求,形成更加完整的需求分析。

设计/实现

1.设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工具由项目经理完成。
2.设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有,对于一些观点,难免会出现摸棱两可的情况,大家通过积极的讨论后,最后是由项目经理来定夺。
3.团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
是的。我们在后端代码中使用单元测试来确保服务可以正常运行。而UML则贯穿了整个项目的开发过程,从项目流程设计到函数设计等等,这些工具无疑都是可以帮助我们进行高效开发的。项目开始时候的UML文档还很单薄,但是在项目已经截止的现在,我们已经积累了很多的UML流程图。
4.什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
每个模块均有最复杂的部分,这个部分往往bug最多,发布之后的bug最主要还是用户访问量过大,导致服务器崩溃。
5.代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
代码复审首先是经过代码编写者自己的审查,没有问题将提交到master分支,最后由主要负责人检查代码并进行合并。

测试/发布

1.团队是否有一个测试计划?为什么没有?
有,我们全员开发者在开发过程中有对代码进行单元测试与集成测试。
2.是否进行了正式的验收测试?
是。
3.团队是否有测试工具来帮助测试?
有。
4.团队是如何测量并跟踪软件的效能(Performance)的?压力测试(Stress Test)呢? 从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
我们使用chrome的lighthouse来对web页面进行性能测试等,使用unittest、pytest等工具对python代码进行单元测试、集成测试,使用 对服务端接口进行测试 ,这些测试工作都是有用的,它使我们的项目更加安全。
5.在发布的过程中发现了哪些意外问题?
发布之后用户访问量过大时无法访问。

团队的角色、管理、合作

1.团队的每个角色是如何确定的,是不是人尽其才?
根据每个人的特长去分配任务。
2.团队成员之间有互相帮助么?
有。
3.当出现项目管理、合作方面的问题时,团队成员如何解决问题?
及时沟通,探讨解决方案。

总结

团队状态

1.你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
可重复级。
2.你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
规范期。
3.你觉得团队在这个里程碑相比前一个里程碑有什么改进?
我们的默契大大提升,效率提高。
4.你觉得目前最需要改进的一个方面是什么?
​我们的技术仍需提高。
5.对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。
第一条原则:通过不断测试交付有价值的软件使用户满意,能够根据用户的反馈和需求进行调整和优化,提高了软件的价值和质量。

软件工程质量

正如我们前面提到的, 软件的质量 = 程序的质量 + 软件工程的质量,那团队在下一阶段应该如何提高软件工程的质量呢?
1.代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
我们为我们编写代码的软件均安装了阿里巴巴代码规范的插件,在编写过程中,就严格遵守编写规范进行书写代码。
2.整个程序的架构如何具体提高? 如何通过重构等方法提高质量,如何衡量质量的提高?
我们需要有一个更大的目标,在此目标的基础上对架构进行升级,重构也是一样的道理,但是重构可以发生在我们每一次的开发过程中,对一些不合理的地方进行小重构。
3.其它软件工具的应用,应该如何提高?
请教同行的师兄师姐比较快捷高效。
4.项目管理有哪些具体的提高?
我们学会了通过azure进行任务的分发、项目的管理以及项目的持续构建。
5.项目跟踪用户数据方面,计划要提高什么地方?例如你们是如何知道每日/周活跃用户等数据的?
通过一些专门的软件进行监测。
6.项目文档的质量如何提高?
及时产出接口文档、设计文档、使用说明书等。
7.对于人的领导和管理, 有什么具体可以改进的地方?
制定明确的会议目的、议程和时间,确保会议的有效沟通和决策;
使用合适的工具和方法来估算项目的工作量、成本和时间,考虑项目的复杂性、不确定性和风险。

讨论照片

成员角色和具体贡献

姓名 角色 贡献分
唐梦思 后端开发、项目构建 51
王文俊 代码测试、后端开发 51
郑耿杭 项目经理、项目构建 49.5
梁鸿俊 前端开发、代码测试 49.5
posted @ 2023-12-12 22:17  tmssss  阅读(10)  评论(0编辑  收藏  举报