一、请回望开学时的第一次作业,你对于软件工程课程的想象
1. 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 最初我以为这门课只是一门以编程为主的课程,经过这一个学期的学习后,发现自己错了,软件工程这门课不仅是简单的让人去编程,而是实际体验一把在以后的工作时如何进行一个项目的开发。在alpha与beta两个阶段我大致了解了一个项目的开发流程,以及如何与团队中其他成员一起进行开发,可能不足的地方就是由于产品迭代次数少,自己在团队中担任角色有些单一,没有尝试做过PM,可能是这次软工比较遗憾的地方。
2.总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;
这门课中完成了378行代码
2)软工的各次作业分别花了多少时间?(做一个列表)
作业 写博客时间 写代码时间 软工网络15个人阅读作业 2小时 0小时 软工网络15结对编程练习 2小时 8小时 软工网络15个人阅读作业2——提问题 2小时 0小时 软工网络15个人作业3——案例分析 1.5小时 0小时 个人作业4——alpha阶段个人总结 1小时 alpha阶段每天都有写已经记不清用时多久了 个人作业5——软工个人总结 2小时 0小时
3)哪一次作业让你印象最深刻?为什么?
alpha冲刺阶段的个人总结吧,因为是第一次接触到这种开发模式,很兴奋,感觉大家每天的努力最终都会得到一个好的结果。
4)累计花了多少个小时在软工上?平均每周花多少个小时?
个人作业累计花费时间18.5小时,平均每周花费5-6小时
5)学习和使用的新软件;
sublimetext编辑器
6)学习和使用的新工具;
git,燃尽图
7)学习和掌握的新语言、新平台;
主要接触的是python,以及flask框架
8)学习和掌握的新方法;
数据库方面的操作
9)其他方面的提升。
习惯与他人协同编写代码
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
在团队协同作战的时候,最重要的就是要分工明确,每天按时完成任务。在alpha冲刺阶段过程中,恰好我和另一位编写后端的同学有一门课要考试,由于分工明确,其他任务还是有条不紊进行,只是我们的后端需要在考完试后要把之前没完成的任务补上,最终没有耽误alpha阶段产品的推出
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
建议就是要牢牢掌握一门编程语言,可以自己单独写一些有趣的东西出来,这样学习软件工程这门课才不会吃力,否则边要学习一些基础知识边要进行开发工作,这样的话可能会很耽误时间;对于换人机制的话,我觉得大家不要抱着一种淘汰的态度,无论去到哪个团队中,努力做好自己的工作才是最重要的,无论自己是否被换出去,都要把自己的任务完成好
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
由于在alpha与beta阶段的两个团队中大家都非常熟,所以直接跳过了萌芽阶段与磨合阶段,团队成员之间彼此都很信任,并且大家都认真对待自己的任务;我们经历的阶段基本上就是规范阶段,与创造阶段。
五、怎样证明你学会了软件工程?
1.研发出符合用户需求的软件
- 必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保10-100个用户);而不是: 做没有用户使用的软件
2.通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
- 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
3.并且通过数据展现软件是可以维护和继续发展的。
- 而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
请在随笔中用数据证明上述内容或侧重选择之一。