[TOC] [本次项目的github地址](https://github.com/buaa-2016/phyweb) ##设想和目标
> **我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?**
  • 我们的软件主要是为了解决物理实验报告的生成以及数值的处理,后期还会有物理实验题库。我们的典型用户就是北航需要选修物理实验的学生。

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

  • 我们基本达到了目标,原计划就是在上一届的版本上继续开发,Alpha阶段主要就是复现上一届的工作,基本按照了原计划完工。但是由于这一届的学弟学妹没有物理实验,所以,原计划的用户数没有达到。

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

  • Alpha阶段主要是和上一届的代码相比吧,我们修复了很多bug,软件工程质量有一定提高。主要是实验报告生成那块,修复了原有的一些问题。

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

  • 用户量没有达到,用户对于重要功能的接受程度基本和我们事先的预想一致吧。我们离目标肯定肯定更近一步了。

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

  • 经验教训就是,没有事先调研这一届学生没有物理实验课程。如果重来的话,我们会事先调研好用户需求,再进行实际开发。

计划


> **是否有充足的时间来做计划? ** * 充足。

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

  • 通过协商讨论,各抒己见,PM从中调和,达成一致意见。

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

  • 做完了。

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

  • 没有。

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

  • 其实也没有很严格的标准,大部分时间就是交了就完事了。

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

  • 有一点意外,上一届代码遗留的一些问题不太好找,而且由于我们是重构,所以复现原功能遇到了一些小意外。因为当时不知道有这么多坑!

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

  • 有,主要是缓冲计划,不至于太赶。

将来的计划会做什么修改?

  • 对项目可能遭遇的风险进行提前评估,预留好缓冲区。

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

  • 就是要预估项目可能的风险,预留好缓冲区,提前做好用户调研。

资源


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

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

  • 主要是根据项目的难度以及组员对这个内容的熟悉程度,精度还可以。

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

  • 测试的时间,人力和软件/硬件资源是足够的。有部分美工确实挺难的,我们也没有低估。

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

  • 每个人都有自己的定位吧,所以可能有的同学对这块内容更加熟悉,效率肯定更高。但是每个人都有自己的分工吧,所以说这个真的没啥意义。让别人来做会不会更有效率,答案是会,但可不可以呢?答案是不可以!

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

  • 我们会分工更加合理。

变更管理


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

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

  • 例会讨论,分别发言,以理服人。

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

  • 功能完善,经过了测试,用户满意。

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

  • 能。

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

  • 分情况吧。时间空余就会处理,不空余就转到PM那进行统一调度。

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

  • 在最初始就确立一个明确的目标能有效地提高效率,如果再来一遍,我们应该会将目标定得更加详细些,减少变更带来的效率损失。

设计/实现


> **设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?** * 设计工作是在项目的起始阶段(第一周)由PM完成,PM是最了解需求的岗位,所以是合适的时间也是合适的人完成的。

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

  • 遇到过,比如网页的布局什么的,都是由负责的人互相协商解决的。

团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?

  • 我们运用了单元测试、gitlab代码管理、issue进度管理等工具,这些工具比较有效,我们没有UML文档。

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

  • 实验报告界面产生的bug最多,主要由于继承的第一版代码不全。发布之后发现java和latex在服务器中占据内存过大,服务器内存不够的情况。继承的代码不全是无法预料的,而内存不足则是没有考虑到服务器的配置问题。

代码复审(Code Review)是如何进行的,是否严格执行了代码规范?

  • 代码复审主要由顾展鹏和袁勤负责,还算严格,不过还有改进的空间。

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

  • 设计的越明确,越能减少推翻重来的可能性,也就越提高效率, 如果重来一遍,我们应该花更多的时间去设计。

测试/发布


> **团队是否有一个测试计划?为什么没有?** * 有。就是让我们每个组员模拟真实用户去试试水,其次要对这个代码进行单元测试,最后还要邀请其他组来进行互测。

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

  • 因为大家经验不是佷丰富,所以验收不是很正式。

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

  • 例如单元测试等。

团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?

  • 主要是测试这个请求响应的耗时,加载页面的速度,以及最后报告生成的准确度。这些工作都非常有必要,因为这都和用户体验息息相关,我们应该在细节上更加注意,精益求精。

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

  • IDEA上装的一些插件,部署到服务器时有一点小问题。

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

  • 测试应该更早地进行,需要留出更多的时间给缓冲。

团队的角色,管理,合作


> **团队的每个角色是如何确定的,是不是人尽其才?** * 主要是通过这个自愿报名,然后进行分工吧,人尽其才不好说,每个人做了自己想做的事情吧。

**团队成员之间有互相帮助么? **

  • 有的,我们有问题会及时在微信群及时交流。

当出现项目管理、合作方面的问题时,团队成员如何解决问题?

  • 主要是在群里讨论,以理服人。

总结:


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

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

  • 没有。

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

  • 技术学习,提高大家积极性。

**对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。 **

  • 无论团队内外,面对面的交流始终是最有效的沟通方式。比如说,我们有问题都放到每日例会上来讨论,及时把问题沟通清楚。
  • 敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势。比如说,我们经常讨论如何让我们的这个物理实验网站变得更加有吸引力,应该向哪些方面扩展。

正如我们前面提到的, 软件的质量 = 程序的质量 + 软件工程的质量,那团队在下一阶段应该如何提高软件工程的质量呢?

  • 代码要保质保量,定期进行代码复审。
  • 扩展物理实验网站的应用范围,提高用户数量。
![](https://img2018.cnblogs.com/blog/1632258/201904/1632258-20190428165042964-1970688488.jpg)
posted on 2019-04-28 18:50  秘制牛肉  阅读(163)  评论(0编辑  收藏  举报