网络15软工个人作业5——软件工程总结

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

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

       看到这道问题,我特意看了我的第一次个人作业,当时的期待和目标是:

我希望学完这门课程能做到有所学,有所得,提高自身的动手能力,锻炼自己的逻辑和思维的能力。虽然很多大佬都提出了要自学,但是我还是希望老师可以很好领我入门,而不是像博客一直在路上——记我从初中到本科近十年的学习成长历程提到的老师一样“照本宣科地阅读PPT课件”。

       回顾整个课程,快速的入门一门语言,经历了两次冲刺,冲刺期间与队员不断讨论,理清逻辑,期间几乎熬夜写代码,可以说是一段充实又紧张的时光。因此我的动手能力,逻辑思维能力得到了提到,虽然还没达到大神级别,但是也是一种进步。张敏老师,在上课期间会通过视频等,比较直观的东西,让我们更好的理解。
       我觉得在锻炼自己的逻辑和思维的能力的目标上还是有不足的地方,因为锻炼逻辑和思维的能力不是一朝一夕的事情,需要日积月累,才能感受到它的进步,所以对于这个目标还需努力。

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

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

       大概完成1500行的代码

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

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

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

       个人阅读作业之提问题,因为真的没有做过对教材提出问题的作业。我记得我做这个作业做了很久,前面几天看书,后面几天断断续续的写博客。我不是很擅长提问题,我一般会在老师上课过程中产生疑惑,对于第一次接触的东西我一般首先会接受,试着去理解,不会急着提出质疑。为什觉得这次作业难,还是关键在于不会提问题,助教也对我提问题的咬文嚼字提出了建议。但是我如果抱着要找出五个问题的目的去看这本书,我就会带有找茬的心态看这本书,就会一个字一个字看,最终就容易钻牛角尖。不过也是因为这次作业,看了其他同学提的问题,了解了原来可以有这么多其他的想法,也锻炼了我提问题的能力。

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

       根据上面作业花的时间,累计花了200个小时,平均每周花14.3小时。我感觉不只是这些特别是冲刺阶段,那一整周心都放在软工上,连上下课都在讨论软工的问题。

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

       腾讯云服务器、知晓云、码云、leango、微信web开发者工具,51调查网

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

       微信web开发者工具

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

       学习和掌握的新语言:WXML,WXSS,JS
       新平台:微信web开发者工具

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

       通过个人阅读提问的作业,学会了看书提问题的学习方法;通过结对编程,学会了单元测试方法,软件的各项功能测试;通过团队冲刺,学会了需求分析的方法,了解了敏捷冲刺的流程,学会了用码云管理代码,用Leangoo管理项目进度,学会写代码规范,规范编程。

9)其他方面的提升。

       学会遇到bug,不骄躁,上网查找解决方法,提升了解决问题的能力。
       通过团队合作,提升了沟通能力,团队合作能力,增加了责任感。

二、写下属于自己的人月神话

个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

  • 学会计划安排时间并能按照计划行事,这在冲刺阶段是尤为重要的。
           一个团队最终是否能如期交付取决于项目进展是否顺利。这点我们团队做得还是不错的,大家都能根据任务计划表来完成任务,我是看到有的其他团队最终没有如期交付,然后看了一下他们的燃尽图,就可以大概知道他们没有合理安排时间,然后导致项目进展受阻。

  • 不要在一种方法“吊死”
           我们都知道条条大路通罗马,对于同一个问题有多种解决方法,就比如数据的存储有多种形式,比如本地存储,MySQL数据库存储,知晓云存储等等。我们一开始是使用MySQL数据库来存放数据,但是后来为了如期交付,选择用比较简单的方法本地存储来先解决数据存储的问题,当然这不是最好的方法,所以我们在Beta阶段放弃MySQL数据库使用知晓云来存储数据。如果我们没有使用知晓云,而是坚持使用MySQL数据库,不会知道知晓云的方便性,虽然使用MySQL数据库也可以完成项目,但是会拖延项目的进展,在一个问题上卡死。

  • 快速入门一门语言,实际动手操作才是最快的方法,不要有畏惧心理
           我一开始使用微信开发工具也是一脸懵逼,再加上没学过WXML,WXSS,JS这三们语言,还要短期内学会并写代码,确实不容易,心里也会担心可不可以。一开始写的时候错了也不知道错在哪,也不会定位,也不会调试,一头雾水。熬过第一天,后面就用的比较顺手了。新的东西一开始都很难,只要你开始了渐渐就会了。

  • 团队合作要善于沟通
           因为每个人都是独立的个体,大家都有不同的想法,而且在团队冲刺阶段你不可以看着团队成员在做什么。只有沟通才能最快获取任务进度,才能知道队员遇到了什么问题,是否需要调整进度。

  • PM要做到把握整体和项目的进展,需要一个会写代码的人来承担
           因为PM要制定团队计划,分配任务,只有PM懂得代码,才能合理安排时间。因为团队每个人做的只是项目的一部分,只有PM才知道项目的整体,可以更好把整个项目串起来。

三、建议

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

  • 对下一届实践的建议
           学号c语言和java,打好基础,它可以帮助你在今后学习新的语言。确定项目的题目的时候,可以团队一起确定。要根据团队的水平选择适合团队的项目。如果选择新的平台开发项目也不要太畏惧,既然选择了,也要笑着写下去,不要轻易放弃,要相信自己。如果在项目开发的过程中遇到困难,可以与团队讨论,不用自己孤军奋战。做团队任务的时候,要把团队任务放在优先级,不要因为自己某些不愿意,打击团队的积极性。
  • 对于开学初的我
           多读书,多学习。静下心,专心做好一件事。
  • 对于换人机制
    其实对于写代码的人来说,换到新的团队很难承担写代码的任务。而且一般上一个团队会写代码的成员即主力军,也不会换到其他团队,毕竟自己看着自己项目建起,然后要放弃它,还是很不舍。而且换人跟冲刺阶段很接近,新加入的成员还没很好适用,就制定了团队计划,这种情况下为了保险,一般不会安排主要任务给新的成员。而且第一阶段团队成员已经建立一定的革命友谊,新加入的成员一时很难加入。所以我个人认为其实不是很有必要有换人的机制。

四、分析一下自己所处的团队。

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

四个阶段,分别为

  • 萌芽阶段:组队完成,虽然彼此熟悉,但是对项目怎么做还是一脸懵逼。
  • 磨合阶段:对于项目的安排,项目的细节,大家都有各自想法,需要讨论开会统一观点。
  • 规范阶段:团队成员各司其职,按照团队计划进展,根据代码规范编程,完成一个可交付的产品。
  • 创造阶段:个人认为还未达到这个阶段。

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

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

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

    从截图可知有73个用户
    项目二维码:

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

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

原文地址:https://www.cnblogs.com/yangxy/p/9190550.html