团队项目——总结

 ̄綄美尐妖づ 提交于 2019-12-08 15:09:32

团队项目-总结

一、格式描述

这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/
这个作业要求在哪里 https://www.cnblogs.com/harry240/p/11524252.html
团队名称 七个小矮人
这个作业的目标 对本学期的学习做总结,对第一次上课时提出的问题进行回答,并结合实际情况谈个人的收获
Github仓库地址 https://github.com/S21loganmc/goldenpoints.git

二、队员列表

姓名 学号
马驰(队长) 201731024137
于丁 201731021227
杨汶桐 201731024114
李朋珂 201731024125
姜玖林 201731024128
刘川 201731024140
张新明 201731024122

三、学期回望及个人总结

【1】.马驰

姓名 马驰
学号 201731024137
第一次博客链接 https://www.cnblogs.com/S21loganmc-0729/p/11516047.html
  • Question1
    “单元测试必须由最熟悉代码的人(程序的作者)来写”,程序的作者是最熟悉源代码但是,我认为由作者进行单元测试也存在一些问题,当局者迷,旁观者清,所以单元测试由具有专业经验的人员与程序的作者一起进行是否更好?

    答:通过网站以及相关书籍资料(《移山之道—VSTS软件开发指南》),我了解到单元测试必须由最熟悉代码的人(程序的作者)来写; 代码的作者最了解代码的目的、特点和实现的局限性。所以没有比作者更合适的人选。 就算作者没有时间写测试代码,也应该对此单元测试进行负责。

  • Question2
    舒适区,学习区和恐慌区图中描述了问题的三个层次,我想问对于编程语言的基础应该速成,脱离舒适区,还是循序渐进的耗费大量时间学好基础?

    答:在舒适区我们得心应手,每天处于熟悉的环境中,做在行的的事情,和熟悉的人交际,甚至你就是这个领域的专家,对这个区域中的人和事感觉很舒适。但是学到的东西很少,进步缓慢,而且一旦跳出这个领域,面对不熟悉的环境及变化,可能会觉得有压力,无所适从。因此,打好必要的基础就显得格外重要,通过一步一步脚踏实地,慢慢学习编程语言,才不至于以后使用时脱节。
    参考链接:https://www.jianshu.com/p/61331af8fc2e

  • Question3
    对于9种软件团队的模式,各种模式都有自己的优势,哪种模式是现实的软件团队最常见的模式?

    答:个人认为,业余剧院团队模式在我们这个学龄较为常见。这个模式的特点是团队内成员的角色不是固定的,团队内的讨论十分频繁。

  • Question4
    通过GE公司总裁讲述的故事传达的信息是好的用户体验更重要,但是,在软件开发的过程中,为了好的用户体验,一味的牺牲软件的性能是否可取?我们应该怎样在用户体验与软件性能做抉择?

    答:不可取。我们应该尽量符合用户实际场景,提高易用性,包括易理解性,易学性,易操作性,反馈给用户尽量少的选择;提供用户想要的信息并做到快速响应。
    原文链接:https://blog.csdn.net/wang_shiwei/article/details/60127815

  • Question5
    统计表明,70%的创新者说,他们最成功的创新,是在他们的拿手领域之外发现的。通过阅读这段材料包括后面的名人实例来看,我想了解在研究本专业相关问题时,多放眼其他领域的问题会不会更好?存在避重就轻现象吗?

    答:通过对课程的学习,我发现对本专业,即地理信息科学的学习,适当在专业领域外去进行开拓,可能会开辟自己的另一片拿手领域。虽然是需要一定的时间,但是学习总是有收获的。可能会存在部分避重就轻,但是如果在自己的合理时间安排下,这种问题也便不复存在。

  • 总结
    首先,从接触这门课开始,中间一次次作业的发布,对于我这样一个编程能力很低的人来说,无疑是很大的挑战。一学期下来,对于这门课,我能对团队软件项目的完成,按照我的理解构建出框架。从个人作业,结对编程到团队作业,我明白软件工程这门课是需要通过大量的实践去巩固,进而创新。小组成员们能够很好地团结协作,但是最大的问题应该还是出在我的身上,中期没有进行有序的安排,正如小组成员所言,拖延癌晚期患者,但是组内每个成员的能力,每人的努力都是可见一斑的,编写UI的刘川,李朋珂;数据库的张新明,杨汶桐以及逻辑层的于丁和姜玖林,大家最终齐心协力完成了任务。所以,这门课能够让我了解到,能力的培养以及基础的重要性。感谢每个小组成员的奋斗,以及大家随时可见的斗志,值得敬佩!

【2】.姜玖林

姓名 姜玖林
学号 201731024128
第一次博客链接 https://www.cnblogs.com/jiangjiang0125/p/11508465.html
  • Question1:
    敏捷流程变化大,效率高,但我感觉这只适用于小团队,人少才好管理,如果很多人的团队,能否在用敏捷流程?具体什么时候选择迅捷流程不太清楚。

    答:现在感觉大公司也不是全都是大型工程,他也分部门、团队,也要开发新的小项目,也是可以使用敏捷开发的。
    下面是一个网友讲阿里的敏捷开发。我来说一下阿里的敏捷开发吧,准确地说是scrum开发。就我所知,部分部门如p4p采用的是scrum开发。这些开发模式都结合业务做了一些改良。另外一些部门,任务是根据业务需求来的,就是一个一个的排需求,做需求。
    下面说说Scrum。首先是晨会:即站会。每天早上10-20分钟讲三个问题,昨天做了什么,今天做什么,遇到什么问题。晨会一般9点30分左右开始。迟到一般是请水果之类。
    需求PK:一般2周一次,或者一个月一次需求pk。大概两个月作为一个需求review的周期。
    日报:通过各种方式填写日报;
    项目周报:一般写日报就不写周报。但是需要写项目周报。
    某些团队搞燃尽图:但是实际上这个玩意儿不实用。
    to do、doing、done,这三种任务的面板,某些团队在用,另外也有web的管理工具,用起来相对方便。
    总体来说严格的scrum开发是挺累的,如果连续两天遇到问题没有进展,会压力比较大。可能要请求其他人的帮助了。
    Scrum Master是一个非常重要的角色,因为他要负责和其他团队pk需求。到底做哪些需求,基本上master要非常清楚代价和实现难度。要根据团队的技术实力和团队的成长情况来安排需求。如果master不给力,团队会比较难受。很多人都有疑惑,机器学习类的团队如何开展敏捷开发。一般是这样的,通过任务分解把工作拆分为半天到一天的工作量,然后制定里程碑时间点。如看资料、做实验的时间;训练样本、特征开发的时间;模型和预测的时间;最后工程实现。这几个流程下来项目一般会有好几个月
    这个问题是通过网上搜集资料解决的。

  • Question2:
    什么是技能呢?巴克斯顿说技能的反面是“解决问题”,一个“不精通”的面试者的编程过程实际上就是一个“解决问题”的过程,仔细阅读P57页后,发现对技能的反面还是不懂,虽然解释是“解决问题”,但总感觉他的例子有点不太合适,就不能搞懂。

    答:可能当时的想法不一样,现在又能理解了。

  • Question3:
    文中有一个叫“18个月效应”,大意是一个软件十八个月做不出来就没有做的必要了,但这明显不是它正确的意思吧,所以不明白为什么这么解释,不是应该要坚持不懈吗?如果中途放弃岂不是半途而废,前面的努力就白费啦。

    答:“18个月效应”只是希望我们注意时间以及可完成性,遇到确实太过困难的,要学会适度放弃。经验教训所得。

  • Question4:
    在第16章中,我们谈到了创新,谈到了创新的迷思,时机和招数等。列举了一些产品的创新,比如对于一个魔方的销售,针对不同的用户使用了一些不一样的商业模式。我不太了解在软件工程领域中创新是什么样子的呢? 是建立新的模式,或者一种新的代码表示方法?

    答:以上几种情况都有吧,从书上了解到。

  • Question5:
    关于第16章IT行业的创新,迷思之四
    :创新者都是一马当先其中阐述一个很难让人相信的现象:创新者都不是一马当先的,例如搜索引擎, Google 是很晚才进入这个领域的。例如APPLE 的音乐播放器 iPod. 它是 2001年10 月 23 日发布的, 在它之前市面上已经有很多产品了。这让我不不禁思考,到底我们是要当一个有特立独行,心中有着天马行空的想法的创新者,还是要做一个稳中求进,在前人基础上“创新”的创新者?

    答:每个人的选择不一样,我们不可能将其中一种情况视为唯一解,事实上,很多问题都有多解的存在。所以,既可以当一个有特立独行,心中有着天马行空的想法的创新者,也可以做一个稳中求进,在前人基础上“创新”的创新者。经验所得。

  • 总结
    一学期以来,对于软工这个课程感触挺深的,刚开始上课的时候,觉得老师讲的太书本化了,没有什么意思,就没怎么太过专心。直到第一次接触博客,以及到现在,发现自己有很多不足的东西,特别是软件方面,可以说是基础很差了。小组分工快要开始编码的时候,可以说是完全没有思绪的,自己什么都不动,只有跟着队友们一起做,慢慢学。不管是前期的各种阶段的分析设计,还是后期的代码编写,发现自己的问题比较大,很多知识都忘记了,本次实验还是要感谢我的组内小伙伴们,特别是和我一起做算法分析的于丁同学,教了我挺多东西的,包括代码规范,开发文档,方法调用等等,真诚感谢!

【3】.张新明

姓名 张新明
学号 201731024122
第一篇博客地址 https://www.cnblogs.com/bronze/p/11508477.html

一、尝试回答自己第一次作业的提问

问题一:通过浏览《构建之法》的第四章的两人合作结对编程的时候会担心队友的能力以及负责程度,就像打游戏一样担心队友会坑自己,这样编程效率就会降低,结对编程如何解决这个问题?

答:在组队时就要合理的去分配任务,分配好了任务做到术业有专攻效率就不会低。此外,在做任务的时候要经常交流遇到的问题,相互帮助相互解决,这样结对编程的效率就会很高。

问题二:通过浏览《构建之法》的第五章的团队和流程,以及第七章实战中的软件工程后,了解到团队协作能力对软件工程项目至关重要。书中介绍了许多软件团队的模式,那么什么规模的项目该有多少人一起协作完成?

答:通过这段时间的学习,我觉得衡量人数的要求很片面,要充分合理的利用时间和空间资源。

问题三:在第9章项目经理中,提到了这样一句“没有风险,就是最大的风险。” 这句话该如何理解呢?而在本段之前刚刚对于风险管理水平进行了分层,那这句话是否是可以理解为:风险会从多方向来袭,企图缩短软件的生命周期,而所谓“没有风险”只是没有预见风险,并且没有对其未来的风险情况进行评估呢?

答:暂时回答不了。

问题四在整本书中没有许多代码的实例也没有提出具体的案列,反而全是许多形象的举例,是不是软件实践对于编程要求不高?

答:当然不是,软件工程只是更注重教我们软件规范化,只是默认我们编程能力都很强。

问题五:在第13章中,讲到了Bug,如果一个软件核心功能没有太大问题,但是就有很多那些小bug,会对这个软件的口碑产生很大的影响,那么还能发布吗?是不是为保障口碑而延期发布,回去修复bug呢

答:如果bug对软件产生了很大的影响,就一定要修复了才能推出。

问题六 在第13章中提到的黑盒测试与白盒测试分别是什么时候使用?

答:在软件合作的时候没有涉及到测试,暂时还不知道。

问题七 在第八章中的需求分析中,要求找到软件的利益相关者,那具体应该怎么选择具体的需求分析人群呢?

答:具体情况具体分析。

二、收获与体会

通过这一学期软件工程这门课,我学会了很多关于软件的知识。尤其是通过小组合作制作的黄金点游戏,让我懂得了在软件制作的过程中合作和交流的重要性。由于前期组内有大佬的指导,我们小组的分工就十分的合理,前期计划的十分完美。但在最后合代码的时候,由于前期交流不够,在合代码的时候浪费了很多的时间,尤其是我负责的数据库部分拖了很大的后腿,最后是在其他组员的帮助下,成功将数据库接到软件使用中。还有最让我印象深刻的是:不要把事情拖到最后一天,不要把事情拖到最后一天,不要把事情拖到最后一天(重要的事情说三遍),因为没有过于合理安排与计划,我们组的作业往往都是最后一天加班加点完成,真的很难受!!!

【4】. 刘川

姓名 刘川
学号 201731024140
第一次博客链接 https://www.cnblogs.com/swpulc/p/11505514.html

对比开学时的迷茫,现在反而对软件开发的流程与方法懂得了不少,也明白了软件开发的不易,一个好的软件离不开各个环节的通力配合。回望过去提出的问题现在回过头看,清晰了不少。
如:

  • Question
    在书中第九章中提到了“PM”的概念,PM作为一个管理/领导者,PM具体应该包哪些那些素质和能力?,比如与开发者一样具有编码能力,或者对一个项目的可行性与工程量有理解等?

    答:一个合格的PM需要熟悉产品从业务调研、需求分析到实现过程、产品发布的整个流程;负责新产品的创新和预研,完成新产品的用户需求定义、产品功能/UI/交互的设计;负责制定项目开发计划并跟踪进度,确保项目如期完成;收集市场反馈与用户行为及需求,提升用户体验;撰写详细的产品需求文档及原型设计文档,跟踪产品研发进度;负责把控产品推进进度、协调突发问题与质量管理工作等能力。问题的解答来源于软工作业的过程,从完成一个项目中得到能力与知识的提升。

掌握的技能:
<1>编码能力的提升
<2>对软件开发的流程有了更加清晰的认识

总结
在这次项目中我遇到了很多的知识的盲点,但是我通过了上网查询以及请教同学等方式都一一解决了项目中的难题。总而言之,软件工程这门课让我对编程有了新的理解和认识。
【5】李朋珂

姓名 李朋珂
学号 201731024125
第一次个人作业博客 https://www.cnblogs.com/jianmoxiao/p/11507434.html
  • Question1
    软件工程是怎样与IT行业紧密相连的,他又在其中有什么创新?

    答:第十六章IT行业的创新,如今软件市场我们能够想到的功能都基本实现,还有哪些创新的地方。IT创新可以有很多形式。例如,它可以用于把业务流程变成自动化的IT功能、开发应用打开新市场,或者实施桌面虚拟化增加可管理性并削减硬件成本。很多公司尝试通过在公司的不同部分创建创新团队来制度化创新流程。其他公司依赖于员工个人在鼓励创新的环境中迸发。有些CIO和其他高级IT主管发现,他们在开发和鼓励IT创新方面的时间付出越来越多了。IT创新很难量度,所以很多公司都把IT创新与IT支出的投资回报率(ROI)等同看待。

  • Question2
    软件是怎么解决这些需求的?现实世界中的实体和属性在软件系统中是怎么表现和交换信息的?

    答:我们在软件的设计和实现的过程中,怎样才能构建一个与客户所要求的软件类似的模型呢?我们不仅要把需求分析透彻,还要建立多个模型相互比较,选择最优的那个。建立的模型就是把用户的需求所描绘了进去,在仿照模型去编写软件,这样就可以解决用户的需求。

收获技能
1.单元测验方法。通过博客作业的引导和学习,明白怎样通过用VS和代码去测试自己完成的代码,以及查看覆盖率等功能。
2.了解github这个强大的代码管理的软件,知道怎么从本地上传文件到大的代码网站里,根据博客的引导和作业。
3.代码的能力,对C#中计算器,计数器,导入文件,导出文件等功能,以及游戏的发布,使用都有了深入的了解,根据博客的个人项目和团队项目以及网站的查阅和资料的学习。
4.对软件工程的生命周期,以及需求分析,结构化设计都有了详细的了解,根据老师上课的讲解。

体会与总结
在本次课程中做了很多工作,是在以前没有的经历。感受了软件开发的全部过程,对已掌握的技术有了进一步的提高,学习了如何进行可行性分析、软件需求分析、软件过程实现、软件测试、软件发布、软件维护等等。在团队合作中,也遇到了许多问题,选题、团队分工、进度协调等方面都遇到了许多问题,在与组员的协商合作下,收获了许多经验与教训。感谢开设这门课程并细心指导我们完成项目开发,这使我了解了如何成为一个软件工程师,收获良多。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!