zoukankan      html  css  js  c++  java
  • Alpha阶段事后分析

    [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)
  • 相关阅读:
    设计模式---行为变化模式之命令模式(Command)
    设计模式---数据结构模式之职责链模式(Chain of Responsibility)
    设计模式---数据结构模式之迭代器模式(Iterate)
    WinCE全屏手写输入法
    .net下所有DLL(API)查询,转换C#代码
    在线cron表达式生成器
    完全卸载vs2013、vs2015的方法
    java微信 客服接口-发消息 中文乱码
    【路由达人】简单两步搞定小米路由新增功能-DDNS(解析域名地址转向在线工具)
    微信公众平台开发入门教程
  • 原文地址:https://www.cnblogs.com/mizhiniurou/p/10777308.html
Copyright © 2011-2022 走看看