一、请回望开学时的第一次作业,你对于软件工程课程的想象
1. 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 开篇博客我对这门课程的目标和期待是:
我希望学完这门课,我能够做到源代码管理、程序效能分析(单元测试等)、代码优化、团队合作、需求分析等。
- 经过了一学期的学习,两次敏捷开发,我学到了很多,在一个团队中找准自己的定位很重要,我学到了与队友分工合作,互帮互助;在一开始对于“需求分析”我们是真的不懂应该怎么开始,后来查了很多资料,在同学的帮助下一点点上手,到成功完成任务;我觉得代码优化,源代码管理这块做的不是很好,我们没有很注重这一块,希望还能有机会多学习。
2. 总结这门课程的实践总结和给你带来的提升,包括以下内容:
- 1)统计一下,你在这门课程中,完成了多少行的代码;
大概1600行。 - 2)软工的各次作业分别花了多少时间?(做一个列表)
作业名称 | 时间花费/小时 |
---|---|
个人阅读作业1 | 4 |
个人阅读作业2 | 7 |
结对编程练习 | 12 |
个人作业3 | 6 |
个人作业4 | 4 |
个人作业5 | 8 |
团队作业1 | 3 |
团队作业2 | 7 |
团队作业3 | 10 |
Alpha阶段冲刺 | 60 |
团队作业5 | 8 |
团队作业6 | 5 |
Alpha阶段冲刺之事后诸葛亮 | 4 |
Beta阶段冲刺 | 60 |
团队作业9 | 10 |
- 3)哪一次作业让你印象最深刻?为什么?
《团队作业2--团队计划》这次作业最印象深刻,因为这是我们团队第一次在一起讨论,由于我不在现场,所以我们组内是通过远程语音来讨论的,我身边没有电脑,还是特地跑到网吧去了(在网吧做作业,我也算是一朵奇葩了),当时讨论了很久,不过大部分都确定好了,还剩一些细节留到二天解决了。 - 4)累计花了多少个小时在软工上?平均每周花多少个小时?
大概208个小时,平均每周13个小时。 - 5)学习和使用的新软件;
腾讯云服务器、知晓云、码云、微信web开发者工具,51调查网 - 6)学习和使用的新工具;
微信web开发者工具 - 7)学习和掌握的新语言、新平台;
- 学习和掌握的新语言:WXML,WXSS,JS
- 新平台:微信web开发者工具
- 8)学习和掌握的新方法;
用码云管理源代码,单元测试,学会了需求分析的方法,了解了敏捷冲刺的流程,代码规范。 - 9)其他方面的提升。
团队合作的能力提升。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 项目前的需求分析非常重要,一定要仔细考虑清楚,再开始其他工作,如果需求分析做得不好的话,后面的编程开发将会遇到很多问题,因为不明确需求,中途还要再讨论,这就很麻烦,需求分析还要再改。
- 团队分工要明确,分工明确了,每个人认领自己的任务后,就能按照自己的安排循序渐进,如果不明确的话,中途就会有多个人在做同一件事,那么就浪费时间,进度也会减慢,同时多个人做同一件事应该采用哪一个人的东西呢?这也是一个问题。
- 代码规范很重要,还有注释。良好的代码规范和适当的注释,可以让团队其他成员能更好地解读代码,否则解读代码时要一个个问很麻烦还浪费时间。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
- 对于什么都还是新人的你,在一开始就必须要拥有的技能是融入团队,团队合作,不能只想着“我一个人就能搞定,还要其他人干嘛”,要知道很多事情都不是一个人能解决的。
- 要注重培养自己的专业技能和素养,有能力的人在哪里都是吃香的,一定要有自己独特的一面,但是不能搞特殊化,特立独行可是会被人孤立的。
- 希望学到的都是有用的,经历的不都是磨难。
对于换人机制,我认为并没有什么用处,对于处在这个阶段的我们来说,事实上很多团队换的人都是对团队项目无关紧要的人,也就是贡献分少的人,这对项目团队并没有影响,还有就是换的人看在同学或朋友的情谊上,随便关系好的团队都能接纳,要使团队里面所有人都关系很好,那么换人就很残忍,虽说以后社会中就是这样的,不看人情,但是我们还是学生,还住在同一间宿舍,不可能有那样的觉悟。我觉得换人机制没必要存在。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
构建之法中提到的团队发展有4个阶段,分别是萌芽阶段,磨合阶段,规范阶段和创造阶段。前三个阶段我们都有经历过,应该还停留在第三个阶段,第四个创造阶段我们还没达到。
萌芽阶段:一开始大家交流比较少,项目具体要做什么也不是很清楚。大家之前也都没有什么项目经验,显得手足无措。
磨合阶段:遇到想法不一致的时候,大家会聚在一起讨论,最终形成一致的意见。总的来说,我们组没有太大的矛盾与摩擦。
规范阶段:团队分工渐渐清晰,效率明显提升,代码不规范的地方也能及时指出并改正。
创造阶段:还没达到这个阶段。
五、怎样证明你学会了软件工程?
1. 研发出符合用户需求的软件
- 必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
-
用户量
-
项目二维码
-
2. 通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
- 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
- 项目规划 https://www.cnblogs.com/coolgirls/p/8728951.html
- 项目需求 http://www.cnblogs.com/coolgirls/p/8823909.html
- 项目设计 http://www.cnblogs.com/coolgirls/p/8823909.html
http://www.cnblogs.com/coolgirls/p/8869839.html - 项目实现 https://www.cnblogs.com/coolgirls/p/8996095.html
- 项目发布 https://www.cnblogs.com/coolgirls/p/9127612.html
- 项目维护 http://www.cnblogs.com/coolgirls/p/8996901.html
- 项目进度 http://www.cnblogs.com/coolgirls/p/8869849.html
https://www.cnblogs.com/coolgirls/p/9069893.html
3. 并且通过数据展现软件是可以维护和继续发展的。
- 而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料