课程总结
软件工程课程个人总结
在软件工程课程的学习过程中,我收获颇丰,不仅在技术能力上有所提升,对软件工程的理解也更加深入。
课程计划完成情况回顾
课程伊始,我制定了多方面的学习计划。阅读《构建之法》并提出问题,这一任务我圆满完成,提出了 5 个问题。团队项目规划方面,虽初步确定方向,但因需求变更后期调整,完成度为 80%。个人项目的代码实践,初期进展顺利,然而团队项目启动后投入时间减少,完成度 70%。技术学习上,掌握了基本的 Git 协作流程与单元测试框架(如 JUnit),完成度 90%。撰写博客/周报按时提交,完成度 100%。
从具体数据来看,个人项目 Git 提交 25 次,团队项目贡献 40 + 次代码提交;个人项目单元测试覆盖率达 75%,团队项目受时间限制仅 60%;共进行 10 次正式团队会议且有纪要存档;撰写 8 篇技术博客和课程总结。总体而言,大部分计划目标达成,个人项目因团队任务优先级调整滞后。
对《构建之法》相关问题的回顾与回答
课程初期提出的 5 个问题,经过实践有了新的认识。关于如何平衡敏捷开发中的“快速迭代”和“代码质量”,我认为自动化测试(CI/CD)和代码审查(Code Review)是关键,团队项目采用 GitHub Actions 进行自动化测试,确保每次提交不破坏核心功能,课程实践让我更深刻理解如何在敏捷中维持质量。
对于软件工程师职业发展是否必须走管理路线,我认识到不一定,技术专家也是可行路径,课程中的技术实践让我倾向于技术深耕,不过职业规划还需更多行业经验。
在需求分析方面,采用用户故事(User Story)和原型设计(Prototyping)能减少“用户说的”和“实际需要的”不一致,团队项目通过低保真原型获取用户反馈,减少了需求偏差,课程实践让我明白用户调研的重要性。
开源社区对软件工程师成长帮助极大,通过参与开源项目,我学会协作、代码规范和问题排查,课程鼓励阅读开源代码有益成长,但课程在引导参与开源上不够系统。
关于软件工程中的“银弹”,我认为不存在,不同项目适用不同方法,团队初期过度依赖 Scrum,后发现部分任务适合 Kanban,课程通过多种开发模式实践让我理解没有万能方法。问题 2 和问题 4 因涉及长期职业规划,课程侧重短期项目实践,未能深入解答。
新产生的问题
学习过程中,新产生一些问题。如何衡量软件工程课程的成功,是项目完成度、技能提升还是团队协作能力,希望老师和助教分享评估标准。分布式团队中,部分成员远程协作存在信息不同步问题,如何有效减少沟通成本值得探讨。此外,软件工程中的伦理问题(如数据隐私)在教学中体现较少,该如何在教学中融入值得思考。
软件工程文献与“事后诸葛亮”分析的新体会
阅读《人月神话》和《Clean Code》部分章节并进行“事后诸葛亮”分析,收获颇丰。《人月神话》中的“没有银弹”和“外科手术团队”概念在实际项目中得到验证,曾因过度分工致效率下降,后调整为灵活协作模式;《Clean Code》的编码规范让我们在代码审查中减少冗余代码。
“事后诸葛亮”分析让我从只关注“哪些做错了”转变为“如何改进”。例如发现每日站会效率低,改为异步更新 + 每周重点会议,同时意识到团队情绪管理被忽略,后期增加“心情投票”调整工作节奏。
技能提升与无形收获
这门课程让我从“写代码”转向“做软件”,理解了工程化思维的重要性。
在团队协作上,心态从“独自编码”转变为“共同解决问题”。项目管理意识增强,优先级排序更清晰。抗压能力也得到提升,面对 Deadline 前协调冲突需求时心态更沉稳。这些无形的收获,加上技术实践能力的提升,都远超预期。感谢老师和助教的指导!
待回答问题
- 如何衡量软件工程项目的成功?
- 分布式团队如何降低沟通成本?
- 无论是三人团队或者两人团队,甚至一人团队都必须淘汰一人是否合理?
浙公网安备 33010602011771号