个人作业——软件工程实践总结作业

软件工程实践总结作业

一、请回望暑假时的第一次作业,你对于软件工程课程的想象

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是个好东西,强推;
  • Git指令的学习,看这个就够了 -> 膜西瓜学长
  • 一份比较完整的Markdown教程 -> Markdown
  • ...

实例
Teambition来管理团队开发进度非常便捷有效。
Tb


三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?

软工实践是一个能在大学中磨练自己的不可多得的机会,你所经历的一切会为今后你的程序员工作生涯(如果你有这个想法的话)打下基础,从个人编码能力到团队协作能力都有提升。虽然最终得到的学分和自己的付出很可能不成正比,但是在学分之外的收获更有意义的多。

在团队项目中,每个人都是整个团队不可缺少的一部分,在自己的岗位上发挥作用,为项目的不断推进而努力。作为团队中的一员,就要对团队负责,积极主动的完成交付的任务。开发之前,要先做好人员分配和大致的项目进度规划,这样开发起来更有效率。在开发过程中遇到难题,要首先尝试自己搜索资料去解决,这样对自己解决问题的能力也是一个锻炼的过程。如果和队友遇到开发上的分歧,要尽早提出,讨论并解决,不要等到项目向前推进了之后再将其提出,第一时间解决分歧。

由于我所在的小组属于跨班组队,在整体项目进度上与本版其他小组有所不同,在换队员之前就完成了Beta版本的冲刺,所以很遗(qing)憾(xing)没有体会到换队员的经历。对于换队员这个问题,个人还是比较抵制的,还是将强制改为自愿交换较好。对于在一个小组中的所有成员,被交换的那个队员需要去别的组重新学习,融入别组的开发之中;而原组内的其他队员则可以继续顺利的开发下去,不用消耗时间在其他上面。相对来说感觉对于被交换的组员不大公平,而选择交换队员的方法又实在难以决定。


四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

1)萌芽阶段

团队组建初期,两次会议决定了我们的开发产品、人员分配和开发方式(语言、框架、开发模式等)。

2)磨合阶段

开始着手项目开发,由组长制定代码规范、Github规范,并给各个队员分配任务,进行第一次的并行开发,并总结了经验。

3)规范阶段

经过一段时间的磨合,大家对于开发流程渐渐熟悉了起来,顺利进入了Alpha冲刺阶段,团队开发的效率进一步提升,队员们的开发有了一定的创造性。

4)创造阶段

队员之间彼此熟悉,在Beta冲刺阶段各司其职,不在过度依赖于组长的领导,开发效率达到了巅峰状态。


五、怎样证明你学会了软件工程?

1)研发出符合用户需求的软件

​ 必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件

2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

​ 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

3)并且通过数据展现软件是可以维护和继续发展的。

​ 而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料

请在随笔中用数据证明上述内容或侧重选择之一。

1)研发出符合用户需求的软件

网站地址:[Wonderland] 4

用户情况

User

2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

项目规划

Tb

Github部分提交记录

Dev分支共计319次commit。

Git


六、个性发挥,包括图文、照片和创意等

群内日常:

end


End

posted @ 2017-12-27 18:32  Skxz  阅读(228)  评论(1编辑  收藏  举报