一、请回望开学时的第一次作业,你对于软件工程课程的想象
对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 达到的目标:
我开学初的期望是在这门课学完以后,我可以对于一个项目的流程可以熟练掌握,也可以提高自己开发能力。对比目前我的所学所练和所得,我现在已经可以了解做一个项目的流程以及需要注意的一些事项 - 不足:
大概就是开发能力还是很一般,原因大概就是真的对代码没什么兴趣,花在上面的时间也很有限,所以提高的也非常有限。
知识积累还是不够多。
总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;
- 大概800行左右。
2)软工的各次作业分别花了多少时间?(做一个列表)
作业 | 所花的时间 |
---|---|
个人阅读作业1 | 2h |
个人阅读作业2——提问题 | 4h |
结对编程练习 | 25h |
团队组队&展示 | 1h |
案例分析 | 3h |
团队计划 | 4h |
需求分析与设计 | 5h |
Alpha阶段敏捷冲刺 | 80h |
展示博客 | 3h |
测试与发布 | 6h |
alpha阶段之事后诸葛亮分析 | 1h |
alpha阶段个人总结 | 2h |
敏捷冲刺(Beta阶段) | 40h |
软工个人总结 | 2h |
3)哪一次作业让你印象最深刻?为什么?
- 印象最深刻的非提问题莫属了,在做这个作业之前,我从来没有用几天时间把一本书反复看的经历,不仅要看,还要想着怎么才能提出比较有意义的问题,真的很难啊,有些问题虽然算是问题,但是真的很简单,所以就提了一些自认为没那么容易回答的问题,结果最后有一次作业是回答自己所提出的问题,手动再见。。。
4)累计花了多少个小时在软工上?平均每周花多少个小时?
- 累计大概花了178h在软工上,平均每周11.13个小时。
5)学习和使用的新软件;
- 微信开发者工具
6)学习和使用的新工具;
- 墨刀
- leangoo
7)学习和掌握的新语言、新平台;
- 新语言:js、wxml、wxss
- 新平台:微信开发工具
8)学习和掌握的新方法;
- 了解掌握了腾讯云的用法,还掌握了软件测试的要求与实现、掌握了NABCD需求分析等。
9)其他方面的提升。
- 我觉得经过这学期的软工学习,我的团队协作能力、时间分配能力和沟通能力以及抗压能力都有一定的提升。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 沟通最重要!良好的沟通是成功的一半,只有团队内部商量好如何分配任务以及说清楚存在什么问题,这样问题才会被解决。有一次我们团队展示博客忘记提交了,原因就是沟通方面出了问题,大家都以为是对方交了;
- 千万不要有拖延症!如果每次都把任务留到明天,最后的结果就是完不成计划,这也说明了每日例会的重要性,大家只有把进度放到明面上说,才可以督促大家。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
- 对于下一届的建议:
首先务必要有一门自己掌握的语言,不要什么语言都学一点,但是每一门都只是在入门阶段,这样真的很不好;其次,学会团队合作很重要,现在企业很多项目都是需要团队完成的,自己一个人进步很慢,团队合作中沟通也是比较重要的,队员之间要及时交流进度和一些想法;最后就是做好心理准备,你所接触到的东西很有可能是你之前从来没有经历过的,不要有畏难情绪,比如这个微信小程序,我们很多人都是没有开发经验的,但是我们都坚持下来了。 - 对于后人的期许:
软件工程这门课还是很有用的,认真学习,一学期坚持下来你就会发现自己学到了很多东西。 - 对于换人机制:
其实我依然觉得换人机制不是必要的,这个机制可以存在,但是不要强制每个团队必须换人,有的团队合作的非常愉快,为什么要强制别人换人?如果有的团队想换人,那就让他们私下商量好了,双方都同意了,那就可以换。所以我觉得换人机制实施形式可以改变一下,不要是强制,可以是自愿的。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
-
(1)萌芽阶段
这个时候我们团队刚成立,虽然说队员之间也都比较熟悉,但是我们没有在一起合作过,所以刚开始每个人的角色和职责都还不是很清楚,大家只是初步考虑要做什么项目。 -
(2)磨合阶段
在确定好做什么后,问题就来了,要怎么做?所以这个时候冲突是不可避免的,不过还好,我们大家态度都还不错,也都比较有责任心,所以我们最后尽最大努力把冲突和谐了,做到大家都满意的结果。 -
(3)规范阶段
如何解决问题这个已经解决了,我们需要的就是更加明确的流程和方式,就比如说编程规范,经过磨合阶段,团队已经合作的比较有默契了,所以最后PM明确分工,每个人要做什么,这样我们只需要把重心放在自己的任务上就可以了。 -
(4)创造阶段
经过前面几个阶段,我们已经有明确的目标,所以我们的注意力就是放在实现目标上面了,最后就是我们的微信小程序完成的还不错,在复审阶段也有得到老师和同学的夸赞。
五、怎样证明你学会了软件工程?
(1)研发出符合用户需求的软件,必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件,有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
- 需求分析与设计:https://www.cnblogs.com/net15/p/8782075.html
- alpha阶段敏捷冲刺:https://www.cnblogs.com/net15/p/8885324.html
- alpha版本展示:https://www.cnblogs.com/net15/p/9007606.html
- beta阶段敏捷冲刺:https://www.cnblogs.com/net15/p/9063175.html
- beta项目验收与总结:https://www.cnblogs.com/net15/p/9141575.html
(3)通过数据展现软件是可以维护和继续发展的。而不是找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
- 码云地址(README也在其中):https://gitee.com/zyjjj/babaka