软件工程实践总结作业
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
开篇博客中提到的课程目标:
期待通过这门课增强代码能力,积累一些项目开发经验,交到一些好朋友,养成程序员作息(233)。
代码能力方面,无论是个人、结对作业,还是后来的团队项目,都进行了大量(比以前多得多)的编码,对自己的代码能力有了不错的提升;
在团队项目中经历到了一个近乎完整的软件开发流程,可以说是一次难忘的经历了,算是积累了一些项目开发经验;
在结对和团队项目中,感受到了团队协作带来的好处,交到了厉害的好朋友;
队里大腿太多了,开发过程一路顺风,并没有过多熬夜的经历,这个目标算是失败了233。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
数独:300
部门学生匹配:1000
同学录:1200
Wonderland:700
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作 业 | 时 间(h) |
---|---|
软件工程实践2017第一次作业 | 1 |
软件工程实践2017第二次作业 | 7 |
结对项目——第一次作业 | 9 |
结对项目第二次作业 | 15 |
个人技术博客(α) | 5 |
个人作业——软件产品案例分析 | 8 |
团队项目 | 30 |
3、哪一次作业让你印象最深刻?为什么?
结对项目——第一次作业,原型设计挺有趣的,让我感受到不想做一个好美工的文案不是一个好程序员。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
累计花费 1 + 7 + 9 + 15 + 5 + 8 + 30 = 75 小时,平均每周 75 / 15 = 5 小时。
5、学习和使用的新软件;
Sublime Text
, Insomnia
, Wamp
, Mamp
等。
6、学习和使用的新工具;
Git
, Teambition
, Process
, Cmd Markdown
, 墨刀
等。
7、学习和掌握的新语言、新平台;
PHP
, MySql
, CodeIgniter框架
等。
8、学习和掌握的新方法;
各种测试和Debug的有效方法。
9、其他方面的提升。
- 团队协作;
- 代码Debug;
- Markdown语法;
- ...
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
团队:
- 遇到问题先尝试自己解决;
- 对应的文档要写好,便于交接;
- 及时完成团队分配的任务,对团队负责;
- ...
干货:
实例:
用Teambition
来管理团队开发进度非常便捷有效。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
软工实践是一个能在大学中磨练自己的不可多得的机会,你所经历的一切会为今后你的程序员工作生涯(如果你有这个想法的话)打下基础,从个人编码能力到团队协作能力都有提升。虽然最终得到的学分和自己的付出很可能不成正比,但是在学分之外的收获更有意义的多。
在团队项目中,每个人都是整个团队不可缺少的一部分,在自己的岗位上发挥作用,为项目的不断推进而努力。作为团队中的一员,就要对团队负责,积极主动的完成交付的任务。开发之前,要先做好人员分配和大致的项目进度规划,这样开发起来更有效率。在开发过程中遇到难题,要首先尝试自己搜索资料去解决,这样对自己解决问题的能力也是一个锻炼的过程。如果和队友遇到开发上的分歧,要尽早提出,讨论并解决,不要等到项目向前推进了之后再将其提出,第一时间解决分歧。
由于我所在的小组属于跨班组队,在整体项目进度上与本版其他小组有所不同,在换队员之前就完成了Beta版本的冲刺,所以很遗(qing)憾(xing)没有体会到换队员的经历。对于换队员这个问题,个人还是比较抵制的,还是将强制改为自愿交换较好。对于在一个小组中的所有成员,被交换的那个队员需要去别的组重新学习,融入别组的开发之中;而原组内的其他队员则可以继续顺利的开发下去,不用消耗时间在其他上面。相对来说感觉对于被交换的组员不大公平,而选择交换队员的方法又实在难以决定。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
1)萌芽阶段
团队组建初期,两次会议决定了我们的开发产品、人员分配和开发方式(语言、框架、开发模式等)。
2)磨合阶段
开始着手项目开发,由组长制定代码规范、Github规范,并给各个队员分配任务,进行第一次的并行开发,并总结了经验。
3)规范阶段
经过一段时间的磨合,大家对于开发流程渐渐熟悉了起来,顺利进入了Alpha冲刺阶段,团队开发的效率进一步提升,队员们的开发有了一定的创造性。
4)创造阶段
队员之间彼此熟悉,在Beta冲刺阶段各司其职,不在过度依赖于组长的领导,开发效率达到了巅峰状态。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
请在随笔中用数据证明上述内容或侧重选择之一。
1)研发出符合用户需求的软件
网站地址:[Wonderland] 4
用户情况:
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
项目规划:
Github部分提交记录:
Dev分支共计319次commit。
六、个性发挥,包括图文、照片和创意等
群内日常: