一、请回望开学时的第一次作业,你对于软件工程课程的想象
1.1对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
个人感觉达到的期待和目标:
- 课程的理论知识与实践相结合,在学习中做项目,同时也在项目中继续深入学习;
- 增加了项目经验;
- 体验了团队合作,经历了组队、需求分析、设计、构建、测试、发布、展示、alpha&beta等阶段,在开发过程中始终与组员保持交流,每个人也都是保持着严谨的态度;
- 提升了解决问题的能力。
存在的不足:
- 虽然个人负责全部的测试工作,但是这方面的能力还是有待提升,勉强及格吧;
1.2总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;
主要负责测试工作,只针对测试脚本,1500行
2)软工的各次作业分别花了多少时间?(做一个列表)
作业 | 花费时间 |
---|---|
软工网络15个人阅读作业1 | 5h |
软工网络15个人阅读作业2--提问题 | 8h |
软工网络15结对编程练习 | 10h |
软工网络15团队作业1--团队组队&展示 | 2h |
软工网络15个人作业3--案例分析 | 5h |
团队作业3--需求分析与设计 | 10h |
团队作业4--团队计划 | 3h |
软工网络15Alpha阶段敏捷冲刺 | 42h |
团队作业5--测试与发布 | 7h |
团队作业6--展示博客 | 1h |
团队作业7--Alpha阶段只事后诸葛亮分析 | 3h |
个人作业4--Alpha阶段个人总结 | 3h |
团队作业8--敏捷冲刺(Beta阶段) | 42h |
Beta版验收互评 | 1h |
个人作业5--软工个人总结 | 4h |
总计 |
3)哪一次作业让你印象最深刻?为什么?
Alpha阶段的作业,每个队员都集中讨论了从需求分析、设计、构建、测试、发布、展示等阶段的构想,这也是我们团队项目的起点。
4)累计花了多少个小时在软工上?平均每周花多少个小时?
共计146h左右,课程14周左右,平均每周10h。
5)学习和使用的新软件;
LoadRunner、IBM SecurityAppscanStandard、NetBeans
6)学习和使用的新工具;
码云看板、Issues
7)学习和掌握的新语言、新平台;
Python
8)学习和掌握的新方法;
单元测试、功能性测试、性能测试、安全性测试等。
9)其他方面的提升。
学习能力、抗压能力、团队协作和交流沟通。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
-
关于团队项目选题要清晰明了,关注团队的核心创新功能并专注地完成。我们团队之前构想的东西非常多,最终却也只是完成了核心部分,并且不是很完整。
-
在整个软件开发过程中应始终保持一个良好的心态,遇到问题能够及时跟PM或者其他成员沟通。因为即使是专业的开发团队,在开发过程中也会遇到许多问题,可能会影响到整个团队的进度,及时的沟通解决是非常必要的。
-
另外很重要的一点,技术准备一定要做好!这点我做的不是很好,我个人负责的是测试部分,对于这方面的内容,我也是边学习边完成的。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
- 给下一届的建议,这方面的话可以参考我在上面写到的,首先关于团队项目选题,不要太复杂(dalao无视我);再者要做好技术准备,提前的学习是必要的;最后,团队开发中,沟通交流是非常非常非常重要的,如果没有沟通好,可能会导致像我们团队做的一些无用功!
- 关于换人机制是个不错的功能,但是我不是很喜欢,我在这个项目中付出一定的心血,却突然要到别队去,可能部分人会有点不适。另外我刚完成了团队的一些任务,突然被分配到其他组,还要在短时间内掌握这组的内容,可能还要学习其他新东西。这个有待仔细讨论。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 我觉得编程题全队是一个不错的团队。大家都能服从PM的安排和管理,在各自的岗位完成好分配的任务。在成员磨合过程中沟通交流,队员之间的默契度也慢慢地提升,最终把构想的大部分内容都实现了,自己也收获了许多,十分开心能够待在这样一个团队完成整个开发过程。
- 我们团队经历了萌芽,磨合,规范以及创造阶段。项目初期,只有一个大致的构想,大家还没有非常明确自己的目标,也不是很清楚自己的分工,所以进展较慢。经过了一段时间的磨合之后,对自己负责的以及其他人负责的就比较熟悉了,因为大家都着手于自己任务,所以前期的交流不是很多,之后出现了一些问题,这也使得我们之间的交流得到了进一步地提升,一般都能及时解决问题。当整个团队结构基本成型以后,大家都能完成每天规定的任务,形成一个较为规范的模式。最终我们也成功地把软件的大部分核心功能都实现并且发布了,有了一定的用户量。达到了创造阶段。
五、怎样证明你学会了软件工程?
5.1研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
除了我们的测试用户外,有13个实际用户体验过我们的软件。
5.2通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
博客园小黄衫作为Alpha阶段的PM助理和Beta阶段PM,时刻督促着成员的工作进度。
5.3并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
Gugua团队项目测试方面:https://gitee.com/Yanboooooooo/GuguaQA