福大软工 · 最终作业 - 软件工程实践总结(个人)

一、请回望暑假时的第一次作业,你对于软件工程课程的想象

1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

开篇博客 :不是很了解,谈不上期待。
虽然一开始没有什么期待和目标,但是经过这几个月的学习,有了想要完成项目的希望和目标,想要有对整个项目流程熟悉的把控能力。不过非常遗憾我们的团队到最后也没办法拿出像样的东西出来。我虽然完成了组长交代的任务,但是也没有什么办法。

2)总结这门课程的实践总结和给你带来的提升,包括以下内容:

1、统计一下,你在这门软件工程实践中,完成了多少行的代码;

(不计算删改的代码)

  • 个人作业 + 结对作业:250行java
  • 团队现场实战: 250行c++
  • 团队作业: 550行java + 520行xml
  • 共 1570行 (太少了)
2、软工实践的各次作业分别花了多少时间?(做一个列表)
(记得不是很清楚了)
  • 个人作业: 10 小时左右
  • 结对作业: 12 小时左右
  • 团队作业: 80 小时以上
3、哪一次作业让你印象最深刻?为什么?

团队现场实战
原来的团队做事效率低下,不仅没有分配好工作,整个团队也就三四个人在写代码,其他的在摸鱼。
做了好久,最后团队还是很残念程序不能达到运行要求。
最致命的我忘了交博客,错过了时间,白弄了。

4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
  • 100多个小时
  • 平均每周 10 个小时

开篇回答:倘若时间充裕,不影响正常作息,都可以放在这门课上。

5、学习和使用的新软件;
  • Android Studio
6、学习和使用的新工具;
  • processOn
7、学习和掌握的新语言、新平台;
  • xml(编写界面)
  • github
8、学习和掌握的新方法;
  • 界面编写的方法
9、其他方面的提升。
  • java 又熟练一点了

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

  • 经验总结 : 无论做什么项目都需要规划好怎么做,每一个步骤都需要搞的清清楚楚的,甚至细化到每个定义类型的名称。最开始的规划是绝对不能马马虎虎,不能随随便便,不能啥都不管先弄再说,这样只会是浪费时间。

个人项目和结对作业都在我能力之内,虽然我没做什么规划,也能正常地完成,只不过时间可能会有些许损失。
团队作业就不一样了,如果没有规划就会一群苍蝇到处乱撞,最后什么都没办法完成。
实例:就从我最初所在的团队说吧。团队现场编程实战的时候,组长对任务没有把握,就说你们几个弄前端,你们几个弄后端,然后我们就开始弄了。我按要求开始写代码,然后旁边一个队员和组长就看着我做,他们什么都没做,看了一上午(????)。因为我只有一个人,效率又不是很高,只完成了后端一部分功能。后来第二天聚在一起说要整合,一个前端拿出来一份,把后端的一部分和我重叠的功能也写了出来(??)。然后其他人呢是啥也没干的样子。我是真的一头问号。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:

1)你有什么想建议、告知和期许想要告诉他们呢?

  • 跟着有能力的项目负责人,不是建议,是必须,不然就是什么都没法完成的下场。
  • 做自己能力内的事,接自己可以完成的任务,不要揽做不了的活

2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?

假设依旧是一个90+人数的大班

组员没用还能忍,组长没用的话强烈建议换

3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?

不应该单纯用数量来决定,而是依靠组内成员的能力来决定
在所有分工都有人承担的前提下

  • 依照其每个分工成员能力的不同对各个分工填充一定数量成员
  • 使每个分工都能正常的完成
  • 在每个分工都能完成的前提下成立一个小组

4)个人/结对/团队作业应该控制在怎样的规模?

  • 个人项目 小规模能力测试
  • 结对项目 大规模设计思路,小规模功能实现即可。
  • 团队作业 规模应该跟参与人数挂钩。

5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

安琪助教。啦啦啦

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

我呆过两个团队,第一个团队处于萌芽阶段,组长实在是不懂,无法分配任务,搞得大家连做什么都不清楚,最后分崩离析。
第二个团队,也应该只处于萌芽阶段,我在进入这个团队之前并不清楚其实际情况,之后才发现与我原先所在的团队并没有太大优势。组长也是勉强回答了做什么的问题,勉强为大家分配了任务,但是实际上,没有什么规范,大家都不知道怎么做。组长没有对细节的地方进行一些规划,导致最后大家的程序在拼凑的时候遇到的巨大的问题无法解决。而且组长分配任务太过随意,设置了五个前端,然而前端并不需要那么多,结果导致界面呈现无数风格(当然主要是组长没有对需要呈现的效果作出要求,而是让我们做而已)。
我所处的两个团队的组长都没有任何经验,没有对项目的把握,更加不会分配任务(当然其他队员也不懂,所以才担任的组员呀),我怀疑就没有设计阶段,经常处于不知道做什么的情况,最后都没有什么好的结果。

五、怎样证明你学会了软件工程?

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

必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件

我们的软件甚至不能运行,询问队长时给的回答是 解决了 能解决的问题 但还是存在闪退问题。

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

有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

我们没有定时的进度发布,只被分配做的任务,没有交代怎么做和做成什么样。

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

而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料

我把我写的代码对每个功能都详细的进行了分块,可以保证维护和继续发展没有问题,其他人我就不知道了。

多数回答不了。

posted on 2019-01-08 16:05  YooRarely  阅读(174)  评论(0编辑  收藏  举报

导航