个人作业5——软工个人总结

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

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

    • 期待和目标
      学会了微信小程序的开发,学会小程序开发新语言,了解到关于一个软件从开始制定计划到可以验收交付需要经过一个什么过程,在这次团队项目里,让我很好的体会到了一个软件开发的过程,要怎么去进行需求分析,如何找到用户的痛点,怎么做好功能的四象限分配,如何在一个较短时间里做好一个mvp功能,要如何做一个“足够好”的软件。

    • 不足

      • 逻辑思维能力还不是很好,在写代码的时候逻辑不是很清楚就开始动手敲代码,导致一直出问题。
      • 对于时间的安排,在aphla阶段和beta阶段几乎都是要熬夜写代码的。
      • 语言表达,交流写作能力还是没有得到提升,不能够清楚的表述自己遇到的问题。
  2. 总结这门课程的实践总结和给你带来的提升,包括以下内容:

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

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

      作业 耗时
      个人作业1--阅读作业 7h
      个人作业2--提问题 8h
      结对编程 30h
      个人作业3--案例分析 5h
      团队作业1--团队展示 1h
      团队作业2--团队计划 2h
      团队作业3--需求分析 15h
      团队作业4--alpha冲刺 85h
      团队作业5--测试与发布 5h
      团队作业6--展示博客 3h
      alpha项目复审 1h
      团队作业7--alpha阶段事后诸葛亮 4h
      个人作业4--alpha阶段个人总结 7h
      团队作业8--beta冲刺 80h
      团队作业9--项目验收总结 4h
      beta项目复审 1h
    • 3)哪一次作业让你印象最深刻?为什么?
        alpha冲刺阶段,因为刚开始学写微信小程序,对于小程序的开发一窍不通,要自己找资料学习小程序的开发语言边学边写,遇到很多问题还不知道是什么原因产生的,很心酸。经常要熬夜写代码,因为刚开始学有时候代码写的不是很好,还要一直改动。再加上有时候会开发平台莫名有问题,明明代码都没有改动过,别人的机子上可以运行,自己就不能运行,还要重新创建一个项目把代码导进入。关于连接服务器的问题,各种找寻方法。

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

    • 5)学习和使用的新软件;
      知晓云、石墨文档

    • 6)学习和使用的新工具;
      微信开发工具、leango、jprofiler

    • 7)学习和掌握的新语言、新平台;
      微信小程序开发语言:wxml、wcss、js
      微信小程序开发平台

    • 8)学习和掌握的新方法;
      关于阅读要如何提一个有想法的问题,如何结对编程,软件开发从定计划到测试交付需要使用到的方法,如在做需求分析时可以使用NABCD方法,可以使用四象限的方法给功能定位。

    • 9)其他方面的提升。
      团队合作能力,解决问题的能力,抗压能力

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

  • 在做结对项目时,需要彼此了解一下自己的能力,更好的分配彼此的工作,不要只有一个人在编程,另一个人闲着。要注意每个人的编程时间,不要长期由一个人掌控键盘。并且要注意时间的安排,在这次结对项目中,因为是要在上一届的代码进行修改,因为没有合理分配时间,提前阅读学姐的代码,了解整个代码的结构,导致在做修改的时候很痛苦。
  • 在团队项目里,遇到问题经过一番思考之后如果想不出来解决办法,要及时要队友求助,不要死钻问题,我在开发过程中遇到过因为有一定的编程疲劳了,但是又死要自己解决问题,导致浪费了很长时间在一个bug上,最后求助队员很快就得到解决。所以如果实在解决不了要及时要队员求助,并且在编程的时候要注意编程时间的长短,过长的编程时间反而会较低自己的效率,因为长时间的编程,思维有时候就会被固定在一个方向,这时候就需要休息一下或者隔天再继续(已经是晚上了)。

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

  • 对开学初的我:
    多读书(文学方面的),提高自己的语言表达能力,交流、写作能力;合理安排自己的时间,做好短期目标和长期目标;做事不要赶,缓下来想好了在做
  • 后来人的期许:
    合理安排自己的时间以及团队合作的时间,当发生冲突的时候,要考虑好优先顺序,跟PM解释清楚,以免工作安排发生问题。在团队项目里要善于跟队员交流,经常交流经验,遇到无法解决的问题要及时求助。做项目前要做好预备工作,需要使用什么编程语言要事先去了解学习,不然边写边学,会很痛苦。代码规范和源代码的管理也很重要。
  • 换人机制:
    挺好的,能提高自己的适应能力,能尽快的融入一个团队里,理解新团队的工作安排,看懂新团队的程序,协作工作。模拟工作中可能出现成员的变动问题。

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

  • 萌芽阶段:个人的角色和职责不是清楚,但是项目刚开始,有点迷茫,还未适应团队环境、结构,不知道从何下手开始工作。
  • 磨合阶段:对于项目有了一定的了解,工作开始有点顺手,没有发生冲突问题。
  • 规范阶段:对于角色、职责定义和项目流程有了比较统一的认识,能够互相协助,交流经验。
  • 创造阶段:感觉团队还没能达到这一点,并没有实现高度自治,角色和职责不能够根据项目的要求自然转换。

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

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

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

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

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

    原型设计工具:墨刀
    代码管理:码云
    项目管理:issue,leango

    项目规划
    需求分析
    用户使用调查
    相关测试发布博客:
    https://www.cnblogs.com/coolgirls/p/8996095.html
    https://www.cnblogs.com/coolgirls/p/9127612.html
    http://www.cnblogs.com/coolgirls/archive/2018/05/08.html
    定时进度发布:
    alpha冲刺
    beta冲刺

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

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

请在随笔中用数据证明上述内容或侧重选择之一。

posted @ 2018-06-17 00:03  _Another  阅读(148)  评论(1编辑  收藏  举报