软件工程个人回顾与总结
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2022年北航敏捷软件工程 |
这个作业的要求在哪里 | 回顾与总结 |
对曾经问题的回答
问题1:事后诸葛亮会议的部分内容是否可以融入前面的每日例会
在提出此问题的时候还没有软件工程团队开发经验,在经历本学期的开发后我觉得该问题的答案是肯定的。正如我对原问题的一些描述:软件开发周期中部分为体出现的原因可能源于团队沟通不够全面,时间、分工安排不够合理等。在本学期我们团队的开发过程中同样出现类似问题,部分组员出现沟通上的分歧,分工不够具体等问题,在日常例会中直接提出并进行相应的沟通,大大地提升了我们接下来的工作效率,使得开发流程更加顺利。当然,最后的事后诸葛亮会议中还是再次提到了相关问题,提醒着我们以后软件开发团队对于相关问题的注意,这也是事后诸葛亮会议存在的意义。
问题2:”小强地狱”中的阈值如何界定
目前仍然无法回答这个问题,因为团队在开发过程中并没有参考”小强地狱”的模式进行,但是经过大半个学期的开发,我觉得“小强地狱”是有一定作用及意义的。在项目的进行过程中,我们有存在为了推进进度而暂时忽略一些bug的情况,比如首页的个人界面存在部分显示bug,但前端同学为了推进进度继续将时间花在其他界面的开发上,暂时忽略了这个bug,而PM却认为这个bug很致命,极大的影响用户体验,两者争辩不休,若是在一开始便能够制定一定规范,利用”小强地狱“的模式并确认阈值,相信此问题也不会出现,出现也能够根据规范来解决。
问题3:结对编程中驾驶员和领航者的角色互换是否需要如此高频
经过亲身的结对编程体验后,我更加坚定我的观点,驾驶员和领航者的觉得并不需要如此高频的互换。由于队友对C#语言更为熟悉,所以很大部分编程工作的主题工作都由他完成,我负责小部分模块的编写以及软件的测试并向他提出一些优化的方向。在这个过程中我觉得效率会更高,因为如果每隔一小时交换一个人写,我会花费一些时间查询或询问一些语法而延缓进度,但是看着他写的时候边理解他的想法便可很大程度方便我进行后续的针对测试,提高了我们协作的效率。
问题4:是否存在又多又快又省的软件产品
目前还未解决这个问题,对于我们的项目,还是花费了很多的时间的,还未找到一个满足这个要求的软件。
问题5:公众利益的界定
目前还没有确切的答案。具体内容无法通过csdn审核,不再细说。
做中学
需求
学习了NABCD的需求分析方法,使得对于用户需求的分析更井然有序。
在我们组的需求分析过程中,由于是和中传同学进行合作完成,我们在得到他们的一些粗略的需求后,以用户的视角以及实现的难度进行了考量,筛选出一些合适的需求,并对他们进行进一步的细化,成为具体的需求。
设计
我们制订了相应的功能规格说明书和技术规格说明书,按照相应的规范和原则记录下来,方便后续开发有迹可循。同时,遵循信息隐藏原则、接口设计原则,尽量保证后端接口的安全性及可靠性。
实现
实现过程中遵循相应的代码规范,利用coding平台给打架分配任务,对于分配给每个同学的需求,我们需要在coding平台上写出具体的设计方法以及大致的实现手法,方便后续的开发及测试。同时,制定了完整的找出缺陷-提出缺陷-修复缺陷-确认修复的流程,方便后续测试。
测试
利用coding平台的issue模板,制定了完整的找出缺陷-提出缺陷-修复缺陷-确认修复的流程,提高了测试的效率。并且指定以位同学进行正确性测试和压力测试,最大程度上避免产品发布时出现严重bug。
发布
发布时,为了让尽可能多用户使用我们的产品,需要进行相应的推广。我们在朋友圈、qq、b站等平台宣传我们的产品,扩大了影响范围,吸引了许多不同高校的同学使用我们的产品。
维护
诚然,虽然有测试阶段,但还是不可避免地在发布后出现bug,我们开设用户微信群,让用户找出bug后能够及时反馈bug同时我们及时对其进行修复和更新,尽最大可能降低用户体验地不适。
理解和心得
通过一学期的软件工程课程,诚然,这门课如学长所说,十分耗费精力,但是好好坚持下来,也是收获颇丰。
在技术经验上,了解并使用了netty框架,并且基于此实现了在线聊天功能,成就感满满。同时,了解了对象存储、CI/CD,不得不说,持续集成真的十分方便,不需要每次更改后都要重复一遍操作进行部署,我们只需要简单的提交一个tag便可直接将修改的内容部署至服务器,提高了效率。
在团队协作上,由于PM设置了严厉而有效的需求分配、需求实现、缺陷修复的实现规范,队友们也严格遵守,使得开发效率、修复效率大大提升。并且随着项目的进行,队友们也从刚开始或许有些生疏到无话不说,虽然中间可能发生了一些摩擦,但最后大家都是朝着能够好好完成本次项目的目标各司其职,最终也算是圆满完成了,十分感谢各位的努力!
最后,再次感谢队友们、老师以及助教这学期的辛勤付出,给予了我一次很好的软件开发体验。