一、请回望开学时的第一次作业,你对于软件工程课程的想象
对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
回想第一次作业时,以为软件工程是每天学习如何开发软件,一些语言上的知识;学到现在才发现,软件工程是学习如何开发好一个软件,学习团队之间的合作,学习开发的整个过程。对比目前的所学所练所得,我学到了很多在团队中如何与队友进行配合,但是在开发方面还是有点欠缺。
总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;
大概四百行吧,在结对编程和团队博客中。
2)软工的各次作业分别花了多少时间?(做一个列表)
个人阅读作业1 | 个人作业2 | 结对编程 | 个人作业3 | 个人作业4 | 团队编程 | |
时间 | 6h | 1.5h | 13h | 2h | 1h | 30h |
3)哪一次作业让你印象最深刻?为什么?
个人作业4,因为迟交了,发现写在日记里不是随笔里没办法提交,忘记提交了。
4)累计花了多少个小时在软工上?平均每周花多少个小时?
没有编程任务时每周四小时吧,有编程任务时每周至少14小时了,累计也不好计算了。
5)学习和使用的新软件;
微信wed开发者工具,因为我们的团队变成做了个微信小程序,所以学习了这个。
6)学习和使用的新工具;
重新学习了如何使用码云,之前觉得很不方便来着。
7)学习和掌握的新语言、新平台;
学习了WXSS在界面布局上起到很大作用。
8)学习和掌握的新方法;
学习了UI的设计,知道了有些设计是反人类的,非常规。
9)其他方面的提升。
在界面设计上得到了很大的提升,初期的设计就不要太复杂,简洁明了才是王道。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
在团队项目的实践中,我明白了理想太丰满,现实太骨感的道理,很多时候我们想得很好,但是却难以实现就放弃了。本来我们的小程序在初期打算加入换肤的功能,因为时间紧迫的原因,在设计阶段就改成了日间模式和夜间模式,就是黑白的背景色,后来时间也是过于紧迫,我们取舍之下就之间删除了这个功能,在beta阶段也没有继续下去了。以及在需求分析的初期我们的杀手功能本来是在一定时间内弹出一条分析报告,分析该阶段的消费情况的总结,在alpha阶段并没有实现这个功能,后来在beta阶段,我们讨论了很久关于什么时候该弹出的这个一定时间,难以决定,最后就变成实时可以查看恩格尔系数并点击查看分析报告。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
对于大一的我,很抗拒学习,还没从放假的懒散中恢复过来,想对那时候的自己说,应该好好学习的,才能有扎实的基础。
对于换人机制,我认为没有必要每个团队都进行换人。我认为一些有意向换人的团队进行换人比较好,因为有的队员才刚适应好上一个团队的氛围以及代码规范这些,又要在时间极短的情况下进入下一个团队,首先要熟悉需求,熟悉队员,熟悉代码,熟悉另一个团队的代码规范,这里面需要耗费的时间太多了,我觉得这样会让同学们觉得有点辛苦。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
我觉得我所在的团队是一个很好的团队,每个人处理自己擅长的部分,不懂的就去学习,就去请教其他队员。在沟通方面基本无障碍,都在同一个宿舍或是隔壁宿舍,想讨论或者请教时很方便。
五、怎样证明你学会了软件工程?
我们这次团队项目做了微信记账小程序,已公开发布(iso用户无法使用,会卡死),实际用户有二十多人。在大半个学期内,我们通过团队合作完成了这个小程序,每个人在每个阶段都有明确的分工及贡献度,源代码存在码云内。
研发出符合用户需求的软件