团队作业——总结
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/ |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/3379 |
团队名称 | RTD |
这个作业的目标 | 总结团队每个成员在这个课程中的收获 |
一.队员列表
李昕(组长) | 201731062106 |
田昊其 | 201731062325 |
何恒 | 201731062116 |
余稀伦 | 201731062315 |
李航 | 201731062118 |
王俊 | 201731062120 |
刘世翔 | 201731062108 |
张吕月 | 201731062202 |
二.团队成员总结
李昕+201731062106
第一次作业博客链接:https://www.cnblogs.com/riverspring/p/10544053.html
尝试对当时自己提出的问题进行解答:
第一个问题答案:每个团队在讨论时必定会选择合适自己团队的开发方法,对于模块连接这一方面,在写概要设计时就会讨论好,而且人物分工时都落实到了人头上
第二个问题答案:这是不可避免的,或多或少都会有重复的任务部分
第三个问题答案:根据我查找的资料,对于一些外行人来说他们对产品经理的印象如@罗三的回答:https://www.zhihu.com/question/20538364/answer/35718165
而和@刘飞的回答:https://www.zhihu.com/question/20538364/answer/54520965
所以对大多人来说,这个职位看起来门槛低收入高,不需要掌握很多的专业知识,有很大的吸引力。根据下图:
产品经理这一词语的搜索量逐年上升,说明产品经理这一职业依旧火热。根据https://www.zhihu.com/question/27407196看来大多数回答都有产品经理这一词语出现,而其他几个职位也大量被提及,但因为前面说到的原因,虽然在大多数计算机专业学生眼里这几个职业相差无几,但在一些外行人眼里,产品经理这一职业相对于其他吸引力更大
第四个问题答案:根据定义,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”,软件开发的快速不一定影响软件质量(确保软件开发人员在有丰厚经验的情况下,如果经验不足快速应该会影响质量)。软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
第五个问题答案:敏捷流程在其他方面的用处目前没有找到。敏捷流程注重人员的沟通,忽略文档的重要性,若项目人员流动大太,又给维护带来不少难度,但这些问题都是可以避免的
新的问题:这门课中最后项目的alpha版本的发布与beta版本的发布是不是相隔时间太短了?
掌握到的技能:学会了一些以前没有用的项目测试软件,和如何用一些软件开发软件原型模型
体会与总结:完成一个项目还是费了很多心血,学会了怎么任务分工,一个项目从头到尾的流程,许多新的知识。写项目不能一个人闷着头做,要多讨论,要互相监督
田昊其+201731062325
第一次作业博客链接:https://www.cnblogs.com/tianhaoqi/p/10558016.html
尝试对当时自己提出的问题进行解答:
问题1:暂时还无法自己解答,因为这个问题涉及到以后的出路问题,同时这个问题又与国内公司如今现状联系紧密,所以没有对这方面有深入了解的人,是无法解答这个问题的,本人过了很长时间也没有收到一条对此问题的回复。
问题2:对于社交应用软件和高流量软件或APP,可使用A/B测试,而对于单机应用,游戏等,使用这种测试方法就略微不妥,效率极低。这个问题我是通过查阅网上资料解决的,但是感觉解决的不是很好,还是很疑惑。。。
问题3:我认为对于程序员来说最好的学习方法是注重实践,理解放后面。我是通过看了下面这篇文章来解决掉这一问题的:
问题4:在软件开发初期是不能进行软件优化的,因为在项目早期就进行优化,会导致你的代码难以阅读,或者会影响运行。另一方面,在项目后期,你可能会发现之前所做的优化没有起到任何作用,白白浪费了时间和精力。 软件初步代码编写完成前进行的所有优化都可被称为过早优化。软件优化应该在项目开发中期进行最为合适,并且应该将项目优化和开发分为两个单独的步骤来做。这个问题是通过阅读这篇博客解决的,博客链接:博客链接
问题5:这个暂时还不知道,通过查阅了大量资料也没能得到答案,也许是这个属于机密吧(笑)。
新的问题:在团队开发项目过程中,如果遇到几个“划水”的队友时,作为PM应该怎么做?
掌握到的技能:更加加深了团队合作,同时也学习到了许多以前不了解的专业知识,如搭建服务器,TCP/IP协议通讯等。掌握这些技能是通过这么长时间以来的团队项目开发以及上网查询资料掌握的。
体会与总结:通过这一学期的学习,使我对项目开发过程的认识和经历更加深刻,并且了解了如软件测试方法,github管理源代码等许多技能及应用,希望在将来的工作中能够利用好这些技能。
何恒+201731062116
第一次作业博客链接:https://www.cnblogs.com/hehengzhengwenjuan/p/10557577.html
尝试对当时自己提出的问题进行解答:
1.我认为之所以不将各种编程语言进行统一糅合是因为每一种语言有各自擅长的地方,如果将各种语言糅合则不一定能使统一起来的语言在各个方面都能最优,而且糅合起来的语言势必过于复杂,有太多重合的地方,给学习增加更多困难,况且,如果只是需要某一方面的编程需要来学习这种糅合的语言反倒麻烦了。
2.成功的团队如何创新,马云的团队就实现了这一点,我认为需要团队中人人有创新精神,有创新意识,并适时注入新鲜血液,团队领导人同时要与时俱进,形成企业文化。
新的问题:无
掌握到的技能:经过这学期的学习,我掌握了自主学习与团队合作,学会了诸多测试的方法,掌握了软件开发的流程,尝试到了团队合作的好处。
体会与总结:和团队成员之间要及时交流,编程时最好大家都在一起进行,团队成员之间需要互帮互助,在软件开发过程中,软件需求分析很重要,后面的软件开发过程就需要根据需求软件需求规格说明书进行开发,同样的,可行性分析也同样很重要,需要在开始时量力而为。
余稀伦+201731062315
第一次作业博客链接:https://www.cnblogs.com/catwhishaw/p/10571036.html
尝试对当时自己提出的问题进行解答:
不知不觉一学期的学习又快结束了,回顾以前我第一次作业提到的问题都已得到解决,对于一些专有名词我一般是通过网上查阅资料或者翻书解决。
对于一些编程上的难题则是通过询问编程能力强的同学或者网上查阅资料解决的,而团队之间分工的问题则是通过大家一起协商,一起讨论解决的。
新的问题:
1.这门课程对个人有着哪方面的提升?
2.这门课程是否更应该注重我们编码能力的提升?
掌握到的技能:
1.写各种软件开发的文档的能力。
2.利用Visio进行专业的软件绘图。
3.熟悉利用GitHub这种源码管理网站。
深刻体会与学习总结:
1.体会到了在开发项目时,一个团队的重要性。
2.开发过程中队员之间一定要积极交流。
3.这学期学的东西很多当然任务也比较繁重,但是通过这些任务我更进一步的提升了自己。
李航+201731062118
第一次作业博客链接:https://www.cnblogs.com/sasd221822/p/10561378.html
尝试对当时自己提出的问题进行解答:
问题“结对编程”解答:在实际的代码编写过程中,体会到了结对编程的同伴需要相互熟悉的伙伴才能真正体现出来结对编程相对于个人编程的好处,同伴能在自己编写代码的同时提出代码中存在的问题,能将代码中存在的问题在更早的时候解决。
其他问题尚不能自行解答。
新的问题:没有产生新的问题
掌握到的技能:通过作业和实际的代码编写过程学会了对代码进行测试的多种方法,了解到了团队项目开发的流程等,初步体会到结对编程的好处。
体会与总结:通过本课程一学期的学习和团队项目的开发体会到了软件项目的开发过程是困难重重的,而这次的团队项目我没有很好的完成自己的任务。对软件开发的过程有了初步的了解但没有更深刻的认知,还需要更近一步的实践和学习才能了解得更深刻。
王俊+201731062120
第一次作业博客链接:https://www.cnblogs.com/123wj/p/10571215.html
尝试对当时自己提出的问题进行解答:
1:第三章(P51)人们对待职业有着不同的态度,当一个人对于工作处于临时寄托,或者简单的将其视为一项工作而并非热爱工作,是否有一定的方法改变他们对于专业或者工作的一定的观点,从而从根本的让他们不说热爱,至少喜欢上那门工作。
答:对于一项工作,只有当一个人具有完成工作的能力时,他才会渐渐喜欢上那门工作。所以人们不应只关注于提升兴趣,更应该提升个人的能力,只有不断的提升自己,从工作中获得满足感和成就感,才能使一个人渐渐的喜欢上他的工作。
2: 第四章(p81)当2个人驾驶员与领航员发生观点上的分歧,如果并不能通过讨论解决,而他们的级别又没用差异,拥有同样的决策权力,改如何解决。
答:应该在过程的一开始就确定一个拥有决定权的人,他可以是通过选举推荐出的,当发生观点上的分歧时,若不能通过讨论解决,决策者应当在这时站出来,决定出方向。
3:第十六章(p361)动量与加速度,提出了问题,但是并未给出解答方法,所以我们到底是该选择动量大还是加速度大的事件。
答:我们应当通过分析它的未来发展方向,避免动量大的走向加速度减少的方向,同时争取使他走向加速发展的方向。
4:第13章(p287)实战中的测试时,为什么是只满足最低的条件前提,而不将要求提高,从而避免在未来遇到其他的问题。
答:因为实战测试时,将所有条件满足的测试是不现实的,但是又不能不进行测试,所有满足最低的条件就行。
5:第5章(p97)既然在开发过程中有着许多的问题,例如写了再改模型,都有着缺陷,如何规范一种开发流程,从而使缺陷降低到最低。
答:所有的模型都有着他的优点和缺点,所有没有能将缺陷降低到最低的模型,只有适合开发过程的模型,我们应该在需求分析时就分析到未来的开发模型,只有这样才能使开发缺陷降低到最低。
新的问题:暂无
掌握到的技能:通过这学期的学习,我学习到了类图、顺序图、数据流图、、、同时也明白到了软件工程的开发不仅仅只是编写代码。这是一个具备完整流程的开发过程,需要进行准备,可行性分析,需求分析等等。。同时自己的思想也通过这一学期的学习有了一定的转变,开始渐渐的开始考虑自己的未来。
体会与总结:
通过这学期的学习,使我深深的明白了自己在专业上的不足,这不仅仅会影响自己,更会拖累到自己的组员,对此自己也十分的愧疚。而若想在这个专业学习下去只有不断的强大自己,只有这样才能在未来能够有自己的选择的权利。
刘世翔+201731062108
第一次作业博客链接:https://www.cnblogs.com/liushixiang/p/10555912.html
尝试对当时自己提出的问题进行解答:
一学期的学习又快结束了,我第一次作业提到的问题都已得到解决,
想要不降低合作编程的效率需要规范代码格式,在项目编码前先进行讨论后再行动,没有规划的行动才会导致降低程序员效率
敏捷开发有如下特征:
1. 工作在小的团队中
2. 团队是跨功能的-包括测试人员,开发人员,文档开发人员等等
3. 短迭代-利用短迭代方法来交付软件
4. 相较于文档,敏捷开发更注重面对面的交流
5. 敏捷不是一个过程,而是一个软件开发的形式或者方法
6. 敏捷可以与软件过程如CMMI等一起实施
要保证软件的质量首先就要获得完整的需求,在需求分析阶段做了大量的工作与客户各个环节的代表性用户进行沟通,充分了解和熟悉客户的业务。并且从需求到设计阶段都保持与用户的沟通和交流。让用户的业务专家一直参与我们的需求,分析和设计工作。其次我们会在需求分析后就编写测试计划,在开发的每个阶段都进行相应的测试来保证代码是乎合相应需求的。在代码编写过程中,每完成一个类都由程序进行单元测试,每完成一个功能点或模块都要进行集成测试,每一次集成测试都对上一次的已经测试通过的产品进行迭代, 也就是以前测试成功的都会加入到本次测试中来。使得每个完成的功能和模块完成后都是一个可以运行的,可以看得到的产品;同时也欢迎用户来见证我们的集成测试结果。代码编写完成后进行最后一次集成测试,然后交由独立的测试小组对项目进行系统测试。
新的问题:
1.这门课程的项目的进度是否应该别那么赶?
2.这门课程主要进行的是团队训练,但是否缺少对个人能力的提升?
3.在个人有足够能力之前进行团队训练是否合理?
掌握到的技能:
1.写各种软件开发的文档的能力。
2.熟悉利用GitHub这种源码管理网站。
3.了解到了c#新插件smoblier的使用
4.学到了用visio画图
体会与总结:
1.体会到了在开发项目时,团队分工和配合的重要性。
2.对于自己不太了解的东西,应该先进行深入了解后再进行行动。
3.开发项目更应该多交流,聚在一起讨论,这是十分重要的。
张吕月+201731062202
第一次作业博客链接:https://www.cnblogs.com/mooonnnn/p/10556004.html
尝试对自己当时提出的问题进行解答:
全栈工程师相比于其他,由于要独立完成一个任务,所以对整个项目的把控更强,思维更全面。在本学期的项目实践中,我深刻体会到沟通对整个项目的影响,而全栈工程师几乎不需要沟通成本。至于应该广泛学习还是专攻某一方面,我认为应看个人能力及选择。
本人与团队中另一人员由于是室友,因此时常进行结对编程。结对编程固然需要投入时间与精力来达到两个人的配合,但两个人默契达到一定程度后,进行结对编程是有很多益处的。例如互相学习,在某一方泄气时互相鼓励、互相督促。且相较于团队,两个人的沟通成本明显低很多。
没有体会过,但一个团队有关键性人物还是很重要的,可以领导整个团队。
在软件开发过程中,对代码进行复审,去掉不必要的代码,同时注重代码注释的编写,使代码的可读性更高。
首先企业价值观是企业文化的核心,好的企业价值观可以影响员工,带领企业走向成功。《构建之法 现代软件工程》书中写到“已有的销售团队往往不愿意推广颠覆性的新产品”,“韦尔奇往往通过组建新的团队来推销,或者单独核算这些团队的利润,让它不受成熟产品的负面影响。”。对于企业来说,为了保证企业的运营,追逐利润是很重要的,但创新同样重要。在创新产品不如成熟产品利润的情况下,我认为应该在保证成熟产品的利润前提下,一步步推进创新产品。
新的问题:
虽然实际地进行了一次团队项目开发,但我依然对开发过程中一些流程没有很好的理解。
掌握到的技能:
①会运用axure进行原型模型的开发。
②体会了团队项目的整个开发过程,知道一个软件的开发需要什么。
③学会了画盒图、结构图、状态图、数据流图等。
体会与总结:
在本学期前八周系统地学习理论知识时,并没有太多体会。而在进行了长达几周的团队项目之后,我对这个专业有了新的认识。以前认为软件工程专业只有写代码,而现在知道软件工程编写代码只是较小的一部分。
至于团队项目,我认为总的来说还是比较成功的,团队的成员都成长了。只是团队沟通是我们团队一个很大的问题,没有及时进行好的沟通,一定程度上影响了我们团队项目的进程,再者我们团队也没有一个好的PM。当我在复习本课程课本知识理论时,结合之前的经历,发现了我们团队有很多欠缺的地方。
即便如此,我依然收获了很多。例如学习了别人的项目的好的地方,提高了自己的答辩能力,掌握了新技能等。总的来说,这门课是一门很有意思的课。
最后,我们的项目及相关文档已全部上传至GitHub,链接:https://github.com/leerijin/YouQingLiao 欢迎大家使用交流。