作业描述
所属课程 | 软件工程1916|W(福州大学) |
---|---|
作业要求 | 个人作业——软件工程实践总结作业 |
学号 | 221600319 |
作业目标 | 软件工程实践课程的总结 |
一、请回望开学初的第一次作业,你对于软件工程课程的想象
(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 在哪写方面达到了你的期待和目标?
我感觉在团队协作方面达到了我的期待,因为这次软工实践是上大学以来最为正式的团队协作项目开发。我切实感受到了参与团队工作,对自身的成长是非常有帮助的。同一个队中的成员每个人都有专长,我可以从他们身上学到很多东西。在交流沟通能力方面也有了提升,团队协作最为重要的一点就是有效的交流沟通。通过与替他成员的不断交流,不但提升了自己的交流能力,而且增进了我们之间的友谊。最为重要的一点就是通过这次实践,我适应了团队协作开发项目的这种形式,明白了团队协作是怎样的一个流程。
- 哪些方面还存在不足?
代码能力方面吧,这个东西需要长期的积累。我们团队中代码能力比较强的队员都是之前自己做过项目,有了一定的代码积累,在实践中就不会显得那么局促。而我个人确实之前没有写过什么完整的东西,代码量不大,导致编程这方面有些弱。
(2)总结这门课程的实践总结和给你带来的提升
- 统计一下,你在这门软件工程实践中,完成了多少行的代码?
1k左右。
- 软工实践各次作业分别花费了多长时间?
- 第一次作业-准备篇:2h
- 结对第一次—原型设计 : 5h
- 结对第二次—文献摘要热词统计及进阶需求 :4h
- 团队第二次作业——选题报告 :4h
- 团队第三次作业——原型设计 :1h
- 团队第四次作业——需求规格说明书 :5h
- 团队第五次作业——系统设计&数据库设计 :3h
- 团队第六次作业——现场编程github实训 :18h
- 团队第七次作业——Alpha冲刺 :45h
- 团队第八次作业——Alpha 冲刺事后诸葛亮 :0h
- 团队第九次作业——Beta冲刺 :29h
- 总计 :116h
- 哪一次作业让你印象最深刻?为什么?
α冲刺阶段的作业,这个阶段花费的时间最长。并且冲刺时间恰好是假期,别人放假我们在写代码。
- 累计花了多少个小时在软工实践上?平均每周花多少个小时?
大约120h,每周10h左右
- 学习和使用的新软件;
git,idea;
- 学习和使用的新工具;
github,teambition,maven;
- 学习和掌握的新语言、新平台;
无
- 学习和掌握的新方法;
基于内容的推荐算法
- 其他方面的提升;
交流沟通能力,debug能力。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
就拿结对来说吧,两次结对作业,本身是没有难度的。虽然说是和认识的人结对,因为是第一次以这种形式编程,按理说一个任务分解到两个人身上应该花费的时间更少才是,但是结果并不是,几乎没有减少时间花费。我总结了一下原因,第一,本身这种新形式的协作编程之前没有经历过;第二,大家的思路不一致,自己的想法很容易被打乱,然后重新考虑另一个队友的思路,队友要花时间解释;第三,遇到问题需要想到解决办法后还要和队友讨论是否最为合适;第四,博客编写要和队友讨论。以上就是进行结对编程时需要额外花费的时间。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
就个人而言,我的建议是:在团队协作中一定要积极行动起来,不要被动的做事情,即使你不是队长,你也可以积极协助队长完成团队工作,越是积极,学到的东西越多。遇到困难要多多求助其他人,这样进步会很快的。
就团队而言,团队成员的任务的合理分配是非常重要的,这关系着任务是否能按时完成。所以在项目一开始,PM就要充分了解自己的队员所擅长的部分。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?
前三个阶段萌芽阶段、磨合阶段和规范阶段都经历过。毕竟队友也是被临时组织起来的,之前也没有很大的交集,前期确实比较依赖队长。比如任务的分配、任务时间的确立、开会时间的确定、开会时的议题、问题的提出等都需要队长的引导。对于第四个阶段,创造阶段,已经达到了,但是没有完全符合。进入第四个阶段就是α与 β交接的阶段,这个时候大家对团队的目标已经有了清晰的认识。好多东西不需要队长的督促就会自觉完成,甚至有的队员会及时提醒队长进行任务的安排。有了一定的自觉意识,但是没有达到高度自治,很多时候还是需要队长的督促。或多或少还是有些担心项目最终的完成度能不能达到预期,当各种bug来袭时多少还是会发点牢骚的。(我个人认为这样做是有益于释放情绪,缓解压力的,把握住度就好)。
五、怎样证明你学会了软件工程?
(1) β阶段结束后,我们成功完成了整个项目的开发,包括后期的界面优化,开发人员内部测试,部分用户测试,对测试出来的bug不断修正。目前已经发布最终版本。
(2)项目开发,第一,要对自己的项目进行评估,然后选择一个合适的软件开发模型,这一点是非常重要的;第二,开发之前对需求的分析,尽可能的在这个阶段确定好这个项目要实现的功能,这就是整个项目的目标,有了确定的目标,才能不遗余力的往前走;第三,确定好开发工具、开发语言以及其他的一些开发辅助工具,能合理的利用手头现有的资源,才能获得最大的产出。