个人作业——软件工程实践总结&个人技术博客
这个作业要求在哪里 | |
这个作业的目标 | 完成软工实践的总结 |
作业正文 | |
其他参考文献 |
1.对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
在增强软件工程专业能力方面,基本达到了我的期待和目标。在刚开始,我对这门课程的预期是学完这门课程能够更好的掌握现有的技术,学习更多的web技术,更好的进行web开发。到现在,可以算是基本完成了我的目标和期待。得出这个结论的主要是基于我通过实践开发,对原有的技术确实得到了巩固,并且还有了新的认识。最重要的是在实践中学习到了一门新的技术--vue。在增强就业竞争力方面,我认为没有达到我的预期。在刚开始,我对这门课的预期是学完这门课程能够更好的进行团队开发,掌握更多的技术。得出这个结论的主要原因是在这次团队合作中,团队成员之间交流合作比较少,基本都是各自完成各自的任务。我的预期是能有更多技术上与实现上的交流。
2.你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能
和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
部分达到了预期值。在增长的能力方面和我预期的目标还有距离,因为感觉在团队合作方面还是不太满意。在增长的技术技能方面,基本达到了我的预期(并不是因为学的很好,只是因为预期低)。刚开始的绘制的学习路线图里面包含了很多种技术,其实我并没有全部掌握。认为达到我的预期主要是因为我并没有想把这些技术全部掌握,我的预期其实是学习其中的一两种(因为要准备考研,不太会花太多时间在这些上面),按照这个预期,我可以算达到了预期。
3.请总结这门课程的实践总结和给你带来的提升,包括以下内容:
-
统计一下,你在这门软件工程实践中,一共完成了多少行的代码;
大约2000-3000
-
各次作业分别花了多少时间?(做一个列表)
作业 花费时间 约6小时 约30小时 约10小时 约2小时 约10小时 约10小时 约10小时 约10小时 约8小时 约24小时 约50小时 约8小时 -
哪一次作业让你印象最深刻?为什么?
-
累计花了多少个小时在软工实践上?平均每周花多少个小时?
不计算上课时间和学习技术时间的话,大概就是上面表格的时间,178个小时左右。软件工程实践从寒假开始(1-20)到现在(6-15)持续了5个月,但其实有些周并没有课程,也没有布置作业。按照12周来计算的话,平均每周15小时左右
-
学习和使用的新软件;
idea,node.js
-
学习和使用的新工具;
postman测试接口,GitHub协作开发,xmind绘制思维导图,hbuilder打包发布,墨刀制作原型
-
学习和掌握的新语言、新平台;
Markdown,Android,vue
-
学习和掌握的新方法;
单元测试,组件化开发,前后端分离,接口测试
-
工程能力的提升;
开发能力提升,专业素养提升,测试能力提升,代码阅读能力提升,协作能力提升
-
团队合作上的提升;
团队协作能力提升,沟通能力提升
-
其他方面的提升;
信息搜索能力提升,学习能力提升
二、团队总结
1、 如果你是组长,你觉得你有哪些地方做的不够好的?有哪些地方做的好的?你觉得该怎么改进?(详细描述)
优点1:团队任务分配较为合理
优点2:队友之间关系较为和睦
不足1:任务开始时间不合理,团队成员本身水平较差,任务开始时间还安排紧挨截止日期,导致很多时候任务完不成。并且任务分配不和实际,beta阶段的任务安排是2天完成客户端,2天完成商家端,2天完成管理员端。结果是整个beta阶段都完不成客户端。
解决办法:合理安排时间,尽早启动任务,预留足够的缓冲时间
不足2:部分组员积极性较差、拖沓 解决办法:经常催促他们完成任务,给与他们鼓励
不足3:团队贡献度分配不合理,完成多的组员和完成少的组员贡献度一样 解决办法:多了解组员所做的工作,多看看GitHub记录,通过问卷方式收集所有组员对其他组员及自身的贡献度,并取平均值
2、 如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?
还算合理。尽量选能力强、管理积极性高的的作为组长。
3、 你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。
没有。我觉换组挺好的,能够锻炼团队的抗风险能力,也能够锻炼换组的人的适应能力。
4、 分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)
我认为并没有到达创造阶段,应该处于磨合阶段。
三、人月神话
1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
-
研发出符合用户需求的软件。
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件。
未达成,因为我们团队的项目没有打包发布
-
通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
未达成,因为我们团队的项目虽然说基本实现所有功能,但是离“足够好”还有距离,因为还有部分功能没实现,还有部分界面的确是胡乱拼凑出来的
-
并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
这个可以算达成度最高的。代码都能编译,只要配置好环境基本的运行还是可以的。然后项目也有接口文档,代码注释也有,应该能保证维护者看懂项目结构。
2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,文字部分字数要求在100字以上,可以使用你自己喜欢的方式表达(如图文结合、视频)
第一点是不要随意复用别人的代码。并不是说别人的代码都不能使用,而是使用的时候要理解代码的含义。我们团队上次alpha冲刺失败的主要原因就是有一部分队员思想上总是想着找一个类似的项目,然后复制他们的成果,这样界面做的又好,时间花的还少。然而实际的结果就是各个页面错误一堆,要修改一些地方的时候都不知道修改哪里,甚至连页面之间的跳转都无法实现。在beta阶段其实也出现了,所以在项目里面可能会发现其实页面没什么东西,但是import了很多东西,冗余无用的代码很多,并且还要安装各种插件。所以不要在看不懂情况下复用别人的代码,因为会导致很多问题。
第二点是不要一遇到问题就问队友。团队成员之间的沟通是非常好的,但是也要避免过度的沟通。有些问题其实百度一下马上有教程,自己看一下其实就理解了,没必要一直问队友怎么做。因为你问队友,队友就要停下手中的开发工作,花一个小时两个小时为你解答,原本只是耽误一个人的开发工作,现在变为两个人。当然,你如果实在不会,看了半天教程一头雾水的话问队友是完全没有问题的,团队成员之间的合理的沟通能促进项目的前进,你如果卡在某个地方一两天了,耽误两个人一两个小时解决对于项目进度的推进是有帮助的
第三点是对于一些约定的东西修改一定要和队友交流沟通。在alpha阶段,我是负责后端的servlet的编写。一般来说pojo类和数据库中的表对应,但是负责pojo类的编写的队友却没有这么做,原本orderitem里面包含的是orderid,他将orderid改为了order类。原本order里面包含的是orderitemid的列表,但是改为了orderitem类的列表,导致后面卡了一两天,因为订单信息用json储存一直打印不出来(目前还不知道原因,可能是order类里面包含orderitem类,然后orderitem类里面又包含order类?)后来改为和数据库对应后打印无问题。
四、建议
1.对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。
希望能够好好学习每一门语言。因为C语言是其他语言的基础,学好C语言对其他语言的学习也有帮助。多动手,多编程,不要到考试的时候临时抱佛脚,因为这样掌握的不够扎实,很容易眼高手低和遗忘。
2.对于软工实践课程,你有哪些建议?
-
希望能够有两次选题机会。因为做开题报告的时候被批的很惨,老师助教们提出了很多问题,我觉得挺有道理的。但是没有机会更改选题了,只能按照原来的选题继续下去,这算是比较遗憾的一件事情。希望能够有两次选题机会。
-
换组其实可以不是随机的,而且可以提前点。我觉得应该把实力强的小组的抽一个实力强的组员换到实力弱的小组,这样平衡一下每个组的实力,否则有些组可能实力比较弱,每次作业都完成的不理想,就没啥动力。
3.对于助教工作,你有哪些建议?
希望助教在有时间的情况下能够多分享写技术,感觉很有用
4.对于自己今后,你有哪些建言?
脚踏实地,勇往直前
五、个人技术总结
概述:如何使用vuex