事后诸葛亮分析

一、会议照片

二. 设想与目标

  1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
  • 我们主要以在校学生及教师为目标人群,设计出学生在学习计算机语言时需要的练习系统,为了更高效更便捷同学们的使用,我们提供了在线评测的平台。
  • 在设计系统之前首先对典型用户和典型场景进行了详细的描述。
  1. 我们达到目标了么(原计划的功能做到了几个?按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
  • 我们基本达到目标,实现了基础的代码测评功能,能够满足老师和学生用户的基本需求。
  • 相对于原计划上线迟了一个星期,用户量较少,因为没有大范围推广
  1. 用户对重要功能的接受程度和我们事先的预想一致么?
  • 用户功能基本完成,跟我们预期想法基本一致。

三、计划

  1. 是否有充足的时间来做计划?
  • 在团队项目前两个星期,我们都在讨论,对于项目的计划有充足的准备时间
  • 在开发软件的流程中,我们每一步都是做好了规划,并且PM也经常督促组员进行任务的完成。
  1. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
  • 由于计划阶段是项目开发的前期,因此我们十分注重彼此之间的交流。因此我们也经常通过组内会议来讨论,而一旦出现了分歧,大家说明各自的观点,找出其中的利弊进行权衡。这样一来,大家的观点也能得到统一,同时也增进了彼此之间的感情,有利于项目的进展。
  1. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
  • 大部分已经完成,不影响基础功能的使用;
  • 关于比赛部分的功能还未完成,因为时间有限,前端人员界面完成效率较低。
  1. 有没有发现你做了一些事后看来没必要或没多大价值的事?
  • 还没有
  1. 是否每一项任务都有清楚定义和衡量的交付件?
  • 是的,每一项任务归档在设计文档中,每个人对自己的任务是非常清晰的,在系统设计的博客中有所体现。
  1. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
  • 我们项目基本按照计划进行,没有出现任何大的意外。小意外就是项目在最后对接的时候出现了一些问题,不过最后也是顺利解决。
  • 风险就是上线的时候服务器中环境配置要与本地配置相同,因为没有经验,没有尝试过。
  1. 在计划中有没有留下缓冲区,缓冲区有作用么?
  • 有。主要是用于计划之外的任务安排,例如项目功能没有出现预期的效果,我们就需要进一步的协商改进,因此需要缓冲区。

四、资源

  1. 我们有足够的资源来完成各项任务么?
  • 是的。我们团队成员大部分已经积累了一定的项目经验,因此我们开发起来比较容易,大家合作起来也是得心应手。
  1. 各项任务所需的时间和其他资源是如何估计的,精度如何?
  • 任务所需的时间主要是根据任务量进行估计的,同时会增加一些相应的缓存区防止意外情况。客观上根据功能的难度进行判断,主观上根据自己平时编程所需时间来判断。综合两者得到结果。
  • 精度上不够准确,没有考虑到遇到新知识的学习时间
  1. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
  • 测试时所需的时间和人力资源是足够的。我们的程序的接口对硬件的要求比较低,因此我们可以在比较理想的情况下进行测试。
  • 在美工方面,我们页面采用的是简洁明了的风格,无需高难度的美工设计。
  1. 你有没有感到你做的事情可以让别人来做(更有效率)?
  • 在团队PM的带领下,每个成员都充分发挥了自己的作用,大家积极的投入到大项目中,不过对于个别任务的分配,我们也可以考虑更加优的选择,这样也有利于项目的开发。

五、变更管理

  1. 每个相关的员工都及时知道了变更的消息?
  • 代码的更新主要是通过vscode的同步功能,设计方面的变更主要是通过微信群相互告知。
  1. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
  • 主要是通过时间和任务量上的考虑。因为任务分配是提前的,因此有时候难免会有些不可抗力因素阻碍了项目的顺利进展。
  1. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
  • 对于我们的在线测评系统而言,所谓做好了就是能够实现基本要求,即在学生用户中能够在线编程并查看状态,老师能够布置作业,修改增添相关功能;但是我们会在收到反馈之后进行一定的调整,慢慢的调整我们的应用。
  1. 员工是否能够有效地处理意料之外的工作请求?
  • 我们的团队成员彼此之间是和平相处的,大家通过交流学习问题对于意料之外的工作请求是能够互相体谅的。

六、设计/实现

  1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
  • 设计工作主要是在项目初期完成,是经过大家共同决定的。在项目开始初期,由PM提出,故PM作为主设计者。
  1. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
  • 在设计初期,关于整体的设想不够完善的时候,我们通过参考相类似的网站,进行对比设计。
  1. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
  • API测试用postman,前端测试请求用谷歌浏览器检查请求

  1. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
  • 代码复审主要是由开发人员和PM进行。在代码复审时会严格查看开发人员的代码规范的。

七、测试/发布

  1. 团队是否有一个测试计划?为什么没有?
  • 有,我们项目的测试计划是直接对接口的功能进行测试,使我们的程序有足够的健壮性。
  1. 是否进行了正式的验收测试?
  • 是的。我们对测试的结构撰写了测试报告
  1. 团队是否有测试工具来帮助测试?
  • 主要还是通过POSTMAN进行测试。
  1. 团队是如何测量并跟踪软件的效能(Performance)的?压力测试(Stress Test)呢? 从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
  • 我们通过进行多种选择的尝试来达到最好的效能。从结果来看,这有利于我们更好的了解我们的程序的性能。
  1. 在发布的过程中发现了哪些意外问题?
  • 上线时,服务器配置环境需要与本地前端环境一致,导致上线时间推迟了一天。

八、团队的角色、管理、合作

  1. 团队的每个角色是如何确定的,是不是人尽其才?
  • 首先我们是根据各自的兴趣主动选择,大家都尽到了自己的能力。
  1. 团队成员之间有互相帮助么?
  • 有的,在遇到困难时,我们的组员会向组内询问求救,有能力的同学会帮助解决问题。
  1. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
  • 因为在项目开始实现时分配了代码,所以我们的分工是非常明确的。当出现项目管理问题或者合作问题时,PM会此时进行协调。

九、总结

  1. 代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
  • 代码管理质量:制定统一的标准,迁入前加上标签进行迁入

  • 代码复审:测试人员测试功能无误后交由复审人员进行代码规范的复审

  • 代码规范:项目初期制定一套代码规范,并且开发人员必须严格遵守。

  1. 其它软件工具的应用,应该如何提高?
  • 对于其他的诸如测试工具,数据库设计工具等,我们应该尝试使用,有助于项目的高效率开发
  1. 项目管理有哪些具体的提高?
  • 开发者要有自己的一套管理体系
  • 对于每个阶段的功能实现要细分,让每个人能够取到与能力相匹配的任务,让每个人都有任务做。
  1. 项目文档的质量如何提高?
  • 项目文档通过细化用户需求,对项目文档的功能设计进行详细描述,以便于代码人员的阅读和了解。
  1. 对于软件工程的理论,规律有什么心得体会或不同意见?
  • 队员感想
成员 心得体会
孔止 通过这次项目,我了解了如何进行团队合作,完成一个完整的项目。从最初的一个idea,原型,到产品设计,搭环境,学习使用框架,测试,最后进行服务器的部署和上线,中间经历了很多曲折和辛酸,也有收获完成项目的成就感。在这里还要感谢其他小伙伴,如果不是他们,就不能把我的想法快速变成代码。在项目中,代码除了评测代码模块,和一些小修小补外,其他都是由剩余的小伙伴完成的。总的来说,这个项目我接触到了很多东西,也学到了很多的新知识,再次感谢我们团队的每个人
王欢 通过这次项目练习,意识到人越多越需要沟通和交流,当自己无法解决问题的时候,及时反馈自己的问题,对项目的完成度和流畅度也是一点贡献;此外,也让我意识到自己的能力还十分有限,还需要加强学习。
蔡晓芬 通过此次项目学习,意识到团队合作的重要性,很高兴能有机会和大家一起完成这个项目,也让我发现了自身存在的很多问题,接下来会努力去改正的!
严为炜 在这次开发中,对网站的搭建有了更全面的认识,对前后端的交互有了更深的理解,同时,合理、清晰地安排分配任务,对项目开发起到了推进的作用,深深感受到团队协作对开发带来的便利。
张家维 在这次团队合作项目中,可谓是收获满满,虽然说已经不是第一次团队开发,但是也增长了不少经验。对于服务器搭建,前后端交互,部署项目等等有了更深的了解,能更熟练的处理交接过程出现的难题。通过这次项目,看到了自己有许多不足,经过一次次不断的修改补漏增长了见识,真真切切的感受到了团队协作的魅力。

十、团队成员在alpha阶段的角色和贡献

成员 学号 软工角色 贡献分
孔止 3218005414 PM、开发 25
王欢 3118005443 组长、前端开发 18.85
蔡晓芬 3218005438 前端开发、测试 15.6
严为炜 3118005431 后台开发、测试 18.75
张家维 3118005433 后台开发、测试 21.8
原文地址:https://www.cnblogs.com/blockchik/p/14065708.html