福大软工 · 最终作业 - 软件工程实践总结(个人)
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
最初的时候希望通过这门科目锻炼自己的实践能力(编程能力),但是意外的担任了团队的PM,不仅仅锻炼了编程能力还锻炼了组织协作管理能力,可以说是有意外的收获了。
不足的可以说是最后的产品还没有达到自己当初预想的目标,果然理想和现实是有差距的。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
根据不完全统计,总代码量大概在1000左右,加上修改的代码大概有3000左右。
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业名称 | 所花费时间(小时) |
---|---|
第一次作业 | 3 |
个人项目 | 11 |
结队作业1 | 10 |
团队风采展示 | 3 |
结队作业2 | 15 |
团队选题报告 | 6 |
团队课堂UML设计 | 2 |
团队需求分析报告 | 10 |
Alpha冲刺 | 140 |
团队现场编程 | 6 |
团队项目评测 | 14 |
Beta冲刺 | 100 |
最终演示 | 6 |
累计 | 326 |
平均每周花费时间 | 18.1 |
3、哪一次作业让你印象最深刻?为什么?
印象最深刻的其实有两次,一个是团队现场编程,十分真切的感受到我们团队的优秀和强大。
另一个是Alpha冲刺,是真的累。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
累计花费326个小时(惊了),平均每周18.1个小时,开篇博客打算平均到每天2小时,按情况增加,时间上算是达标还有点小超标。
5、学习和使用的新软件;
Visual stdio的单元测试,性能分析工具,Axure
6、学习和使用的新工具;
在线的流程图绘制网站PROCESSON,PPT(这个两个虽然之前就有接触,但是用的实在太多了,不得不拿出来提一下)
7、学习和掌握的新语言、新平台;
Python Tensorflow Pytorch
8、学习和掌握的新方法;
燃尽图法,思维导图,测试方法,原型设计,增量开发,技术文档等等
9、其他方面的提升。
本次软工的节奏基本处于前期负责算法的开发设计,后期算法方面都基本完成,剩下的基本都是数据处理了,所以后期基本处于负责团队的管理和产品的演示方面。
代码方面自然不用多说,团队的管理,任务分配,演讲能力有了一定的提升。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:
1)你有什么想建议、告知和期许想要告诉他们呢?
如果可以不选,千万不要选,不是课程的问题,而是大三上真的顶不住。
2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?
假设依旧是一个90+人数的大班
千万不要中途换队员,还是建议组队的时候找一些靠谱的人当队友。
3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?
12-14个人比较合适
4)个人/结对/团队作业应该控制在怎样的规模?
个人结队团队结队作业控制在一天平均两个小时比较合理。
5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
最感谢的其实就是我的队友们,对队长的包容,队友的强大与优秀以及强大的执行力,让我这个PM当的轻松许多。
其次要感谢一下柯老师和助教学姐,很耐心解答我的疑问,并对我提出建议,让我变的更优秀。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
萌芽、磨合、信任、冲突、承诺、责任、结果、规范、创造,我可以很自信的说我们达到了,最优秀的团队没有之一。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
EMMMM,由于搭建云服务器的问题,给很多用户使用确实有难度,但是线下有给用户试用,反应良好。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
每次作业发布的时候,我都会把分工分好,而且我们组几乎是全员大牛,每个人都会参与出力。
3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
使用github管理代码,有相应的说明文档,接口文档等。
4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。
请在随笔中用数据证明上述内容或侧重选择之一。
行业洞察力、工具社区
六*(选做)、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:
老实说,自己的代码质量还是没有达到工业级水平,虽然这次作业已经有着重注意这方面,但是无奈时间太紧,没有做到很好。
参考论文文献:
[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.
[2] Boehm B W, Brown J R, Lipow M. Quantitative evaluation of software quality[C]//Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976: 592-605
[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87
七、个性发挥,包括图文、照片和创意等
吃喝玩乐遍福州,火箭少男冲冲冲
其实还是想吐槽一下,软工这门课安排的真的不是时候,选择了最痛苦压力最大的大三上学期,导致最后的产品和最初预计的还是有一定的距离,如果选择一个相对轻松的学期,我相信质量会大大提升。
刚开始带着自己的想法和创意自信满满的向大家介绍,最终的结果给了自己当头一棒,为人不论何时都应该谦虚大方礼貌,这其实是整个软工实践给我最深的教训,不论提问的人有多么的尖锐,还是应该不急不慢的说出自己的想法。
最后的最后,还是要感谢我的队友们,真的太给力太优秀了。
我已经把门焊死了谁都别想走