一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 一开始我的目标是希望在这门课上能够学习到更多的知识,能够自己开发出一款让自己满意的软件,学到实质性的东西。对比目前的所学所练所得,学习到了很多新的知识,实质性的东西,但是开发出来的软件还没有令自己满意,开发过程中每个功能点都要学习然后研究,经常会出现各种卡壳,能力和时间的不足,最后出来的产品并没有达到最初预想的效果。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
- 差不多1500左右
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 时间 |
---|---|
第一次个人作业——准备篇 | 3h |
第二次个人作业——数独 | 32h |
团队作业——团队展示 | 2h |
第一次结对作业——原型设计 | 12h |
团队作业——选题报告 | 7h |
第二次结对作业——匹配算法 | 20h |
团队作业——需求报告 | 10h |
团队作业——同学录 | 5h |
团队作业——Alpha冲刺 | 15天 |
团队作业——事后诸葛亮 | 4h |
第三次个人作业——华为云软件评测 | 10h |
团队作业——beta冲刺 | 7天 |
第四次个人作业——软件工程实践总结 | 2h |
3、哪一次作业让你印象最深刻?为什么?
- 让我印象最深的应该是Alpha冲刺,因为是第一次进行软件开发,不断遇到各种瓶颈,从一开始的框架搭建,再到后面的各种编码,感觉每一个过程都非常得漫长,每天花了很多时间在查找资料上,试了很多方法,但是经常都是无用功。在Alpha阶段的时候,有穿插着考试以及金工实习,每天都是熬夜早起,但是有的时候时间的花费和你完成的东西却根本不成正比,心理落差是很大的。当时每天本来应该在github上关闭的issue很多都没能完成,看着deadline越来越接近,但是项目的进展却越来越慢,就TAT。
- Alpha阶段越来越平缓的燃尽图
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
- 每天的话花费四五个小时以上吧,如果平时没课以及周末的话花费的时间会更多,感觉没法估计具体时间。
5、学习和使用的新软件;
- AS,IDEA,墨刀,xmind,staruml
6、学习和使用的新工具;
- processon,燃尽图生成,VS单元测试工具
7、学习和掌握的新语言、新平台;
- java,github
8、学习和掌握的新方法;
- 需求分析,spring mvc框架,原型设计
9、其他方面的提升。
- 了解了一个软件开发的基本流程,编码能力有一定的提升。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 个人:遇到不会的东西就要各种查,用力查,不要一解决不了就停滞,这样会越来越拖。
- 结对:两个人之间要有良好的沟通和交流,这样才可以促进结对项目的完成
- 团队:团队项目在每个阶段都要有良好的规划和任务的分配,在一开始的时候,我们团队在任务分配方面没有特别明确,某块功能卡壳的时候所有人都一起卡住了,会有迷茫的状态,导致项目的进展就特别缓慢。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
- 软工实践虽然累,但是收获的却是之前所有的课程比不了的,对于个人的能力提升也是非常大的,非常值得每个人都去实践一下。在每个阶段都要有规划和安排,要不然会出现各种迷茫状态,不知道自己该干什么,遇到困难的时候要及时解决,虽然在一开始需要花费大量的时间和精力,但一旦困难解决,得到的东西都是自己的。
- 中途换队员是每个团队都会经历的,但是对于我们的课程来说,就我们团队而言,我觉得换队员是没什么必要了,毕竟公司里的专业团队都有开发经验,而且他们的时间都很充裕,而我们现在还是学生,时间相较他们专业的来说并没有那么多,换队员意味着队员需要重新去熟悉新团队,又要去学习一些原团队没有的新知识,在原本就紧张的时间里扣除这磨合的时间,剩下的时间就所剩无几了。然后我们组新成员并没有参与任何东西,就跟团队成员减少了一个没差,所以对中途换成员这种措施更没有什么好感。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 团队发展有4个阶段,分别是萌芽阶段,磨合阶段,规范阶段和创造阶段。
- 萌芽阶段:团队刚刚成立,职责和角色还没有区分
- 磨合阶段:团队成员开始磨合,抒发自己的想法,有了更多交流
- 规范阶段:团队分工开始清晰,知道了自己的职责以及工作流程
- 创造阶段:还处于初期阶段,基本功能实现
五、怎样证明你学会了软件工程?
- 软件实现了基本功能
- alpha冲刺阶段和beta冲刺阶段都有规划,在github上有commit源代码,每天有相应的冲刺记录博客。