个人作业收官——软件工程实践总结

个人作业收官——软件工程实践总结


一、课程回望

1.对比现在的你和开学初博客开篇的课程目标和期待。

目标回顾

  • 找到自己喜欢的方向(纯小白一只),学到真正适合自己的技术,与他人合作的过程中不拖后腿。
  • 合理的安排时间(重度拖延症患者),希望能够改掉这个坏毛病,能够平衡大三这么多门课之间花费的时间。
  • 学会和他人合作,只有大家一起成功才是真的成功。
  • 自己可以编写一些小小的软件

期望回顾

  • 希望我们的项目可以有条不紊的进行,而不是一直拖到最后开始熬夜赶工,慢工才能出细活。在项目的编写过程中,自己可以为整个团队注入一股洪荒之力。
  • 学会修改bug,最头疼bug这个大恶魔了,消灭他,才能前进。
  • 开扩自己的思维,学习别人的思考方式,学会团队合作。

我与目标的距离

  • 没有达成做app的小目标(我们组做的是服务端的web)
  • 之前就有稍微学习过html的内容,这次我还是负责的是前端的部分,不过与之前相比,懂得了更多,现在算是会了一丢丢的js,还知道如何和后台编码人员共同合作。
  • 关于时间拖延症问题,实际上还是有的,但是没有拖团队的进度,感觉自己棒棒哒。

期望值,我做到了吗?

  • 在我们的PM的合理安排下,我们的项目一直都在前进,没有出现直到最后一刻才开始赶工,我也按照PM的安排,有条不紊的进行着编程
  • 在实践的过程中遇到了,各种各样的bug,查找原因,有很大的一部分都是对知识的不熟悉,掌握的不全面,但是在队友的帮助下,更牢固的掌握了知识,正在逐渐的能够自己修复一些bug
  • 团队合作,不得不说,我加入了一个完美的团队,大家分工明确,互相配合,没有怨言,PM更为值得表扬,为我们团队付出了很多的心血。

2.软件工程实践带来的提升

第一次接触php,对php完全不知的我,刚开始完全不知道应该如何入手,在掌握php工具的队友帮助下,get到了很多工具和软件

学习和使用的新软件

  • 关于博客
    > a.博客园的了解
    > 好处: 多了一个可以查找信息的渠道,而且可以记录自己的成长历程
    > b.markdown编辑器的用法
    > 软件推荐:Typora
  • 关于php

    知道了php的作用
    php编写程序的软件
    sublime编辑器
    phpstorm

  • gif的制作软件

    gifCam.exe

学习和使用的新工具

  • Github的使用
  • shadowsocks

    这个软件真是太便利了,打不开github,打开它,神奇的事情就出现了,秒进github

  • php的知识

    php代码,看懂一丢丢
    php代码如何测试

  • 单元测试

    Qunit
    QUnit是一个强大的JavaScript单元测试框架,该框架是由jQuery团队的成员所开发,并且是jQuery的官方测试套件。Qunit是Jquery的单元测试框架,并且被广泛使用在各个项目中。

学习和掌握的新语言、新平台

  • javascript,ajax还是半吊子,还有很多值得学习的
  • 浏览器的控制台,可以快速的找出问题所在之处

软件工程实践中,完成了多少行的代码
-查看了github上面commit记录,再根据很多都是照着学长的模板进行更改的原因,大概写了3500行的代码。

学习和掌握的新方法

  • 查看同班同学的博客,发现各种有趣的事情,看到别人的想法,对比自己的想法,感觉又进步了一点点了呢。
  • github很好用哦,在上面可以找到很多你想要的东西

其他的提升

  • 不得不说,做软工项目,真是培养耐心的好方式,遇到各种各样的bug,都要尝试各种方式去解决。
  • 找到了兴趣,结束了软工实践之后,偶尔还是想要敲一敲代码,编程能力得到了提高
  • 和队友有了革命情谊了呢

二、写下属于自己的人月神话——项目实践中的经验总结+实例/例证结合的分析

关于文档

在真正的开始编码之前,软工的很多作业都是关于文档类的,需求说明书(包含了各种流程图)等等,但是在真正的编码过程中,我完全没有再次去翻看文档,但是也编码的好好的,所以我没有体会到文档的重要性。

增量式开发

我们共有两轮开发,我们组在Alapha版本发布的时候,其实已经实现了毕设导师互选系统的实现,因此整个队伍都是很有信心的,这对我们Beta版本的冲刺带来了动力,大家一起编程,一起为我们的系统完善,都是充满干劲的。

关于沟通

前期的时候,团队作业都是大家一人负责一个内容,没有进行足够的沟通,经常出现各种牛头不对马嘴,PM对任务完成情况的不满意,但在alapah冲刺的最后一天,大家一起在活动室编程了整整一天,面对面的交流,那天的效率是整个alapha冲刺过程中最高的,因此,只有足够的沟通,才能实现创造。

关于进度

  • 站立式会议第一天,我:“还在学习php,还没有开始编码”,初学前端队友:“正在学习html,还没开始编码”
  • 站立式会议第二天,我:“还在学习php,还没开始编码”,初学前端队友:“正在开始学着编码”
  • 站立式会议第三天,我:“还在学习php,还没开始编码”,初学前端队友:“一个页面快要完成了。”这个时候,我才发现我这几天完全都没有进度,再这样下去,冲刺十天的时间,都快要结束了,而我还是一点进度都没有。
以上,我觉得团队开发项目,必不可少的就是要进行站立式会议,不仅是沟通的一个好方法,在会上可以进行的提出自己在编码过程中遇到的各种问题,寻求队友的帮助;还是督促自己抓紧进度的动力,当你发现队友都已经完成了不少东西,而你却还在原地踏步,会产生一种羞愧感,看到别人一直在前进,难道会让自己成为最后一名吗?

三、对下一届实践的建议。

  无论你是喜欢编程或是讨厌,我都推荐你要选择软工实践,软工实践是一门很神奇的课程,如果你选择了张栋的软工实践,那么你会发现这真的上的是软工实践课,而不是写博客的课?
  刚开始,你应该会很讨厌写博客,毕竟我们是理科生,文采没有那么的好,你常常会发现不知该怎么入手,但是随着时间的推移,你开始觉得得心应手,每次写博客,都可以写上几千个字,当你回顾你所写过的博客,才会发现原来我做过这么多的事情,记忆是会忘却的,但是文字是留存的。当你回首博客,你会因写博客而感到欣慰。
  接下来,来说说编程吧。很多人会说,我编程能力不好,我不要选择软工实践课,那为何不提高自己的编程能力呢?这绝对不是一门纯技术的课程,上面说了,这是一门专业写博客,记录生活的课程,等到真正需要编程的时候,实际上,这门课也快要结束了。那么,你完全可以利用前半学期的时间,来学一门技术。
  也许你会听说,这是一门很坑的课,你会不得不熬夜,时常见到福大的日出,时常翘课?不,这个课并没有那么可怕,很多时候通宵达旦是因为拖延惹的锅,只要做好合理的规划,完全不用如此。
  人生因为挑战而精彩,快来体验软工实践的魅力。
  

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?

萌芽阶段

刚开始,我们的队伍就只是互相知道对方,但在之前的过程中没有什么接触,但是大家可能都是自来熟吧,在开会的时候,气氛总是很欢乐,但是说实话,那时候都是在聊天,并没有在做什么跟软工有关系的话题,哈哈哈。

磨合阶段

在我看来,我们的磨合阶段,应该是长时间的。
1.确定软件产品的过程,一开始的时候,男生想要做比较教务性的系统,但是组里有一个成员,觉得这种东西真是太无聊了,她想要做比较有趣味性的产品,例如:宠物养成,但是男生可能没有办法理解这种女生的小游戏,最后通过投票,还是确定了,教务性产品。但是在散会之后,由于种种原因,PM紧急又召开了会议,其中各种分歧,就不一一说明了,最后采用的是泽中的方式,就是我们的赏金猎人,既有动漫元素,又有校园气息的app,令我印象尤为深刻的就是那天的夜晚,活动室通明的灯光。
2.确定原型,系统设计也是种种分歧和冲突不断,首先,就是粗心的队员和强迫症的PM,队员觉得差不多了,可以了,但是PM总是会挑出各种毛病,要求队员进行更改。//好像变成了吐槽

规范阶段

自从确定了我们的产品,大家就开始有条不紊的开展自己的进度,刚开始的时候,还有拖延症的我,时常被PM催促进度,后来慢慢的就变成了主动编码,虽然没有提前完成任务,但是至少没有拖延进度。遇到问题,大家也会在群里互相提问,回答,还会发各种链接分享大家一起学习。

创造阶段

应该说从Alapha版本的后半阶段开始,我们就进入了创造阶段,应该大家开始进度快了起来,尤其是得到了一起编程的乐趣,在Beta版本冲刺阶段,我们有四天一起在活动室里面编程,每天的时间都有6个小时以上,往往到后面大家沉迷编程,不愿意回去,PM就开始询问我们要什么时候回去,看到大家专心致志编程,PM也不忍心督促我们早点回去,这才是让我们能够在Beta版本后阶段轻松的原因。

总结

可能大概很多人都会觉得我们组的成员多数都是有过项目经验的人,或者是西二的成员,但是事实上我们这次做的系统都是之前没有接触过的东西,我们组里只有两个人是会php的,其他人都是比较擅长安卓的,而我更是小白一名,毕设导师系统的成功实现,其实是因为我们都有一个目标(自助餐),即使是从0开始学习,也是充满干劲,其中也寻求了各个方面的帮助,所以我觉得技术强并不是软件产品成功发布的原因,更重要的是热情,一个团队因为同一个目标走到一起,因为同一个目标,一起成长,因为同一个目标,一起奋斗。

五、论文读后感

Code quality analysis in open source software development

代码开源

现在很多代码都是开源的,对前端来说,当你看到一个感觉不错的网站,都可以查看它的源代码,试着自己写出类似的网站。还有很多代码可以通过Github上找到,虽然很多下载下来都是不能用的,但是可以从中找到解决自己问题的方法,我觉得代码的开源是帮助程序员进步的一大里程碑。但是在这种便利的条件下,我们要做的就是如何提高源代码的质量。

代码的规范性

通过一学期的学习,我觉得我的代码规范性有了一定的提高,从当初结对编程,写的代码都是要亲自告诉队友哪个变量是什么,到后面团队编程,队友可以看懂自己代码,我觉得代码规范性,作为一个程序员必须要注意的事情,毕竟你不可能一个人完成项目的所有工作,只有通过代码规范性,对自己进行约束,才能成为更好的程序员。

六、学会软件工程?

1.研发出符合用户需求的软件

我们做的是毕设导师互选系统,这个系统是由真正的客户提出的,面向数计全体师生,每个学生都要选择毕设导师,那么以前的方式都是通过人工收集的过程,耗用了大量的人力,而且学生对导师的了解度不够,很多都是随便选择,另外导师没有自主选择学生的权利,都是通过系负责人通过一个神奇的算法进行分配,这是很不智能的,所以我们这个软件充分考虑了客户的需求,将所有线下的步骤,全都提到线上来进行,充分体现了客户的需求,简便了整个毕设导师选择的过程,更加的公平公正公开。
只要学院愿意使用,整个学院的师生都将是这个系统的用户。

2.通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

  • 与客户面对面的交谈,充分了解客户的需求,进行多次的需求确认
  • 编写需求分析说明书,再次与客户确认需求
  • 确认无误,进行原型的设计(Axure)
  • 体系结构的设计(代码规范性,编程软件的统一)
  • 正式开始编码

a.制定项目时间计划表
b.人员分工明细
c.站立式会议
d.代码的整合(github)

3.通过数据展现软件是可以维护和继续发展的。

写代码的大部分时候都是想到什么写什么,也没有前后端分离很明确,接口就只是使用了一点点,接触接口是在编码快要结束的时候开始学习的,发现使用接口增加了软件的可扩展性,修改的时候就不用重构,可惜前面的大部分代码都不是使用接口,虽然对前端来说,写接口很多时候会比不写接口增加了很多的代码量,但是要修改功能的时候,可是非常好用的,只需要修改一点点地方就可以了。

附上我们团队项目的github链接 毕设导师互选系统

七、我是谁?我在做什么?我在哪儿?

 满满宇宙星空,人人都是宇宙里渺小的一颗,时间转瞬即逝,我是谁并不重要,重要的是我在哪儿,我在做什么,而我身边的人又是谁。两年半的时间,才让我找到了计算机的乐趣,大概知道了程序员为什么喜欢编程的原因。通过编程,能够做出有用的软件,看到别人在用自己的软件,心中满满的自豪感。软工实践结束了,但是我的编程之路才正要开始。

八、我身边的人

结对编程小伙伴 林锦大佬

当一个懒癌晚期患者,碰上一个行动派,碰撞出的火花就是:懒癌治疗术。看到她那么认真的完成作业,我怎么忍心自己在一旁玩耍,跟上她的脚步,前进,前进,前进。

团队伙伴 我说的都队

​ 这是一个集各类大腿于一队的队伍,我们有事无巨细的PM--男神(陈燊),php大腿--齐民,算法大腿--扬涛//这次终于写对了名字,全能选手--伟炜,颜值担当--婷婷,嫌弃担当--胡学霸(心颖),我就勉为其难的担任吃货一枚吧。

那些灯火通明的晚上,那间熟悉的活动室,那些PM请客的夜宵,那些熬夜的困倦,在活动室睡觉的民大腿还有燊大腿,都是因为我们有着同一个目标,他们的热情带动了我的成长,说到成长,最要感谢的一个人就是我们队的大佬:伟炜,精通前端,php,安卓,遇到任何问题都可以问他哦,在编程的过程中,他帮助我解决了各种各样的bug。“伟炜,你过来帮我一下。” “伟炜还没帮我解决完这个bug”的情景历历在目。
项目结束了,我们的情谊还在继续。。。

听说要图文并茂,害怕被打死的我还是不要贴图了,想看的人私聊找我(老司机带你飞)。

posted @ 2016-12-31 01:25  linexu  阅读(211)  评论(1编辑  收藏  举报