[I.1] 个人作业:阅读和提问

《构建之法》阅读提问与思考

项目 内容
这个作业属于哪个课程 课程社区首页
这个作业的要求在哪里 作业要求
我在这个课程的目标是 理解软件工程的方法论,并能够在真实项目中应用
这个作业在哪个具体方面帮助我实现目标 通过阅读教材并提出问题,加深对软件工程方法和开发流程的理解。

Agile 中 Sprint 阶段任务的耗时往往难以估计,该如何解决?

在第六章介绍的敏捷流程中,第二个重要步骤是 确定当前 Sprint 需要完成的任务。团队需要在 Sprint 规划阶段对任务进行拆分,并对每个任务的完成时间进行大致估计。

截屏2026-03-10 14.29

然而,在实际的软件开发过程中,任务的耗时往往很难准确评估。开发者在开始编写代码之前,往往无法预料到开发过程中可能遇到的各种问题,例如:

  • 难以预料的 Bug
  • 需求在开发过程中发生变动
  • Code Review 过程中需要反复修改
  • 临时插入的高优先级问题修复

这些因素都会导致任务的实际耗时远超最初的预估。

在笔者之前的一段实习经历中,就曾多次遇到类似的情况。面对一个看似简单的需求时,往往会过于乐观地估计开发时间,例如认为 一天就可以完成。但在实际开发过程中,却可能遇到许多此前未考虑的问题,例如与其他功能存在耦合、依赖服务异常,甚至需求本身发生调整。同时,有时还需要临时处理优先级更高的 Bug。最终,原本预计一天完成的任务,可能需要 3~4 天才能真正完成

Agile 中的每日例会是否有存在的必要?

在第六章介绍的敏捷流程中,还提到了 冲刺阶段的每日例会,即团队成员每天进行简短的面对面交流,以同步当前任务的进度。

截屏2026-03-10 14.17

这一机制的初衷是促进团队信息共享,使成员能够及时了解彼此的工作进展,并尽早发现和解决项目中的阻碍问题。从理论上看,这一做法十分合理。

然而,在实际的软件开发流程中,这一机制有时也会带来一些问题。现代软件工程项目往往规模较大,为了减少代码冲突和提高开发效率,团队通常会 尽量将需求拆分为相对独立的模块,使每个开发者负责的任务之间耦合度较低。在这种情况下,团队成员之间的工作关联性较弱,每天花时间详细了解他人的工作进度,其实际价值可能并不高。

在笔者之前的一段实习经历中,团队每天早上九点都会召开例会。每个人依次汇报当天的工作计划或当前的任务进度,但大多数成员在汇报结束后便各自做自己的事情了。由于任务之间的关联较少,这种例会更多只是形式上的进度汇报,对实际开发工作的帮助并不明显,反而在一定程度上占用了开发时间。

在软件开发过程中,PM 在不具备编程背景的情况下如何提出合理需求?

截屏2026-03-10 14.45

在软件开发团队中,产品经理(PM)通常负责提出需求、规划产品功能以及协调不同角色之间的沟通。然而,许多 PM 并不具备编程或系统设计方面的技术背景,这也给需求的提出和沟通带来了一定挑战。

在实际开发过程中,有时会出现这样的情况:PM 从用户体验或产品功能的角度提出需求,但由于对技术实现方式缺乏了解,需求描述可能不够具体,或者忽略了一些技术上的限制。例如,一个看似简单的功能,在技术实现上可能涉及复杂的数据结构设计、接口改动或系统架构调整。如果 PM 在提出需求时没有充分考虑这些因素,开发人员在实现过程中就可能需要花费大量时间进行额外的沟通与调整。

在笔者的实际开发经历中,也曾遇到过类似的情况:需求最初看起来较为简单,但在实现过程中才发现涉及较多技术细节,需要反复与 PM 沟通确认。这不仅增加了沟通成本,也影响了开发效率。

强调员工内在驱动力是否合理?

截屏2026-03-10 15.17

书中提到,单纯依靠金钱奖励或惩罚等外部驱动因素,对于需要创造性思维的工作效果有限。相反,自主性、对某个领域的精通以及工作的使命感,往往更能激发员工的工作效率。

在现代软件开发团队中,越来越多的公司开始使用 OKR(Objectives and Key Results) 来管理目标,而不是单纯使用 KPI。OKR 通常强调目标的挑战性、团队的自主参与以及目标背后的意义,这似乎与书中提到的“自主性、精通和使命感”具有一定的契合。

这看似很合理,但是在某种程度上来说这种做法就是把风险、压力、失败成本,全都甩给了执行层,是对下级的另外一种压榨。在OKR体系下,所有不能被业务解释的努力,默认等于无效。这可能会严重影响员工的积极性。

AI 编程工具的发展是否正在改变软件工程?

近年来,大语言模型逐渐被应用于辅助编程领域,各类 AI 编程工具不断涌现,例如 Cursor、Claude Code、Codex、Antigravity 等。这些工具能够根据自然语言生成代码、解释代码逻辑,甚至帮助开发者完成调试和重构工作。

与此同时,互联网上也出现了大量关于 AI 对程序员影响的讨论,例如“前端已死”、“后端已死”、“SaaS 已死”等言论。这些观点虽然带有一定情绪化色彩,但也反映出 AI 技术正在对软件开发方式产生潜在影响。

在这种背景下,一些传统的软件开发流程可能正在发生变化。例如,开发者可以借助 AI 工具更快速地生成原型代码,从而更高效地验证想法并尝试不同的实现方案。某些原本需要大量手写代码的工作,现在可能可以通过 AI 辅助在更短时间内完成。

因此我想问:随着 AI 编程工具能力的不断提升,软件工程的开发模式是否会发生根本性的改变?

posted @ 2026-03-10 15:53  lhy0424  阅读(19)  评论(0)    收藏  举报