一、请回望暑假时的第一次作业,你对于软件工程课程的想象
对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
-
对我而言,软工实践让我经历了一个软件开发的大致完整的流程,让我真真切切的感受到了这样的一个过程。虽然很累,但是收获不少。
-
回首整个开发过程,组内的某个成员,从我们的第二篇博客起,口口声声说热衷于安卓开发,到实际开发过程中,慢慢的无感和厌倦,再到真正项目完成后的欣喜。也许对于最初接触到软件开发的我们,这是一个令人又爱又恨的过程。最初期待那样产生出怎样怎样的真正华丽的APP,到真正开发过程中,才知道自己在DeadLine的限制下无能为力,最初的期待又好像仅仅只是一个幻想罢了。我们需要的是对安卓开发的一个熟练度,需要的是短时间百度谷歌找资料的能力,需要的是应用各种API的能力,这些需要在项目中慢慢的积累,而我们也远远不够。
-
软工实践并没有最初我们想象的那样对初学者是一个有多好玩的东西,我觉得我对整个开发过程的适应性还远远不够,掌握开发的技巧也远远不够,对整体开发规划也远远不够,开发的时候浪费了很多不必要的时间。
总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
2、软工实践的各次作业分别花了多少时间?(做一个列表)
3、哪一次作业让你印象最深刻?为什么?
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
5、学习和使用的新软件;
6、学习和使用的新工具;
7、学习和掌握的新语言、新平台;
8、学习和掌握的新方法;
9、其他方面的提升。
-
统计一下,你在这门软件工程实践中,完成了多少行的代码
项目 代码行数 数独 200 结对第二次作业 200 同学录 2250 Alpha Demo 900 Alpha - Beta 3500 Beta 以后 1600 总计 8650 -
软工实践的各次作业分别花了多少时间?(做一个列表)
项目 大致耗时(h) 软工实践——准备 2 数独作业 16 团队展示 4 原型设计 15 选题报告 15 第二次结对作业 20 团队项目需求分析 25 Alpha冲刺 65 同学录 7 软件产品案例分析 20 Beta冲刺 35 Beta之后 30 软件工程实践总结作业 2 -
累计花了多少个小时在软工实践上?平均每周花多少个小时?
估测每周大概花费软工实践上有20个小时 -
哪一次作业让你印象最深刻?为什么?
团队作业。原因很简单,因为数独虽然是我引以为豪的一次作业,但是相比之下Alpha和Beta冲刺真的付出了太多心血,也收获了很多,不说别的,团队作业写的博客都比别的多得多。还有就是各种和队友熬夜。 -
学习和使用的新软件
- Android Studio
- Idea
- Mysql
- 微信桌面版emmmm
-
学习和使用的新工具
- 云笔记Markdown
- Navicat
- Git
- 墨刀
- starUML
- DiagramDesigner
- Gson
- rapidjson
- Tomcat
- 百度定位SDK
-
学习和掌握的新语言、新平台
- Markdown
- XML界面
- Github
- 博客园
-
学习和掌握的新方法
NABCD分析,版本控制和协同化编程
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
-
关于找队友:人数上一定要合适与充足。我们组就是典型的人数偏少,最后到了写博客都感觉是一件让人感觉生无可恋的事情。
-
关于队友质量:当你团队中人数充足的时候,你需要考虑的是队友的质量问题,队内一定要有大多数绝对靠谱的人。所谓绝对靠谱,并不是指他们现在能够有多牛逼,有多么资深的经验,而是指他们能否拥有一颗积极上进的心,能否尽其所能为团队付出。我希望加入到有着这样一种氛围的团队中去。
-
关于团队向心力:我认为一个团队最需要的是保持无时无刻的激情,有激情的团队是形成团队向心力的前提。刚步入软工实践的我们,多半以为安卓开发对于一个初学者是一件非常好玩的事情,然后一次又一次的受挫,在DeadLine的限制下失去了信心。这时候团队领袖需要出来一起担当,共患难共进退,团队的大家需要一起相互鼓励,这样的氛围才能让整个开发继续下去。
-
关于抱大腿:很多人喜欢抱大腿,然而你发现这些大腿并不是很想鸟你们。对他们而言,他们觉得他们已经和我们不是同一类人了,他们并不想带领那些初学者或者新手们变得更好,他们想跟更好的人在一起而变得更好。有同学私下里和我说什么,这就好比什么“先富带后富”,最后“先富”的人跑路了。我听到这里,莫名觉得有点出戏2333(希望那个看到这篇的同学不要打我)。我觉得这是人之常情,要怪就怪自己菜吧,没有人天生注定非要帮你不可。当你没有所谓的大腿,没有所谓的依靠的时候,那就自己努力成为自己的依靠吧。反过来想这不是挺好的事情吗?
-
关于遇到难题:百度百度百度以及再百度。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
-
不要对软工实践抱有太多好玩的幻想,对于初学者这可能真的一点不好玩。但是确实一个非常有意义的经历。
-
关于团队上的问题,在上述第二点已经说了,这里不再赘述了。
-
一点不了解Java无法做安卓开发?我觉得答案是否定的,虽然安卓开发使用的是java语言,但是实际上java基本库的使用起来并不是太难,比如一些IO流,在安卓开发里有特殊的流库提供使用,但是总归了解过,开发起来更加顺手。
-
如果说提前准备的话,了解一些mysql语句的使用,java的基础知识,gson的使用,以及了解一些框架。
-
关于中途换队友的话,我只想说对于某些团队而言,得到的队友能够对他们产生新助力,对于某些团队来说是一个损失。对于我们的软工实践而言,绝大多数人都是新手,需要大量的磨合时间,显然是不合适的。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
-
萌芽阶段:最典型的就是个人的角色和职责不清楚,主要原因是大家都是初学者,并不知道自己要干哪个模块。在最开始的时候,我们发现的严重问题一般都是大家一起解决,然而一起也很难解决,因此浪费了大量的时间。
-
磨合期:我们做到了彼此的信任,但是每个人性格的原因,热情的持续时间也长短不一,往往导致不能够在同一段时间内一起努力的完成项目的某个模块,对我而言,有一种我很担心项目完成不了,然而组员却不急不慢,一点不慌的感觉。
-
创造阶段:这个对我们来说,目前还是天方夜谭,正如上述所说,不管是学业原因也好个人原因也罢,我们做不到那种大家全心全意为项目的状态。