啊对对队——alpha阶段问题总结随笔

啊对对队. 团队 2024-05-18 22:42:16

这个作业属于哪个课程2302软件工程
这个作业要求在哪里团队作业—bate 冲刺+事后诸葛亮
这个作业的目标Alpha 阶段问题总结
团队置顶随笔啊对对队——Beta阶段置顶集合随笔
其他参考文献现代软件工程讲义 11 项目管理 - 事后诸葛亮会议

目录

  • 一、设想和目标
  • 二、计划
  • 三、变更管理
  • 四、团队的角色,管理,合作
  • 五、设计/实现
  • 六、测试/发布

一、设想和目标

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

      1.本产品的定位是提供一个便捷、多样化和个性化的在线购买零食产品的平台。

      2.典型用户:零食爱好者,办公室白领,家庭主妇等。

      3.典型场景:
            1.下午茶时间:一个上班族在办公室内,感到疲惫和饥饿时,通过零食商城系统,在手机上浏览并订购了一些口味独特的零食,满足了自己的口腹之欲。
            2.家庭聚会:一个家庭主妇为即将来访的客人准备一些零食,通过零食商城系统,在电脑上选择并购买了一些适合不同口味的零食,为聚会增添了一份美味。
            3.礼物选择:一个年轻人要送给朋友生日礼物,知道对方喜欢吃零食,通过零食商城系统,在平台上找到了一款限量版的特色零食,作为独特的礼物送给朋友。

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

      1.原计划的功能在大体上已经全部完成,详见 Alpha 总结随笔

      2.Alpha 冲刺已按原计划结束并通过答辩,项目也按照原计划交付时间交付了。

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

      1.与上一阶段相比,团队软件工程的质量提高了。具体如下:
         在本次Alpha冲刺中,我们首先采取了明确的工作分工策略,详细说明每个人的具体任务和对接对象,这有助于加强团队内部的协作与交流。此外,我们还引入了站立式会议的方式,使管理人员能够更好地了解团队的开发进度,从而更有效地进行项目管理。此外,在alpha冲刺后期,我们团队开发与测试同步进行(TTD),这样可以更早地发现问题,减少后期发现并修复bug所需的时间成本,从而加快团队整体的开发速度,避免出现重大错误而无法在规定时间内修复的情况。

      2.提高的主要方面在于工作效率和团队合作的改进,相较于之前来说,约提高了35%。Alpha结束,我们成功地完成了任务,团队成员也反馈说这是一次愉快的合作经历。相较于过去,这次开发过程更加顺利,大家在任务中分工明确,避免了最后时刻的抢修,这对于项目的质量和时间节点都是一种重要的进步。

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

      1.很显然,大体上和我们事先预想一致。

      2.在用户主要功能上,我们的大体方面已经完成,将会针对用户进行广泛的调查,不过从 Alpha 环节的项目演示上来看,用户接受程度与我们事先的预想较为接近,我们认为我们离目标已经比较接近了。

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

      1.需求分析阶段非常重要,在项目开始之前,确保进行充分的需求分析,这将有助于确保项目在正确的轨道上,以及减少后期的修正和调整。

      2.规划和时间管理至关重要。良好的项目规划和严格的时间管理可以确保项目按时交付。详细制定计划并严格执行将有助于减少延误的风险。

      3.团队合作和沟通也很重要。项目的成功离不开团队成员之间的协作和有效的沟通,建立良好的沟通机制,并确保每个人清楚自己的任务和责任,以及随时可以交流意见和想法。

      4.在开发过程中需要边开发边测试,这样可以尽早地发现并报告问题,开发人员也可以快速地修复问题。这样可以尽早地发现和解决软件缺陷,减少后期修复成本。

二、计划

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

      1.磨刀不误砍柴工,在 Alpha 开始前的计划虽有些仓促,但却不乏细致和合理。

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

      1.尝试找到不同意见之间的共同点,并寻求达成共识。

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

      1.基本完成。

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

      1.无。合理的计划使我们的时间精力花在刀刃上。

      4.是否每一项任务都有清楚定义和衡量的交付件?
      1.前端Vue_router写得有纰漏,导致界面整合时,有些个页面跳转错误或者失败。

      2.事先没有仔细商量导致后端数据接口没有与前端定义一致,导致多次数据与前端交互失败。

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

      1.项目开发到一半,云服务器到期了,不想花钱租,只能换个新号。。。

      2.部署在云服务器上多次失败,当时可能是心态问题,越到后期越如履薄冰,担心意外发生。

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

      1.当然是有的。

      2.在计划中留出缓冲区是一种明智的做法,因为它可以帮助团队应对不可预见的情况和风险,从而避免项目进度受到严重影响。例如我们就留了额外时间在测试上,以免出现问题,从而导致无法在计划时间内维修完毕。

      8.将来的计划会做什么修改?(例如:缓冲区的定义,加班)

      1. 团队可以重新评估缓冲区的定义和大小。如果发现某些任务的风险较高或不确定性较大,可以增加相应的缓冲区,以应对潜在的延迟或问题。

      2.减少线下会议时间和次数,相应增加线上会议的交流频率,提高团队成员的自由度,增加效率。

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

      1.遇到困难先别摆,多和团队成员商量,沟通,求助,都会迎刃而解啦。

      2.还是那句话,磨刀不误砍柴工,在动手前要制定好计划,不一定要非常细致,能把握团队项目大致动向即可。

      3.如果重来,我们应该对各个成员的技术水平和方向做更深入的了解,以便更加合理,有针对性地布置任务,提高整体效率。

三、变更管理

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

      1.是的。

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

      1.开会讨论一下。

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

      1.外观界面上匹配原型设计。

      2.功能上完成系统设计说明书的定义。

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

      1.能。遇到变更后,我们能及时通知团队成员,并及时商定好策略。

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

      1.我们团队并没有森严的上下级关系,而是相处融洽,大家都愿意互相帮助,共同学习,进步。良好的氛围使我们能够有效地处理意料之外的工作请求。

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

      1.遇到问题摆正心态,遇到需求变更更要摆正心态。

      2.团队成员之间多沟通,多交流,工作才能有条不紊进行下去。

四、团队的角色,管理,合作

      1.团队的每个角色是如何确定的,是不是人尽其才?

      1.开会讨论,摸底技术,确定每个人的职责。

      2.目前来看,基本上算是人尽其才,但许多成员仍有巨大潜力,beta冲刺阶段好好发掘。

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

      1.如上所述,氛围良好,都愿意互相帮助。

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

      1.开会商讨,争取多方意见。

      2.最终由组长决定。

五、设计/实现

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

      1.设计工作在需求分析、系统设计与概要设计阶段由小组成员共同完成。由于每一项任务都有一周的时间来进行,且离 Alpha 冲刺比较远,有足够的时间,且为团队内部成员开发,人员合适。

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

      1.有问题就开会讨论,集思广益。

      3.团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
      1.团队中使用了微信开发者工具的云测、Xmind、墨刀来帮助设计与实现。
      2.云测用于自动化测试,进行回归测试与页面覆盖测试。Xmind用于思维导图绘制。墨刀用于原型设计,明确前台界面样式与展示效果。

      4.什么功能产生的 Bug 最多,为什么?在发布之后发现了什么重要的 bug? 为什么我们在设计/开发的时候没有想到这些情况?
      1.购物车与结算模块产生的bug最多,用户可以对商品进行增删改查操作,涉及到库存管理、价格计算、促销规则应用等逻辑,这些逻辑的复杂性容易引入Bug。
      2.发布后发现兼容性问题导致功能缺失,在某些设备上,部分页面切换功能无法正常使用。
      3.经验不足,对某些技术或最佳实践不够熟悉,导致未能预见某些问题以及测试覆盖不全,测试计划可能没有充分考虑所有极端场景。

      5.代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
      1.明确Code Review的目标和标准,分配审查者,通常会指定至少一位团队成员作为主要审查者,他们负责仔细检查代码的逻辑、结构、风格等是否符合规范。审查者可以是具有更多经验的成员,也可以是负责相关模块的同学。
      2.在Alpha冲刺这样紧张的开发周期中,严格执行代码规范可能面临时间压力的挑战,但通过有效的规划、自动化工具的利用以及团队成员间的良好沟通,可以最大程度地确保代码质量和规范遵守。

      6.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
      1.项目管理的重要性:明确目标、合理分配任务、跟踪进度和有效协调资源对于按时交付高质量产品至关重要。
      2.加强前期规划:投入更多时间在项目启动阶段做详尽的需求分析和规划,明确项目范围,减少中途变更。

六、测试/发布

      1.团队是否有一个测试计划?为什么没有?
      1.有制定测试计划,见测试随笔

      2.是否进行了正式的验收测试?
      1.是,团队成员进行了多轮黑盒测试验收结果。

      3.团队是否有测试工具来帮助测试?
      1.使用了微信开发者工具的云测进行自动化测试来辅助测试。

      4.团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
      1.定义性能指标,首先,团队需要明确衡量性能的关键指标,例如启动时间、页面加载速度、内存占用、CPU使用率等。并且微信开发者工具提供了性能监测功能,如性能面板,可以用来实时监控小程序运行时的各项性能指标。
      2.这些测试工作有助于提前发现问题,性能测试能够提前发现并定位性能瓶颈,避免在用户端出现卡顿、闪退等严重影响用户体验的问题。
      3.改进空间:增加自动化性能测试的比例,减少人工干预,提高测试效率和频率,确保每次代码提交都能自动触发性能检查。

      5.在发布的过程中发现了哪些意外问题?
      1.兼容性问题,在不同类型的移动设备上,小程序可能表现出不同的行为,如界面错乱,这些问题在测试阶段可能未完全暴露。

      6.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
      1.细致的测试计划至关重要,全面的测试覆盖,包括单元测试、集成测试、性能测试、兼容性测试以及用户验收测试,是发现并修复问题的前提。没有周密的测试计划,可能导致发布后出现大量未预见的错误。
      2.优化测试自动化,投入更多资源开发自动化测试工具和脚本,特别是针对回归测试和兼容性测试,提高测试效率和覆盖率。

...全文
30 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

116

社区成员

发帖
与我相关
我的任务
社区描述
FZU-SE
软件工程 高校
社区管理员
  • LinQF39
  • 助教-吴可仪
  • 一杯时间
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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