最终作业 - 软件工程实践总结(个人)
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
我开篇博客写的对课程的目标和期待是:让我学到有用的东西。在这学期的课程中,我经历了从个人作业到结对作业再到团队协作,在团队中获得了一些后端开发经验。不管从哪个方面,这门实践性很强的课程都让我学到了我认为有用的东西,除了开发经验还有团队协作等等。有一点遗憾的地方是感觉开发方面学习还是不够深入。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码
个人作业加上结对作业写了1061行,团队项目部分完成1300行左右。
2、软工实践的各次作业分别花了多少时间(min)?(做一个列表)
个人项目|结对项目1|结对项目2|uml设计|Alpha|现场编程|Beta|项目测评
---|---|---|---|---|---|---|---|---|
1300|1560|1890|300|3600|600|840|180
3、哪一次作业让你印象最深刻?为什么?
现场编程实战。因为种种原因我们组在作业截止提交的时候项目处于不能用的状态。于是和pm两人干脆在活动室通宵重做并完成了抽奖系统。因为软工实践才知道福大清晨六点是没有太阳的。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
上面列举的作业时长达到了170个小时,算上各种各样的团队作业,估计有200个小时以上。以16周来算的话平均每周花12.5个小时以上。在开篇博客里我说过我不知道课程难度,会尽量花时间在上面,看情况调整。现在看来难度大大超出了我的预期,我感觉我基本上每天都为软工奔波。
5、学习和使用的新软件;
原型:Axure RP 8、墨刀
建模:StarUML、 ProcessOn
数据分析:NodeXL
后端开发:Android Studio、Eclipse、Eclipse for javaee、IntelliJ IDEA
6、学习和使用的新工具;
WinSCP:远程连接服务器
7、学习和掌握的新语言、新平台;
说掌握是远远不够的,只能说刚刚入门
Java:一开始连java环境都没有,结果软工和编译作业让我硬是写了一学期的java
Git:还是很不熟练
8、学习和掌握的新方法;
个人项目部分:
单元测试、代码性能测试、代码覆盖率
结对项目部分:
设计原型、使用python简单爬虫、使用数据分析软件将数据可视化
团队项目部分:
需求分析流程、各种UML图、软件评测
9、其他方面的提升。
抗压能力增强
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
团队效率最大化。
1.Beta版本由于实验班有考试所以比其他队友晚一点投入beta冲刺,然而知识学习等方面对接有距离,后端部分分配任务也不合理,导致我写了一堆代码结果没有用,因为队友已经写完同一个功能了,虽然pm安慰我说至少学习到了新知识,但是对于团队工作进度贡献基本没有实在是令人失落。在团队中还是尽可能使自己的作用发挥到最大。
2.现场编程由于环境问题跟课程冲突,几个队友花了很长时间结果无法完成项目,于是换人重新开始做。直接把可以并行合作的项目的时间线拉成串行。
软工终于结束了,当初柯老板跟我说“不要两个人做同一件事”,虽然尽量避免不做同一件事,但是还是踩了这些坑。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:
1)你有什么想建议、告知和期许想要告诉他们呢?
实验班的学弟学妹,这学期真的非常辛苦,加油!不过好像下一届这门课变成必修了。
如果选了这门课,希望你们能认真完成这门课,划水跟参与实际上花的时间都很多,不如让这些时间变得更有价值。不过这就意味着大部分休息时间要用来打软工orz
2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?假设依旧是一个90+人数的大班
强制感觉没必要,看另一个班强制换队是在alpha版本结束后,感觉强制换队好像只是增加了没换队的队员的工作量,磨合和学习也需要时间,这个时间可能赶不上新组的进度。
3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?
7人。一个pm,两个后端,两个前端,两个机动。感觉很多事情两个人更好沟通。最好都有经验。
4)个人/结对/团队作业应该控制在怎样的规模?
个人作业尽量控制在1000行代码以下,减少一点作业难度,把时间空给学习单元测试、优化性能上。
结对作业第一阶段原型设计需求分析那些自由发挥吧,第二阶段虽然说是两个人,但是又要爬虫又要写代码分析内容的还有附加功能感觉有点变态了,呜呜呜,最好少加一些需要另外花时间学习的需求。
团队作业这个看哪组的饼画的比较大了,这个控制不了
5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
有很多想感谢的人,比如说我的队友,比如说允许我换队的柯大大,比如说我偶尔麻烦一下的助教等等等等。最感谢的人是我自己,感谢进入实验班的自己,给了自己一个这么锻炼人的机会(哭了。
什么话想要对TA说呢:快去复习啊!
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽阶段:我好像没有经历他们的萌芽阶段,因为我是在他们比较熟悉之后才加入这个团队的。我是在进入这个团队之后很快就适应了新组。
磨合阶段:Alpha版本以及各次的团队作业,pm也很多次在讨论群严肃提出了一些问题,大家都很好地接受并纠正了。
规范阶段:从Alpha版本中后期开始应该处于规范阶段。影响比较深刻的是在Alpha答辩之后更加规范了代码格式,并且使用git进行协作了。
创造阶段:不知道pm怎么想,我是觉得还不够哦。
五、怎样证明你学会了软件工程?
前三点组内共享。
1) 研发出符合用户需求的软件
- 我们的产品在开发前做过一次市场调研问卷调查(样本容量:线上93+线下110=203份),并完成了我们的记忆罐头商业企划书。其中包括用户对我们产品功能的反馈饼状图,我们产品功能十分符合用户需求。
需求展示
- 在完成产品后我们邀请了86位用户进行内测试用我们的记忆罐头,并且收集了用户反馈问卷。
体验指数展示
期待指数展示
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
我们团队在软件工程实践课程的机会之下,通过团队合作完成了产品记忆罐头!分别在Alpha版本阶段完成产品的初始版本,Beta版本完善产品进行一定的bug修复,最终版本已经迭代13次完成产品的1.1.3版本,产品下载链接。
3)并且通过数据展现软件是可以维护和继续发展的
现软件的可维护性和是否可继续发展通过上面的用户反馈问卷截图便能看出。
体验指数展示
期待指数展示
用户需求期待指数超过4分的比例在70%以上,证明我们的产品是可维护和可持续发展的。
并且产品具有十分可观的盈利方式和前景,对不同手机(三星、华为、Oppo)应用市场的在线付费壁纸做了一个简单的调研:
三星付费壁纸
华为付费壁纸
Oppo付费壁纸
盈利点
可以看出,我们的核心创新点锁屏壁纸展示如果能够达到美观、友好的前提下,还能展示出用户的备忘内容,那么便完全可以借助于付费壁纸已经广为人知的免推广的天然优势!!!在每种壁纸单价较为廉价的模式下,提高用户购买欲,相信可以很快的抢占付费壁纸的一块市场,这样也为后续的开发提供了条件和盈利希望。当然,这一切都需要在能够解决生成美观壁纸展示备忘的这一难点的前提下。也正所谓难点即卖点!
4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。
在这个疲惫的一学期里,有时候会想不如直接去找工作算了,读什么书呢,考完看了这份检查表觉得自己还是太天真了。本想写完所有回答贴出来,写到第四个问题软件测试就写不下去了,就算经历了一学期的软工实践,我感觉我的项目经验还是太少太少,对这些所谓的常见问题百分之七十目前是无法回答的,剩下能回答的也没有足够自信。我会继续努力,希望能慢慢充实这张检查表。
七、个性发挥,包括图文、照片和创意等
差点就有照片了,本来在学校的最后一天想让pm请客吃饭的,奈何不少队友有uml作业就没聚在一起。希望404的大家寒假快乐吧~