一、请回望开学时的第一次作业,你对于软件工程课程的想象
1、对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
-
达到的期待和目标:通过软件工程这门课,我学会了结对编程,以及团队协作的能力,不仅开发出了安卓的小程序,还积攒了一定量的用户群体。
-
不足:在代码规范方面做得不是很好,比较随心所欲。
2、总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;
- 大概500到800行左右。
2)软工的各次作业分别花了多少时间?(做一个列表)
作业 | 所花时间 |
---|---|
个人阅读作业1 | 2h |
结对编程练习 | 20h |
个人阅读作业——提问题 | 3h |
团队作业1——团队组队&展示 | 2h |
个人作业3——案例分析 | 4h |
团队作业2——团队计划 | 4h |
团队作业3——需求分析与设计 | 10h |
软工网络15Alpha阶段敏捷冲刺 | 56h |
团队作业5——测试与发布 | 4h |
团队作业6——展示博客 | 2h |
alpha阶段项目复审 | 1h |
团队作业7——alpha阶段之事后诸葛亮分析 | 2h |
个人作业4——alpha阶段个人总结 | 2h |
团队作业8——敏捷冲刺(Beta阶段) | 56h |
团队作业9——项目验收与总结 | 2h |
beta版验收互评 | 1h |
3)哪一次作业让你印象最深刻?为什么?
- 印象最深的是alpha阶段的团队展示。因为通过第一次的展示,我看到了很多别的团队的创意和努力,也看到了自我的缺陷和不足。
4)累计花了多少个小时在软工上?平均每周花多少个小时?
- 累计148小时,平均一周9.25小时。
5)学习和使用的新软件;
- 安卓开发软件。
6)学习和使用的新工具;
- 磨刀、石墨、leangoo。
7)学习和掌握的新语言、新平台;
- 安卓与java的编程语言大同小异,并无新语言。新平台的话有一个讯飞语音平台。
8)学习和掌握的新方法;
- 协作编程的方法以及单元测试。
9)其他方面的提升。
- 编程能力的提升、合作交流的提升。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 在结对之前,一定要分配好每个人的任务,不然会出现有些人做的事情多,而有些人相对轻松的状况。
- 认领完任务一定要在规定的时间内完成,否则整个团队的进度都会变慢。
- 遇到问题要相互讨论解决,团队的力量远远大于个人的力量。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
- 对于下一届,我的建议是要多动手多看书,只有自己亲身参与其中,才能有所收获。
- 对于换人机制,我觉得对换走的人不是那么友好。新人还要花时间去了解精通新团队的作品,也是要多花很多时间的,对于他们,应该有更多的福利政策。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
-
团队合作的几个阶段:萌芽阶段、磨合阶段、规范阶段、创造阶段
-
我们团队达到了“创造阶段”,成功发布了软件。
五、怎样证明你学会了软件工程?
1、研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
2、通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
3、并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
- 我们团队成功发布了软件,并且有一定量的用户群体。
- 通过leangoo、码云等一系列工具,有计划有进度的完成了计划。
- 详情参考团队博客:https://www.cnblogs.com/5s-5l-704/p/9126845.html