BUAA SE 提问回顾与个人总结

20373080-庞睿加 2023-06-20 02:44:19

提问回顾与个人总结

20373080 庞睿加

项目内容
这个作业属于哪个课程2023北航敏捷软件工程
这个作业的要求在哪里个人作业-提问回顾与个人总结
我在这个课程的目标是学习现代软件开发模式与流程,提高个人能力与团队写作能力
这个作业在哪个具体方面帮助我实现目标总结课程实践的收获,回答之前的疑惑

一、问题回答

之前问题博客:BUAA SE Work1

1. “牛仔式编程”

在第一次作业的提问中,我提出疑问:“为什么要避免牛仔式编程?无论是哪个定义,我们可以看出牛仔式编程的核心特点是灵活、直接、独特。”这个在我的前端合作实践过程中有了深刻的体会。

在给前端页面添加样式的时候,其实是有很多方式的,比较突出的方式有使用现有的组件为主、以及自己书写类并修改css属性为主。第一种方式简约、受局限,并且相对规范。第二种方式则可以根据自己的想法进行很多细微的调整。在我书写的时候,更多的时候偏向于第二种方式。

但是在团队合作过程中,其实很难保证一个页面的样式就固定是由一个人来全程调整的。我们在开发完页面架构与功能时,经常出现由一个人或多个人统一修改样式的情况。这时,这个人就要去修改别人书写的代码,而前端代码可读性往往不好,尤其是CSS样式部分。而我使用第二种方式的习惯就让style部分变得可读性很差,也为修改样式的同学带来了困难。

通过这一次时间经历,我明白虽然牛仔式可能更灵活更独特,但是更多时候是有使用条件的,他更适用于个人秀。我在提问时也提到:“在做一些数学题时,我们往往希望找到一种独特的巧妙的解法”,灵活的解法适合于少数人的灵光一现,其实并不适合更具普遍性的团队合作。

2. PM的方向困境

在前面提问中,我提出“在一个不够完善成熟的团队中,PM的设置会将团队的不完善性不成熟性放大”的观点。在经过一个学期的实践,我发现PM的设置,恰恰是将一个不够成熟不够完善的队伍,结合起来,尽可能避免问题的存在。之前设想的问题反而只可能出现在理论情况,而现实中,遇到困难,总有人会站出来,也一直会有不同的人站出来。

3. 敏捷原则4:是否需要每天共同工作

面对这一问题,经过我的实践经验,我现在给出的回答是“在自身时间允许的情况下,尽可能多共同工作”。当面对多任务,平衡是最好的选择。

二、实践收获

1.需求

所谓分析需求,准确的说就是根据场景需求确定功能。在我们进行需求分析的过程中,最印象深刻的知识就是“分而治之”。

需求分析中的分而治之,并不是简单的分,还有治。所谓的治,既是分开的部分各自处理,也是联合起来处理。比如我们所设计的地图论坛系统,很明显的就可以分为地图、论坛两部分,比较容易分开进行需求分析。但最核心,也是最具有创新性以及吸引力的是联合两部分的需求分析。

经过实践的经验,我认为所谓“分而治之”,是先做划分,各自处理,联合而治三部曲的结合,缺一不可。

2. 设计

设计是多层次的,比较顶层的包括页面设计,功能的方式,底层一些的有功能的实现,系统的机制等。我们主要才去的方式是“图文结合”。

图文结合说起来浅显,意思是功能设计依托于对页面的设计,首先设计出页面的大致内容模块,随后将各部分设计附着在页面设计中。这样的好处是较有层次感,也比较清晰明了。缺点在于对于多页面的联合功能并不能很好的表述,所以对每个功能或者机制的设计还需要准确的表述与刻画,其中也会用的具体的图表。

同样,对于“图文结合”,我认为核心是文依于图,文不缺图。

3. 实现

实现可以说是核心部分,往往也是花费时间最多的部分。我认为在实现过程中最重要的收获是代码管理,也就是github的使用。软工作为7个人的团队,脱离有效的代码管理工具已经几乎无法进行。

而对代码管理工具使用的熟悉程度与规范程度直接决定了合作的效率,诸如pull request、issure等的使用,极大的帮助了团队更好的推进任务。前几日我报名了一个开源项目,其中在介绍时也提到了这些功能的使用,开源项目其实就是一个大型的团队合作项目,他们有更规范的管理规范,通过软工的代码管理实践,我对这些的熟悉程度有了很大的提升。

4. 测试

测试我参与的并不太多,主要局限于前端页面功能、样式的测试。

测试讲究的就是代入到用户之中,不过对于这一部分,通过整个项目的测试过程,我发现了一个规律:一个人总是更难找到自己开发的页面的bug,不知道是由于潜意识里躲避还是其他原因,所以对于前端测试还是更适合交换测试,避免自己找自己的页面的bug。

5. 发布

发布的核心是定位到准确的应用受众并宣传到他们。

6. 维护

维护需要维护的是发布分支,也就是release分支,开发与修改都在dev分支,所以每次从dev分支到release分支的PR都需要格外严谨的审查。

在维护阶段,保持联系畅通也是重要的一点。否则容易造成bug无人认领甚至无人修改的情况,尤其是影响较大的bug。

三、总结心得

软工课程最大的收获是团队合作的经历。之前的小组作业大多各自为战,最后简单拼凑,或者有一些不规范的合作。但一起开发软件,对队友之间的合作要求极高。包括代码管理、任务分配、困难攻克、时间协调、沟通交流,都给我带来了深刻的印象与众多的收获。

...全文
297 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoftwareTeacher 2023-07-20
精选
  • 打赏
  • 举报
回复
5.00元

而现实中,遇到困难,总有人会站出来,也一直会有不同的人站出来。


赞你们团队这种 “站出来” 的精神!

GreyZeng 2023-07-20
  • 打赏
  • 举报
回复

你的内容已经被集成到这个精华问答中:https://bbs.csdn.net/topics/616640915

SoftwareTeacher 2023-07-20
  • 打赏
  • 举报
回复

软工课程最大的收获是团队合作的经历。之前的小组作业大多各自为战,最后简单拼凑,或者有一些不规范的合作。但一起开发软件,对队友之间的合作要求极高。包括代码管理、任务分配、困难攻克、时间协调、沟通交流,都给我带来了深刻的印象与众多的收获。


这就是高质量软件工程课程的价值。

SoftwareTeacher 2023-07-20
  • 打赏
  • 举报
回复

一个人总是更难找到自己开发的页面的bug,不知道是由于潜意识里躲避还是其他原因,所以对于前端测试还是更适合交换测试,避免自己找自己的页面的bug。


对,还是要交叉测试,或者让专业的人来测试。

SoftwareTeacher 2023-07-20
  • 打赏
  • 举报
回复

“在做一些数学题时,我们往往希望找到一种独特的巧妙的解法”,灵活的解法适合于少数人的灵光一现,其实并不适合更具普遍性的团队合作。


在团队项目中, 是“团队的代码”, 不是 “我的代码”。 要保证整个团队代码设计/风格的一致性。

78

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航敏捷软件工程,主讲教师罗杰、任健。
软件工程 高校
社区管理员
  • clotho67
  • neumy
  • BUAA-Dreamer
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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