[I.3] 个人作业:结课总结

21231110-司亦菲 2024-06-30 20:29:14
项目内容
这个作业属于哪个课程2024北航敏捷软件工程
这个作业的要求在哪里[I.3] 个人作业:结课总结
我在这个课程的目标是学习软件工程的开发流程,并在团队协作中进行实践
这个作业在哪个具体方面帮助我实现目标阅读专业课本与编程实践

对于以前所提问题的解答

《构建之法:现代软件工程》阅读和提问

1. 成长和代码量的关系

代码量和工程师的水平是线性的关系吗?

以课本中的观点,代码总量较少,比如在2000行以下时,不存在这种线性的关系。因为工程师可以靠记忆搞定这些代码,进行“哪里错了改哪里”的质朴操作。但当代码要以万为单位时,这种方法就失效了,工程师必须依靠架构来确保代码不会变成一团乱麻,因此代码总量大时,代码量与工程师水平大体上是线性关系。

不过在我看来,一个优秀的工程师可以通过优秀的架构消除代码的冗余,使代码总量减少,可读性和便捷性都更强。因此我认为这种线性关系是无法确定的。

2.关于需求分析

软件团队在分析软件需求时需要考虑软件产品的利益相关者,但软件团队本身也是利益相关者的子集,作为开发者,软件团队容易陷入“当局者迷”的境地。

要解决这个"当局者迷"问题,个人认为有以下几种方法:明确角色分离,确保需求分析者专注于用户和业务需求而非团队偏好;进行深入的用户研究,获取真实的用户反馈和需求;同时,邀请第三方提供客观评估,以确保需求分析的全面性和客观性。

另一个问题是,有些功能如果实现了反而拖累效率,也就是需求与产品质量之间有矛盾,那么该如何平衡这些矛盾呢?

在面对需求与产品质量之间的矛盾时,关键在于进行细致的权衡分析。首先,识别并区分哪些功能是核心的,对用户价值和产品成功至关重要,哪些则是次要的或可以推迟实现的。其次,通过用户研究和数据分析来验证功能的必要性和优先级,确保投入资源于那些真正提升用户体验和满足市场需求的功能上。此外,采用敏捷开发方法,允许在开发过程中根据反馈进行调整,从而在不牺牲产品质量的前提下,逐步实现和优化功能。通过这些方法,可以在满足用户需求和保持产品质量之间找到恰当的平衡点。

3.关于典型用户

团队项目是该顺应想法,认准典型用户,还是兼顾大多数群体的需求呢?

理想的做法是识别并理解所有用户群体的核心需求,然后设计能够满足这些需求的产品。这通常意味着在产品开发过程中采用用户中心设计方法,通过用户研究来识别不同用户群体的共同点和差异。同时,团队应该利用敏捷开发原则,快速迭代产品,以便在开发过程中不断收集用户反馈,并根据这些反馈调整产品特性。此外,通过设定清晰的优先级和功能范围,团队可以有效地平衡资源分配,确保产品既能够吸引典型用户,又能满足更广泛用户群体的基本需求。最终,团队应该追求的是一个既能满足特定用户群体的特定需求,又能覆盖更广泛用户基础的平衡点。

4.关于bug

如果追求修复所有bug反而有可能拖慢项目进度,在bug也不影响新功能的开发的情况下,可以选择留bug以保证项目进度吗?

对于次要或边缘的bug,可以制定计划在后续的迭代或版本更新中进行修复。关键是要进行风险评估,确保这些未立即修复的bug不会带来严重的负面后果。同时,团队应该与用户和利益相关者保持透明沟通,明确bug修复的优先级和计划,以维护信任并确保项目能够按时交付高质量的产品。

5.关于社会的发展

人的认知会很大程度上受到所处环境的局限,如何辨别我们看到的“进步”是真正的进步还是群体氛围烘托造成的假象?

辨别我们所观察到的"进步"是否为真正的进步,还是仅仅是群体氛围烘托出的假象,需要我们进行多角度的分析和深入的思考。首先应该超越单一信息源,通过阅读、研究和交流来获取更全面的信息,避免被局部或片面的观点所局限。其次,要关注统计数据和客观事实,这些可以作为衡量进步的可靠指标。同时要了解不同群体和地区的发展状况,比较不同环境下的"进步",有助于我们更准确地评估整体社会的发展水平。技术和社会进步不是线性的,它们可能会有起伏和回退,真正的进步是持续的、多维度的,并且能够带来广泛的社会福祉。

知识点学习总结

1.需求:根据NABCD需求分析模型,进行用户调研,全面了解用户需求。

2.设计:对系统的架构进行分析,设计各个部分之间的接口。可以直接采用一些成熟的设计方法。

3.实现:开发中团队成员各自钻研一个领域或一个功能,可能会效率更高。在编写的过程中表明注释,便于后续进行维护,进行审查。

4.测试:单元测试、集成测试、系统测试。制定可行的计划进行测试,由小及大,自动化进行测试。

5.发布:代码管理仓库CI/CD。对版本不断的进行迭代更新,利用代码管理平台进行代码的集成,不断的进行完善。同时建立用户反馈渠道。

6.维护:发布测试版本,根据用户反馈进行改进。并在以后的运行过程中针对涌现的问题进行修复。

个人心得

算是一门比较硬核也比较有趣的课吧,虽然组野队导致了各种奇妙的沟通问题,甚至Beta阶段时队里的外国同学就没再见过面了(明明分配任务时她说OK但后来就什么也没写然后也不来开会了),不过总体上还是很有收获的,真的和上学期数据库做网页很不一样啊。

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

73

社区成员

发帖
与我相关
我的任务
社区描述
2024年北航敏捷软件工程
软件工程团队开发结对编程 高校 北京·海淀区
社区管理员
  • clotho67
  • Yeyanhan
  • HJin_Gwok
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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