一. 请回望开学时的第一次作业,你对于软件工程课程的想象
1. 对比开篇博客,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 开篇博客:http://www.cnblogs.com/ycll/p/8511827.html
- 这学期对于专业知识的掌握,自认为比起开学初更加全面了。一个学期的专业课下来,有不少收获。软件工程这门课,虽然不是很想上,但勉强学下来也有一些收获吧,在团队这方面。
- 不足的地方,可能就是代码能力进一步减弱了吧。虽然作为团队,我们是完成了一个小程序(我觉得我们的代码真的写的很好!前端和后端都写了很久,改了很多很多很多次),但就我自己而言,我没有任何的代码工作。这学期又学了很多网络专业知识,加上代码越打越少。
2. 总结这门课程的实践总结和给你带来的提升
-
这门课中完成了多少代码
团队作业中没有代码量,结对编程中有。因为JAVA代码比较繁琐,我负责的又是界面,所以代码量偏多。大概一千多行吧
-
软工各次作业所用时间
-
哪一次作业最印象深刻
除了项目验收的作业以外,每次作业都印象深刻。尤其是写了非常,非常,非常多的博客,根本忘不掉。还有好几次的作业,认真写了很多东西,但是不符合得分要求,导致个人作业得分不高。
强行来说还是Alpha阶段的个人总结印象深刻吧,当时因为一些评价和排名心里很不爽,就发泄了一通。当然,当时也说了不会改博客内容的,虽然是比较激动,但说的确实都是实话。多的抱怨就不说了,反正就是很印象深刻了,因为很气。 -
累计花了多少个小时在软工上,平均每周花多少时间
累计时间上面已经放了表了,大概90多个小时,平均下来每周差不多9个小时的样子。毕竟有一些是稍微放松的时间
-
学习和使用的新软件
微信开发者平台(虽然不是我在用)
-
学习和使用的新工具
在线服务器测试,微信端测试工具,leangoo,码云(以前有用,但是没有用很多)。视频,PS等......
-
学习和掌握的新语言,新平台
结对编程用的是以前就学过的JAVA,团队编程没有代码任务。所以没有学习到的新语言,只会个Java。学习到的新的平台是微信开发者平台
-
学习和掌握的新方法
团队合作......主要是在开会和沟通部分,把控整个团队项目的进度。
另外在整个团队项目进度上面,在服务器,数据库,后台,前端之间的各种关系,虽然不是我在做开发,但是在给他们之间的进度调整,讨论中也学到了很多。 -
其他方面的提升
写博客和打字速度大幅提升,这个应该算是提升吧???
可能还有就是总结归纳的能力更强了(废话也更多了)。沟通能力和时间把控都进一步提升了吧,什么事情优先做,什么事情要先放一下。开发过程中如果同时遇到了一堆东西,短时间内到底要先做什么,后做什么。
二. 写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
总结:很多时候,你做了什么不重要,重要的是你让别人知道你做了什么。
经验总结:做人还是要圆滑一点,会bb比什么都重要。虽然你什么都没做出来,但是只要会说,会写,0.1的东西都能写成100,努力这东西也是一样的。个人作业就不举例了,毕竟这个东西,我说我写的很认真,费了很多时间,但是呈现的结果就是不符合评分标准,那我也没办法。
用结对编程和团队来举例子吧。
结对编程,我们小组改代码吧......用的时间就不说了,我们不知道其他组的情况,所以不敢说我们比别人更用心。但是我们做出来的成品(或者说改进完的程序),从功能和界面上来说,自认为比一些小组的要好上不少,他们没有调整的界面,我们调整了;他们没有做出来的功能,我们做了。从程序上来讲,应该是不错的(也有可能是我们太自大了)。但是从得分上来说,却是少于其他小队。时间过了这么久了,我也不是想去争什么,况且本来就是毫厘之差,硬要去争取反而显得较劲。只是这里既然要总结一下经验和教训,那就总结一下喽。很多时候,你做了什么并不重要,重要的是你让别人知道你做了什么。
从团队编程来看的话,也是应了我上面说的,你得让别人知道你做了什么。另外就是写博客,按得分点写。一开始我的个人作业,写了很多东西,因为感想真的很多(我的废话也真的很多),但是最后得分低到无法接受。当然,结果是因为写太多了,找不到重点,找不到得分点。后来的团队博客证明了,我确实是要按分答题(虽然还是要暗搓搓的说一句,感觉跟八股文一样........)。我的团队博客写的还行,当然得分我还是有点意见(当然人也很怂,只敢在这里bb...)。只求助教给大家的开发成果做最后排名的时候,能够......不要只看大家写了什么......同学间的排名,准确度太低了,请务必,一定,结合码云代码来看...
三. 对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
对于开学初的我,emmmmmm这次的团队选择和组建还是比较合理的。整个项目进度,课程作业没有留下太多的遗憾和麻烦。一开始的时候可能会觉得很累,因为这门课上要花的时间太多了,那其实只是你不适应,不习惯这整个作业流程而已。习惯之后,虽然作业量还是很大,但是适应之后就会发现,做起来已经很快了。虽然很多同学都觉得写博客很废脑子,最浪费时间的。但是写博客也是一个很重要的技能,做了什么,一定要说出来。
对于换人机制,我觉得有意义,但是没什么作用。学生团队毕竟只是学生团队,有能力的人实在是太少了。各个团队之间最多就是互换个吉祥物,一方面不会伤害同学感情,另一方面互换个吉祥物也不会影响团队的整体进度。换个角度来说,就算是换的人有一些能力,但是融入新团队的时间稍微短了些,还没适应新的团队做的开发,第二阶段的冲刺就要结束了。
四. 分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽阶段,磨合阶段,规范阶段,创造阶段。我们团队基本上是从磨合阶段开始的,因为同学之间本来就比较熟,所以萌芽阶段算是直接跳过的。
一开始在Alpha阶段冲刺开始之前,我们差不多处于磨合阶段,前端和后端互相适应各自的开发习惯,解决一些比如git的存在bug。针对要开发的程序的功能,界面,用户使用之间的讨论和争论。我自己在这个阶段处于一种主要探讨的角色。和后端讨论开发的需求,协调前端做相应的界面,然后分配工作,大家各自认领,确认可以完成。
后来冲刺阶段,差不多我们就进入了一种比较规范的阶段。前端和后端之间已经可以自己进行讨论,针对他们之间开发的重合的部分,可以自己进行商量了。之间如果有大问题,或是沟通失败的部分,会来找我翻译一下这样的......
再往后面就是创造阶段了,大家都是集中精力在开发小程序上面。最后也确实把东西做出来了,我认为团队成员的发挥都非常好,就算是最后没有得到一个比较公正的评分......我也觉得团队成员都很努力。
虽然说骄傲自满不好......但是必要的鼓励和自我肯定是必要的。
我们的后端代码是自己写的,改逻辑改了很久,小型的bug改了一次又一次。一些功能因为需求不太明确,往往是要做出来之后看了效果才能确定是否要保留,所以后端也都一直在变动。图表部分的代码很难写,换了好几个库,还改了图表的源代码。可以说,虽然图表是直接调的库,但是因为需求不同,我们就差点是全部写了图表代码了。包括一开始普通的扇形图,还有困扰了好久的金钱燃尽图。
我们的数据库和服务器是自己搭出来的,空闲之余还帮了其他好几组同学搭建服务器,数据库的连接。
我们的前端代码自己做的,第一阶段和第二阶段界面完全不一样,前端改代码的同学就一个人。比起其他组不用考虑后端的问题,所有人都可以把所有精力都集中在前端上,我们的前端压力比较大。尤其是图表部分的调整,颜色,框架,都有很多bug,调了非常久。另外日历部分,另外一个组的日历其实和我们调用的是同一套模板,但是很明显他们的日历没有经过调整,直接就用了。我们的前端调整之后,还是可以说好看了很多很多的。(大家有兴趣可以看一下)
五. 怎样证明你学会了软件工程?
1. 研发出符合用户需求的软件
- 因为统计是每隔一小时的统计,所以空着的地方会比较多。因为6月7号是上一次做项目复审答辩的时间,所以没有统计那一天的数据。从8号到12号,我觉得这是一个还可以的数字了。在6月11号,能达到41个访问量,用户留存度还不错
2. 通过一系列工具,流程,团队合作,能够在预计的时间内发布“足够好”的软件
具体的各种进度,在前面的各类博客里都写过了,这边大概放个链接就好了
- 项目规划:http://www.cnblogs.com/Team-Blog/p/8733024.html
- 项目需求:http://www.cnblogs.com/Team-Blog/p/8783845.html
- 项目实现
- Alpha阶段项目实现:http://www.cnblogs.com/Team-Blog/p/8869481.html
- Beta阶段项目实现:http://www.cnblogs.com/Team-Blog/p/9049210.html - 项目发布
- Alpha展示:http://www.cnblogs.com/Team-Blog/p/8983806.html
- Alpha测试与发布:http://www.cnblogs.com/Team-Blog/p/8983672.html
- Beta项目总结:http://www.cnblogs.com/Team-Blog/p/9123399.html
3. 通过数据展现软件是可以维护和继续发展的
- 码云地址:https://gitee.com/SE-Tally/Tally
- readme中写了程序的基本情况
- 软件规格需求说明在附件中可下载
- 代码可下载,后端是python写的,需要有python环境才可运行