一、请回望开学时的第一次作业,你对于软件工程课程的想象
1.对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
达到的期待和目标: 通过实践,了解了做一个完整项目的必要流程,做一个项目的过程需要经过组队、需求分析、设计、构建、测试、发布、展示、在alpha阶段之后还要事后分析等等,每个流程都需要保持严谨的态度,最终才能完成一个“足够好”的软件。 在自己解决问题能力,编写代码能力方面达到了我的期许,目标是做一个完整的项目也达到了不足之处: (1)结对编程还是不习惯两人合作,当出现问题时候,表现得太强势了一点,队友的意见还是要有所肯定的 (2)作为团队的项目经理,感觉做得不是很好,在某些方面还是没有做好良好的沟通。任务分配方面交代得太泛,导致有些成员不清楚自己的任务。在加上自己同时在做后端的开发,没能顾得上团队成员之间任务的协调,导致进度偏慢。 (3)没有事先做好技术准备,在alpha阶段的前期一筹莫展,表示自己的拖延症很厉害,不到最后几天是不会有效率的... (4)对成员之间出现的分歧和不同意见处理得不是很好2.总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;
1500行代码左右
2)软工的各次作业分别花了多少时间?(做一个列表)
个人阅读作业1 | 结对编程作业 | 个人阅读作业2 | 团队组队展示 | 案例分析 | 需求分析与设计 | 团队计划 | alpha敏捷冲刺 | alpha阶段展示博客 | alpha阶段测试与发布 | alpha阶段项目复审 | alpha阶段之事后诸葛亮 | alpha阶段个人总结 | beta阶段敏捷冲刺 | beta阶段项目验收与总结 | beta阶段验收互评 | 软工个人总结 |
6h | 30h | 6h | 1h | 8h | 6h | 3h | 80h | 3h | 5h | 2h | 5h | 4h | 40h | 3h | 2h | 3h |
3)哪一次作业让你印象最深刻?为什么?
应该是alpha阶段的冲刺,因为一开始毫无头绪,焦头烂额的,花费了很多时间,加班的时间比较多,但同时收获也是最多的一次作业
4)累计花了多少个小时在软工上?平均每周花多少个小时?
目测210h是有的,平均一周15个小时左右
5)学习和使用的新软件;
Tomcat、腾讯云服务器、石墨文档、GitBash、lengo
6)学习和使用的新工具;
微信web开发工具、资源监测工具javaVisualVM、压力测试工具Jemeter
7)学习和掌握的新语言、新平台;
javaWeb开发平台,微信小程序环境平台
8)学习和掌握的新方法;
结对编程的过程体验,善于阅读资料并有自己独到的见解和看法,单元测试方法,软件的各项功能测试,需求分析的方法,了解了敏捷冲刺的流程
9)其他方面的提升。
- 提升了解决问题的能力
- 提升了互相沟通和交流的能力
- 有了团队的意识
- 责任心
- 抗压能力(面对bug没有那么慌张了,要收工的时候,突然出现bug的情况如下所示)
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
项目实践中的经验总结:
- 一定要说清楚团队成员各自的任务,在qq或者微信上容易被忽略,最好是面对面交流
- 编写博客的时候不要多个人同时编辑,容易造成其他成员保存的内容被覆盖
- 合理安排时间,千万不能拖,在alpha阶段的时候就是因为前期拖延症太厉害,导致后期狂奔赶进度就很难受了
- 一定要做好技术准备,否则一开始就会陷入迷茫的状态,会使团队整体的额进度变慢,而且大家会很沮丧,没有信心
- 出现团队矛盾的时候,要客观地分析,不能都有个人的感情因素去考虑,要顾及大家的感受
- 团队分工方面不够合理,表示后端开发人员的压力很大 总之,合作很重要,团队自信心要很重要,还有大家共同的信任
- 我们团队的侧重点在开发上,忽略了博客的评分要点,导致分数比较低。因为现实是只要博客写得好,不管项目做得好不好(只要不是太差),就能得个不错的分数
- 不管做什么,沟通很重要,把自己的想法、有什么意见和建议都要大胆说出来
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
对于大一我的建议:
尝试多与他人沟通,多阅读一些除了专业书之外的书籍,学习并不是唯一,它没有你想的那么重要对于后来人的期许: 好好学习专业知识,不要说自己不会写代码就不真的不写,不会可以学的。认真对待,会有收获和提升的。如果你都不努力一把,又怎么知道自己有多厉害呢?换人机制: emmm...如果按老师提到的那种招聘方式,可能大家只会图个热闹,最后该怎么换还是怎么换。最简单的还是吉祥物的交换,这样不管对新的团队还是原来的团队都不会那么麻烦。虽然这样换人的目的就没有太大的意义了,比如说原来是写博客的,那么只是换个团队写博客。换人其实是个比较麻烦的事情,大家组队一般都会找熟人、同班同学、舍友或者关系比较要好的人,所以肯定不能强制指定换谁。大家都想挖dalao,但是呢,一个团队走到alpha阶段结束是不会轻易地退出,换人可以根据角色来互换,以及考虑在原来团队中个人的贡献,互换的两个人贡献度相当就差不多。四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
四个阶段,分别为
- 萌芽阶段:组队完成,大家都不熟悉项目流程,都是一头雾水
- 磨合阶段:因为一些小问题会产生讨论,讨论到最后反而草草决定;出现分歧大家也是婆说婆有理,公说公有理
- 规范阶段:团队成员都清楚自己的任务,遵循代码规范,大家互相交流和帮忙,努力配合PM的工作,可以做出完整的产品
- 创造阶段:未达到 没有达到创造阶段,我们还没有能力做到那种阶段
五、怎样证明你学会了软件工程?
研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件 通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄 并且通过数据展现软件是可以维护和继续发展的。 而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料 从数据库即可查找到用户量: 发布的软件,微信小程序二维码见下图: 需求分析博客链接: alpha阶段博客: beta阶段博客: beta阶段项目验收和总结博客: git项目地址: