软工个人作业5-软工总结

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

1.对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

开篇博客中我对课程的期待是“清楚软件开发的流程,参与软件开发,增强自己的动手开发能力”,对比目前自己的所学所练所得,已达到的目标:(1)清楚软件开发的流程(2)在以小组为单位进行软件开发的过程,学到了许多新的知识(服务器的配置、后端使用php语言进行编写),也成功开发出具有实际用户的小项目(3)与团队成员之间配合良好,具有较强的集体荣誉感
存在的不足:(1)在进行项目开发的过程中,遇到问题时,特别是代码敲不出来时,容易急躁  (2)对新的编程语言不够熟悉,经常因为一些细节问题出错,然后花较长的时间来解决。

2.总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;

  完成的代码在650行左右

2)软工的各次作业分别花了多少时间?(做一个列表)

作业名称 作业耗时(h)
软工网络15个人阅读作业1 3
软工网络15结对编程练习 16
软工网络15个人阅读作业2——提问题 6
软工网络15团队作业1——团队组队&展示 2
软工网络15个人作业3——案例分析 4
团队作业2——团队计划 2
团队作业3——需求分析与设计 7
软工网络15Alpha阶段敏捷冲刺 50
团队作业5——测试与发布 3
团队作业6——展示博客 5
alpha阶段项目复审 2
团队作业7——alpha阶段之事后诸葛亮分析 3
个人作业4——alpha阶段个人总结 5
团队作业8——敏捷冲刺(Beta阶段) 35
团队作业9——项目验收与总结 6
beta版验收互评 2
个人作业5——软工个人总结 4

3)哪一次作业让你印象最深刻?为什么?

  个人作业2-提出问题让我印象最深刻。老师的本意是想培养我们提问题的能力,但是吧,也要求至少要提出5个问题,当时通篇浏览了整本书,感觉说的都挺有道理的,这个作业当时于我而言,就是为了提问题而提问题。到后面经过alpha阶段的冲刺,再回过头去翻阅《构建之法》,对书上的一些观点确实不赞同,有自己的想法。

4)累计花了多少个小时在软工上?平均每周花多少个小时?
 累计花了155个小时在软工上,一共有15周,平均每周10.3个小时。

5)学习和使用的新软件;

  新软件:wamp(Apache+PHP+MYSQL)集成软件

6)学习和使用的新工具;

  微信开发者工具、墨刀、Process、Leangoo

7)学习和掌握的新语言、新平台;

  新语言:javascript、php
  新平台:腾讯云、微信公众平台

8)学习和掌握的新方法;

  新方法:敏捷开发方法、结对编程

9)其他方面的提升。

 (1)任PM期间,能较为合理地分配任务,协调分工,把握项目进度,调动团队成员的积极性
 (2)在遇到问题时,虽然会比较急躁,但不会轻易放弃,最终可以成功解决问题
 (3)团队协作能力,与队员配合较为默契

二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

俗话说“万事开头难”,在alpha阶段,敏捷冲刺中遇到的问题是最多的。首先就是要学习新的语言,如wxml,wxss,javascript,php等,刚开始“边学边做”的效率真的不高,项目总体进度缓慢。所以,建议在敏捷冲刺前,队员可以根据自身情况预留出一些时间来进行学习相关语言。其次,就是在后端连接数据库这一块耗费了太多的时间。在此之前,我们并未有将数据库放在服务器上的相关经验。在完成这一块时,也是走了不少的弯路。刚开始是放在本地的,后来又觉得数据库早晚得放在服务器上,就把它放在服务器上了。当时也是查了不少资料,网上的资料也是五花八门,关键还得看你的选择了,感觉这也是一种能力的培养吧!如果想节省时间的话,建议可以先把一些相关的经验贴整理出来,到时候操作的时候就比较简单。然后,就是在项目中可能遇到某个问题,然后就卡在那里了。在alpha阶段,在获取用户openid的时候卡了好久,说到底还是对微信小程序API文档不够熟悉,上面其实是有介绍如何获取的,而且一些参考书上也有相关参考代码。感觉是我们把问题想复杂了,一直认为要对它进行解密什么的,后来发现根本不用。遇到问题是很正常的,请不要慌,可以自己先找找原因,查查资料,实在不行可以询问做类似项目的小组是否遇到这样的问题,看看人家是怎么解决的,或者求助老师或助教。最后,就是做项目的时候发现时间根本不够用,你实际花费的时间远远超过你自己预估的时间。所以,还是要提高自己的效率的。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?

  • 对下一届实践的建议:(1)合理地安排时间。我们的课程安排是比较紧的,像我们大三下,一共有七门课。所以,在项目开发过程中,我们利用的往往是碎片化的时间。(2)写代码的时候一定要注意编码规范问题。就拿注释来说,在实际项目开发中,发现我们的队员并不喜欢写注释。但是,团队开发中,往往是每个人负责一个部分,比如一个人负责写前端,另外一个人负责后端以及前后端交互,那么在进行前后端交互的时候,这个人通过你写的注释能更快更清楚地理解你的代码,也有助于她更快地完成自己的工作。(3)端正自己的学习态度。软工还是要好好学的,认真做项目,整个过程下来收获满满。

  • 对于换人机制的建议:不要强制换人,有意愿换人的团队可以协商一下进行交换,没有意愿的话就不用了,不要为了换人而换人。

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

  • 萌芽阶段:大家忙着熟悉开发环境以及新的编程语言,对整个项目的实现没有太大的把握。
  • 磨合阶段:对于整个项目细节的修改,功能的增加等,经常会有不同的意见,这个时候,就需要征求所有小组成员的意见,根据“少数服从多数”原则,的最终得出一个答案。
  • 规范阶段:每个团队成员都能明确自己的任务,并积极完成自己负责的任务,同时也相信自己的队员有足够的能力完成她们的任务。小组成员编写代码(符合制定的编码规范),最后整合所有代码,测试发布,收集用户反馈。
  • 创造阶段:尚未达到,还未达到“高度自治”的境界,还是需要PM的领导及介入。

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

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

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

  • 由图片可以看出,我们的“滴卡录”小程序在6月2号发布之后,3天后还是有一定的用户量的。

  • 小程序二维码

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

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

团队计划
需求分析设计
Alpha阶段冲刺集合
Alpha阶段测试发布
Alpha阶段展示
Beta阶段冲刺集合
Beta阶段验收与总结

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

  • 而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料。
    源代码
    README文档
    代码编译运行
posted @ 2018-06-17 10:01  KeZhiQing  阅读(228)  评论(0编辑  收藏  举报