提问回顾与个人总结

提问回顾与个人总结

前言

项目内容
这个作业属于哪个课程2023年北航敏捷软件工程
这个作业的要求在哪里个人作业-提问回顾与个人总结
我在这个课程的目标是学习现代软件工程开发的相关知识,增加实践经验
这个作业在哪个具体方面帮助我实现目标通过回顾课程之初的问题对软件工程这门课程进行总结

问题回顾:

问题来源:软件工程课程讲义阅读提问

问题一:

在软件开发中,如何选择最适合的用户研究方法,以便能够更好地确定用户需求和行为,并设计和开发出更好的产品?

我们在项目之初,对我们的软件进行定位时就出现了焦点小组的问题,接受调研者可能出于讨好其他人等心理而发表意见;我们也对调研的群体不是很了解,从而对需求分析产生影响……

目前为止我们也没有找到较好的解决方法,我们采用用户反馈的方式,即,首先进行简单调研,明晰软件的轮廓;然后,实现软件的初版,由用户反馈问题,,我们再进行修改,如此往复,使我们的软件越来越满足用户需求。

问题二:

在软件开发中,版本控制系统中的代码锁定机制的设计和使用有哪些优缺点?如何根据团队需要进行选择和配置?

很荣幸,在这次团队作业中,我是前端软件开发的版本管理者。我们的版本管理采用的是github。由于我们团队内部分工比较明确,成员之间的代码耦合度低,因此很少出现代码锁定等问题。我们的版本控制的结构总体为:main分支为最终分支,该分支的所有代码需要保证正确,main分支在被修改的同时,我们使用github action工具快速部署我们的新版本;dev分支为开发分支,也是使用最多的分支,该分支要领先main分支,成员coding时先拉取dev分支,创建自己独立的新分支,并在上面进行修改,在自己本地简单测试后允许合并至dev分支。成员在实现了一系列功能后,由代码管理者牵头对dev分支进行测试,测试无误后才可合并至main分支。如果多个团队成员同时编辑同一个文件而导致代码冲突,可以让先完成的成员合并至dev,后完成的成员rebase自己的分支,并对合并内容进行筛选。

问题三:

在软件测试中,如何确定适当的测试用例数量?根据功能测试时,如何确保我测试了所有的功能?

很荣幸,在这次团队作业中,我是也是前端软件开发的测试者。我认为测试样例应该满足:

  1. 测试用例齐全:保证每个功能,每种可能性都被测到,比如,我们的软件实现了一个富文本编辑器,首先,富文本编辑器应有的输入、图片、链接等功能需要一一测试;然后,在不同的调用窗口调用该编辑器,检查UI以及富文本编辑器的表现情况;最后,测试空输入等是否有检查,会不会出现异常。

  2. 测试数据充分:在测试用例齐全的基础上,测试数据应该尽可能充分,每种测试用例数量不应该过少,开要考虑到各种测试用例的耦合用例能否通过测试。

问题四:

如何在保持代码稳定性和可靠性的前提下,持续不断地引入新的技术和方法?

在我们前端的coding过程中,我们的项目使用yarn来保证项目依赖和项目引用的包的版本是正确的。当我们需要引入新的技术和方法(使用新依赖和包)时,我们会通过yarn引入,保证项目版本不会出问题。

问题五:

在软件开发团队中,如何公正地评估个人绩效?

我认为个人绩效需要从主观和客观两个方面评价。首先是客观的任务量,这个在开发前和开发过程中团队成员商量决定;然后是主管质量,在项目完成后,成员相互之间评价其他成员的任务质量,质量高的评分高,质量低的评分低,最后绩效为任务量和任务评分的乘积。

这种评价标准既可以评估一个成员做了多少东西,也可以评估其做东西的质量。如果一个人大包大揽了很多活,最后质量不尽人意,我们也不能认为其团队贡献的多;一个成员量力而行,完成的内容不多,但是质量很高,应该给他的贡献度提高一些。

个人总结:

实践中所学到的:

软工开发实践给我留下了深刻的印象。首先,我学到了很多的技术知识。如何根据用户需求构建出一个实用的软件,如何进行版本管理,如何保证代码的质量和稳定性,如何通过测试来找出并修复错误,等等。这些都是我在实践中学到的,也是我在学习过程中最宝贵的收获。

其次,我深刻理解到了团队合作的重要性。在开发过程中,我与我的团队成员共同协作,互相帮助,共同克服困难,实现了我们的软件目标。当然,前面一句只是套话,在参加这个课程之前,我可能认为团队合作只是”共同协作,互相帮助,共同克服困难“。现在我对团队合作有了新的定义,团队合作中并不是人人平等的,需要有一个领导者,一个”拍板人”。在团队出现分歧的时候,需要这样的一个人来确定团队的方向;在团队有矛盾的时候需要这样一个人来化解矛盾……在我们的团队开发中有好几次组会因为前后端接口讨论来讨论去,商量几个小时,实际上最后实现软件功能的时候发现这样那样的问题,又要重新改接口协商,依我之见,组会根本没有必要讨论前后端接口,前端和后端哪两个人实现的这个功能,这两个人私下交流接口,直接确定就行;在软件开发之初,软件需要有什么功能也想了很久,好几个想法讨论来讨论去,并不是说这种讨论是无效的,只是因为我们的PM没有很好的领导能力,没有魄力去拍板确定这个事情。

最后,我也认识到了自我提升的重要性。在实践中,我遇到了很多我之前没有接触过的问题,这些问题使我深感困扰。但是,通过自我学习和提升,我逐渐找到了解决这些问题的方法。这种自我提升的过程使我认识到,无论我在哪里,无论我面临什么样的挑战,我都需要不断地提升自我,才能更好地应对未来。

课程反思和感悟:

回顾这门课程,我觉得最大的收获就是软件工程的理念和实践经验。通过这个项目,我理解了软件工程不只是编程,更是一个涵盖需求分析、设计、编码、测试以及维护等多个阶段的系统工程。

我认识到了自我学习和进步的重要性。在项目实践中,我遇到了很多从未碰到过的问题,通过自我学习和查阅资料,我得以解决这些问题。这让我意识到在这个不断变化的领域,持续学习和自我提升的能力是非常重要的。我也感受了一次结对编程,有一说一,效率是真的高,比我一个人磨磨唧唧的编程要高效的多。

最后,我体验到了从需求分析到最终交付产品的全过程,这使我对软件开发有了更深入的理解。我会把这门课程的学习经历和感悟应用到以后的学习和工作中,我相信这会对我未来的职业生涯有很大的帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值