• 软工个人作业5——软件工程总结


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

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

    • 达到的期待和目标:
      • 对javascript入了个门,学会了如何编写微信小程序,并且小程序能够如期发布,在开篇博客中,希望自己的实践能力能有所加强,现在看来,感觉自己还是有进步的,特别是编程方面,而且是在这短短的几周之内自学的,简直不可思议。
      • 在团队项目中,在团队协作方面也收获了很多。在整个项目过程中,PM对我们每个人的任务分配是非常认真和合理的,整体氛围还是很不错的。虽然我对于任务时间的分配也曾表达过不满和意见(捂脸),有问题直接提出来,大家互相配合和理解,问题都能解决的。
      • 对于整个项目的工作流程,从用户需求分析到最后的项目验收,有了一个很好的体验。
    • 不足之处:
      • 对于我们的小程序,还是存在一些不足,由于时间的原因和自身能力的不足,没能对小程序进行进一步的优化。
      • 这次的项目中,我主要把精力放在了编写代码上了,对于测试这些,做的少。

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

    1)统计一下,你在这门课程中,完成了多少行的代码;

    大概完成了2000行左右的代码。

    2)软工的各次作业分别花了多少时间?(做一个列表)

    作业 花费时间
    软工网络15个人阅读作业1 4h
    软工网络15个人阅读作业2——提问题 6h
    软工网络15结对编程练习 37h
    软工网络15团队作业1——团队组队&展示 5h
    软工网络15个人作业3——案例分析 7h
    团队作业3——需求分析与设计 10h
    团队作业2——团队计划 4h
    软工网络15Alpha阶段敏捷冲刺 60h
    团队作业6——展示博客 4h
    团队作业5——测试与发布 5h
    团队作业7——alpha阶段之事后诸葛亮分析 3h
    个人作业4——alpha阶段个人总结 8h
    团队作业8——敏捷冲刺(Beta阶段) 40h
    beta版验收互评 3h
    个人作业5——软工个人总结 3h

    3)哪一次作业让你印象最深刻?为什么?

    Alpha阶段敏捷冲刺作业,开始的时候根本无从下手,拿着教程上的代码一边改,一边运行查看各段代码的大致功能。最恐怖的可能是那几天白天上课,晚上在熬夜写代码,比较心累。为了实现一个功能,一段代码改来改去。不过这段时间是自己进步最大,学习和收获最多的阶段了。

    4)累计花了多少个小时在软工上?平均每周花多少个小时?

    累计花了200小时在软工上,平均每周花了14小时左右。

    5)学习和使用的新软件;

    GitBash、知晓云

    6)学习和使用的新工具;

    微信web开发者工具

    7)学习和掌握的新语言、新平台;

    语言:javascript、WXSS、WXML
    平台:微信web开发者工具

    8)学习和掌握的新方法;

    微信小程序框架、组件、API的使用和知晓云的数据接口的使用

    9)其他方面的提升。

    团队协作能力、实践操作的能力、时间管理能力、沟通交流能力、抗压能力

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

    • 如果个人的时间跟团队项目时间有冲突,最好提前跟PM沟通说明情况,让PM事先安排好任务分配,这样每个人也好根据自身的情况自己分配好时间,特别是如果有任务是要大家一起完成的,提前要沟通好时间,不然一边要忙着自己的事情,一边又有团队项目要完成,大家等来等去也浪费时间。
    • 遇到问题实在无法解决可以跟队友沟通一下,他们说不定可以给出新的思路和方法。Alpha阶段到中期的时候,遇到一个问题一直无法解决,后来让队友看了一下,很快就解决了。
    • 如果有时候写代码写到凌晨了,遇到问题解决不了,那就去睡吧,第二天再看。依个人经验,太晚了精力不够了,脑袋也蒙,效率反倒更低,第二天再来看,说不定就是个很容易就可以解决的问题。

    三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?

    • 对于下一届的建议
      • 在任务之初,最好先提前学习一下,做好技术准备,不然在Alpha阶段初期的时候容易陷入迷茫恐慌、无从下手的状态,也需要花费大量的时间去学习。
      • 根据自己的实际能力去制定项目的难度,但也不要太简单,学有余力的情况下适当增加一些软件功能。
      • 对于事先没有学习过的语言和环境,千万不要有畏难心理,只要踏踏实实去学习,都能学会的。不懂的多跟做同类型软件的同学请教,大家互相交流经验。
      • 项目过程中团队之间难免有冲突的时候,学会沟通和倾听他人的想法和意见,要注意一定是对事不对人的。
      • 队员之间要相互学习和交流,有的任务是有交叉的,说不定两人都遇到了相同的问题,两个人一起解决也快些。
      • 到了大三,大家也有很多自己的事情要忙,比如要考公、考研、实习什么的,这门课相对可能会花费很多的时间,一定要懂得合理安排好自己的时间。
      • 对于换人机制,说实话这是个让人很头疼的问题,毕竟都到了Beta阶段了,团队主力应该是不会离开的,所以相较之下离开的就是对团队贡献度较小的,说实话,我们现在所做的项目主要任务就是打代码和测试,而这些离开的同学对于这方面的掌握是比较少的。他们在beta阶段换到了其他队,人家的软件的核心功能都完成的差不多了,beta阶段的冲刺时间又短,新加入的队员又要学习技术和了解新团队项目的软件,显然这是比较难完成的,只怕是打打酱油(当然这不包括有的团队挖到大神)。我觉得不一定非要到beta阶段才来换人,整个项目的过程随时都可以换,毕竟现实中的团队是随时都存在换人的风险的。如果觉得不合适,早一点换团队也能早一点学习和融入新的团队。
    • 对于开学初的我
      • 合理安排好时间,每天做好计划,对每天要做的事情分个优先级。
    • 对于大一的我
      • 多出去参加一些活动和比赛,多一些项目经验,学习要理论和实践相结合。

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

    我们团队目前到达了规范阶段,可能还没达到创造阶段。大家能认可现有团队的工作流程和工作方式,新队员的加入也需要遵守我们现有的规范,对于自己的任务也有很认真地完成。作为一个整体,大家的各自的分工非常明确,每日站立会议提供了我们专门的时间回顾和检讨,大家大部分都能自行解决自己所遇到的问题。但是我们还没有达到创造阶段的氛围就像是体育比赛,角色和职责能够自然地转换。

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

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

    截止到目前,我们的用户数累计达到了73人。

    2.通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
    有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

    3.并且通过数据展现软件是可以维护和继续发展的。
    而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料

    项目码云管理源代码,地址 https://gitee.com/yangxueying/software_engineering_team_work

  • 相关阅读:
    html5 新增的页面 元素
    【BZOJ1500】[NOI2005]维修数列 Splay
    【BZOJ1720】[Usaco2006 Jan]Corral the Cows 奶牛围栏 双指针法
    【BZOJ3437】小P的牧场 斜率优化
    【BZOJ1096】[ZJOI2007]仓库建设 斜率优化
    【BZOJ3156】防御准备 斜率优化
    【BZOJ4101】[Usaco2015 Open]Trapped in the Haybales Silver 二分
    【BZOJ4099】Trapped in the Haybales Gold STL
    【BZOJ3387】[Usaco2004 Dec]Fence Obstacle Course栅栏行动 线段树
    【BZOJ3939】[Usaco2015 Feb]Cow Hopscotch 动态规划+线段树
  • 原文地址:https://www.cnblogs.com/dongmf/p/9190230.html
Copyright © 2020-2023  润新知