这个作业属于哪个课程 | 2020春IW班(福州大学) |
---|---|
这个作业要求在哪里 | 个人作业——软件工程实践总结&个人技术博客 |
这个作业的目标 | 完成本次软件工程实践课程的个人总结 |
作业正文 | https://www.cnblogs.com/ybn-juan/p/13131305.html |
其他参考文献 | 《构建之法》 |
一、回望
(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 达到期待:熟悉了团队协作下的软件开发流程,掌握了一些常用的团队开发所需的工具,以及能更敏锐地发现用户需求的痛点。
- 存在不足:个人的软件架构设计能力、编程能力仍有很多不足,常常出现有想法但不知道如何用代码实现的情况。
(2)你在第一次作业的个人简历中制定的“这门课程结束后,你预期你将增长的能力、技术、技能”和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
- 没有达到预期值。我在第一次作业中设定的预期是经过半年的学习能掌握基本的iOS App设计与实现能力,但在软件工程实践课程中我主要负责的是项目前端以及团队博客,且团队项目的界面是针对桌面Web端进行设计的。项目前端使用的Angular框架+NG-ZORRO组件库对我来说都是完全从零开始学习的新技术,再加上组长的工作以及其他课程的任务,导致几乎没有时间去学习iOS开发了。
(3)请总结这门课程的实践总结和给你带来的提升,包括以下内容:
-
统计一下,你在这门软件工程实践中,一共完成了多少行的代码:
- 个人作业+结对作业1000行左右,团队作业1500行左右,共2500行左右。
-
软工实践的各次作业分别花了多少时间?(做一个列表)
作业名称 花费时间(小时) 准备篇 3 热身篇——疫情统计 50 结对第一次——某次疫情统计可视化(原型设计) 16 团队作业第一次——种子队伍选拔和团队展示 3 结对第二次作业——某次疫情统计可视化的实现 24 团队作业第二次——团队GitHub实战训练 2 团队作业第三次——项目需求分析 3 团队作业第四次——系统设计和数据库设计 3 个人作业——软件评测 6 团队作业第五次——站立式会议+alpha冲刺 48 团队作业第六次——beta冲刺+事后诸葛亮 36 个人作业——软件工程实践总结&个人技术博客 6 -
哪一次作业让你印象最深刻?为什么?
- 团队GitHub实训让我印象最深刻,因为那次作业的截止时间就在当天23点,作业要求又很多,所以带给我的紧张感是最强的。好在团队中几位后端大佬Java编程实力强劲,很快就完成了接口设计、数据库设计和DAO层编写,其他组员只需要分配一些方法去实现即可。最终这个看似很复杂的作业我们团队在晚饭前就提交了。
-
累计花了多少个小时在软工实践上?平均每周花多少个小时?
- 200小时左右,平均每周15小时。
-
学习和使用的新软件:
- Postman,Navicat,Axure RP
-
学习和使用的新工具:
- Git,GitHub,JProfile,Wakatime,Swagger-UI,Leangoo看板
-
学习和掌握的新语言、新平台:
- Typescript
-
学习和掌握的新方法:
- 开发前进行原型设计
- 前端面向对象编程,前后端分离
- 客户端-服务器软件体系结构
-
工程能力的提升:
- 了解并参与了一个前后端分离的小型Web项目的敏捷开发过程
- 提升了文档和博客撰写的能力
-
团队合作上的提升:
- 掌握了使用Git和GitHub进行团队开发的代码管理和版本控制
- 掌握了使用博客园和看板进行每日工作记录和进度监控
-
其他方面的提升:
- 自己的应变能力、抗压能力、与人沟通的心态等都得到了一定的锻炼
二、团队总结
1、 如果你是组长,你觉得你有哪些地方做的不够好的?有哪些地方做的好的?你觉得该怎么改进?
- 做得好:
- 从与其他团队对比来看,除了无懈可击的种子队外,我们团队博客和文档的编写水平和规范程度在所有团队中间还是比较高的。
- 当老师、助教在博客下评论时,我们团队会针对提问的范围及时安排前端或后端的组员回复相关评论。
- 项目后端负责组员的编程水平都很高,所以后端设计、开发、测试进度能够一直领先于前端,这也为前端的开发提供了很多便利。
- 团队内有困难互相帮助,例如后端组员向前端提供完善的接口文档和样例,遇到困难或大的变更时开会或录屏讲解,帮助换组过来的同学尽快了解我们团队的开发流程和风格并融入工作等。
- 做的不好:
- 对于极个别在团队中划水的组员,没有采取有效的应对措施。
- 两轮冲刺前的任务分配(主要是前端)都不够合理,导致工作量分配不均。
- 改进措施:
- 要求划水的组员主动换组,以免影响团队整体进度。
- 前端任务分配细化,避免工作量不平均的情况。
2、 你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。
- 我们团队经历过换组,后端3名小黄衫得主中的一人被换出,而换入的同学在原队伍负责的是安卓,和我们的后端项目之间除了开发语言都是Java外几乎没有共通之处。Beta冲刺之初,后端主力沈志峰同学不仅要主导重构整个后端项目,还要帮助新组员了解我们项目的业务逻辑和技术细节,压力之大可想而知。
- 我认为目前的换组模式只是照搬《构建之法》中的内容,过于教条主义。企业对于员工因突发情况(老婆生孩子、亲人重病等)而无法继续参与工作的情况,应该会有一套完善的应对措施,而不该将这部分压力下放给开发团队。课程中的换组需要模拟的应该是团队成员的技术方向与项目要求不符合、团队成员间出现不可调和的矛盾等由成员主动提出离开原团队的情况,抑或是团队成员毫无贡献需要“开除”的情况。
- 综上所述,我认为“要不要执行换组”“该将谁换出去”等问题,应该由具体团队自行讨论决定。
3、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?
- 我认为我们的团队在Beta冲刺后可以算是处于“规范”阶段,由于时间和技术水平的限制,在项目上没有更多的突破,只有一个通知自动转换到待办事项的功能可以算是“创造”。
三、人月神话
1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
- (2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
我们团队的开发流程都有详细的记录,还使用了Leangoo看板来管理两轮冲刺的过程。- 项目需求分析:快乐就队——项目需求分析
- 项目系统设计:快乐就队——项目系统设计与数据库设计
- 项目实现过程:快乐就队——Alpha冲刺随笔集合,快乐就队——Beta冲刺随笔集合
- 项目进度安排:快乐就队——Alpha冲刺分工安排,快乐就队——凡事预则立
- 项目任务分配:Alpha冲刺看板,Beta冲刺看板
- 项目提交记录:前端Commit记录,后端旧项目Commit记录,后端新项目Commit记录
- (3)并且通过数据展现软件是可以维护和继续发展的。
我们团队项目的源代码和关键文档都可以在GitHub上找到,其他附加文档在历次作业博客附件中也有提供。
2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,文字部分字数要求在100字以上,可以使用你自己喜欢的方式表达(如图文结合、视频)..
在本次软件工程实践中我以一个技术菜鸟的身份担任了组长,所以想谈一谈当自己代码水平不那么突出时应该如何为团队做贡献。
刚组队时我是处于前端后端要啥啥不会的状态,本想着做点测试只求能过,但团队中的大神们除了本门课外都还有其他项目要做,组长就落到了我这个“闲人”头上。既然做了组长,再想着划水显然说不过去。想着自己高考时语文还算优势科目,于是先揽下了团队博客的工作,以及检查项目文档语句是否通顺合理等。
大佬推荐使用前端框架Angular,在结对作业过程中学了一下还比较好上手。由于自己有点强迫症,同时也觉得作为组长贡献度比组员差太多会很难看,所以在发现其他组员负责的模块有问题时也会顺手改一改,但往往一做就是两三个小时。最后统计下来,我在前端组员中的编码时长是最长的,再加上写了很多篇博客,贡献度就比较好看了。
我认为我是被组长的身份推着去完成团队任务的,但这并不算什么坏事,重要的是我能在团队中找到自己合适的位置,实现自己的价值。以及我能够较为顺利地完成组长的工作,离不开团队中其他技术大牛的帮助和支持。特别是在第一批就获得小黄衫的沈志峰同学,老师、助教提出的关于技术细节的问题,基本都仰仗他来回答。在这里也向团队中其他完成了自己工作的组员致以衷心的感谢。
四、建议
1、对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。
- 软件工程实践总体来说是一门很实用的课,它能让你实现从“代码能力”到“工程能力”的转变。通过在组队中选择自己喜欢的角色/岗位,可以帮助你找到未来就业后的工作定位。一个团队中并不要求所有人都是代码高手,编程之外也很多工作可以做(比如我过去语文比较好,我负责的团队博客文笔会更流畅,阅读体验更佳)。总之,人尽其力,不做咸鱼。
2、对于软工实践课程,你有哪些建议?
- 希望老师能多针对福州本地软件相关企业的工作模式来设计教学内容,而不是照搬教材或其他学校的模式。当然对于追求大厂的大佬们,就不用作什么限制了。
- 对划水、消极怠工的同学的督促和惩戒,不应该要求其所在团队来承担责任,这一点看隔壁S班的同学吐槽比较多。毕竟在企业中,这样的人是有人事部门来处理的。指责组长不作为甚至搞连坐扣绩效(团队成绩),不仅伤不到那些已经躺平了的咸鱼,而且会打击其他勤恳工作的组员的积极性(这篇博客下面林助教的回复就让我很感动)。
3、对于助教工作,你有哪些建议?
- 希望助教更像是老师和学生间沟通的桥梁,以学长学姐的身份来引导我们这些后辈更好地融入课程学习中去,以及多一些经验分享,比如这学期乐助教的技术分享就很棒。
4、对于自己今后,你有哪些建言?
- 要多学习与人沟通的技巧,这样在以后的团队工作中才会更加游刃有余。
五、个人技术总结
概述:HttpClient是Angular框架中用来发送Http请求的模块,它通过面向对象的方式创建和使用,可以很方便地向目标URL发送Get、Post等请求,并使用.subscribe()方法和回调函数来处理返回的数据或错误信息。