最后一次团队项目总结

这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1
这个作业要求在哪里 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/3379
团队名称 唱跳rap编程
这个作业的目标 将这个学期的学习做一个总结

队员列表:

201731062225

朱双磊

201731062226

林迈

201731062228

叶虎

201731062216

齐鹏

201731062212

文宇豪

正文:

朱双磊(201731062225):

一、请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。  

第一次博客作业链接:https://www.cnblogs.com/z201731062225/p/10568960.html

二、尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的

问题一:

  答案是肯定的,无论是自己写还是做项目都应该做测试,这样才能更有效的提高自己。

问题二:

 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。主张简单,拥抱变化,做到极致。

问题三:

  找到适合与你分享的人,之人值得你信任并且要有一定能力,他的身上一定要有和你默契的地方和契合的点。他要有坚持、肯吃苦的精神。

问题四:

  肯定是从第一次要开始考虑用户的体验,一个软件如果体验不好,这个就是不太受欢迎,不太成功的。

问题五:

文档是软件开发、实施规范的体现和指南,按规范要求生成一套文档的过程,就是按照软件开发、实施规范完成一个软件的生命周期过程,所以在使用工程化的原理和方法来指导软件的开发和实施时,应当充分注意软件文档的编制和管理
很多人认为一旦要编写文档,就需要编写全程文档,这文档、那文档,把大家弄的都很累,但是最后对产品质量进度都没有保证,我们编写文档并不是为了写文档而写文档,我们写的每一个文档都非常有用,例如各类《操作手册》,让客户能够独立的使用软件,减少现场人员培训和实施时间;《技术协议》,规范双方的权责义务,便于需求范围的控制;《调研报告》,将客户的需求客观完整的反应出来,给开发人员做指导;《项目计划》,对整个项目的宏观把握和项目进度的追踪;将最关键的文档用最简单的语言写出来,给客户带来使用软件上的便利,为开发和实施人员提供基础资料,对软件的生命周期过程进行监管和控制,一切的一切都是为了整体项目的顺利进展做铺路石。

三、是否产生了新的问题?请提出。

四、经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。

在这一个学期的学习中,我学会了很多的新技能,首先,接触了博客园,建立了自己的博客,并在上面写一些自己在编程之路上的一些知识点和心得体会。再者就是学会使用GitHub,用GitHub管理源代码,用GitHub克隆大神的代码。还有就是学会了用Visio画一些简单的图,用来方便的描述项目的某些东西。学会了使用QucikTest来此时一个软件,等等。

五、有什么深刻的体会,对自己一学期学习过程的总结。

这一个学期中的学习路程可以说是很艰辛的,首先是接触了一些以前从未接触过的东西,像博客园,GitHub,QuickTest,Visio。然后是站在了一个新的角度去看待这个专业。本来认为这个专业就只是学习如何编代码,如何解决一些技术上的难题,而现在才明白这个专业并不只是编代码,还要以工程学的方式来学会如何开发一个质量,速度和成本相互平衡的项目。再者,就是我在这一学期的项目实践中,做了项目组长的职位,压力比较大。但也在这较大的压力中成长更多。了解到平衡一个团队的重要性,学会了如何推进一个团队做项目。总之,这门课程,使我受益匪浅。

叶虎(201731062228):

一、请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。  

第一次博客作业链接:https://www.cnblogs.com/damaoya/p/10574577.html

二、尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的

 问题一:8.3.6人类学调查

       书上写着“原来我并不了解海量中国用户,原来真实的用户并不是我想象的那样”,虚假同感偏差,往往觉得自己怎么样别人也该怎么样,其实很多用户他们自己都不知道他们想要什么,只知道你做出来的东西他们喜不喜欢,而且大部分的用户受文化教育的程度并不高,他们更需要的是傻瓜式的一键操作,要学会针对人群需求来做。要有着自己明确的目标。但是如何才能寻找到用户的真正需求呢?用户真正的需求就在原来没有的体验,只要你能让用户身心感到愉悦,就能成功的抓住用户。 

    问题二:10.1.4从典型用户到场景

    有了典型用户之后,还得决定每一个典型用户的目标,用户想使用系统达到什么目的,达到目的所经过的过程就是场景,可以更方便更快捷,让用户感到更贴心,就像前几天我寄快递,我粘贴文本上去之后它就自动提取了信息,不用我再自己慢慢输入,方便用户的生活就是最主要的东西,用户也会喜欢。但我们该如何去完善这个过程?我们应该根据自身的体验来完成,真正的参与到其中去,才能知道用户想要的是什么,实地考察是非常有用的方法。

    问题三:12.1.5不让用户犯简单的错误

    不同的场景需要有不同的应对策略,高明的设计就是让操作者不用额外的花费精力来做一些没有必要的事情,不足要经验和专业知识即可凭直觉完成正确的操作。简单的来说发明一些东西就是为了方便我们的生活,如果因此变得更加复杂了,那就与我们的初衷背道而驰。设计出来的东西本就是为了方便用户的生活,不会因此使用户的生活变得更加麻烦。

    问题四:14.2.1测试的角色要独立出来么

    测试角色是否要独立出来?人肉认证是否又是完全可信,我们该如何去寻找一个两全之策?是否还需要专门的测试人员对这方面进行测试?测试角色还是有必要独立出来,更能发现问题。只有选择安全性高一点的放法,需要专门的测试人员来对这方面进行测试。

问题五:16.1.5要成为领域的专家才能创新

    难道一定要在这个领域中足够权威才能创新吗?不应该是不同的人看问题的角度不同才能更加发现问题吗?

权威都是在创新中走出来的,就像刚开始哥白尼提出地球是一个球时,尽管大家都不相信,可那就是真理,但在权威面前,这种创新是很困难的,因为不是每一个人都是无私的,不同的人看问题的角度不同,但也是外行看笑话,内行看门道。

二、新掌握的技能

1、学会了一些新的软件。

2、学会了如何协调团队里的队员,高效的完成整个项目。

三、体会

学习了这门课程之后,明白了一个项目的完成不是靠一个人的努力,而是一个团队里每个队员的努力。各个成员之间的相互协调也是不可或缺的。一个软件的开发不仅仅只有编程的过程,还有之前的需求分析,和软件开发出来之后的维护过程,一个团队想要做出一个很好的项目需要得努力不单单是一个方面,全方面的要求。除此之外,对于这门课程最大的印象,就是对于测试的要求,测试也是软件开发过程中很重要的一环。

齐鹏(201731062216):

一、请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。  

第一次博客作业链接:

https://www.cnblogs.com/singqp/p/10567038.html

二、尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的

回想一下你初入大学时对软件工程专业的畅想

虽然在高中时期对编程感兴趣,但总体来讲对软件工程这个专业并不是很了解,只晓得毕业之后会当个码农,而且主攻软件这部分。但对于编程还是很感兴趣,于是刚进大学就加入了团队,并在团队里学习编程,想着通过团队这个学习之地提升自己的实力。

问题:

1.第六章P122:许多号称敏捷的项目实际敏捷不到哪里,这时候的敏捷流程有什么用?因为它所要达到的敏捷并没有体现出来。而此时如果用其他的开发方式是否更好?

2.第八章P157-158:对于用户需求的调研,通过调查问卷是否靠谱?通常用户在没有实际利益的驱使下不会主动配合填写问卷,或者由于某种利益而胡乱填写,进而导致问卷的失效,问卷调查的准确性如何保证?

3.第九章P185:既然PM做开发和测试之外的事情,那PM又如何与开发和测试人员达成共识,进而开发出用户和开发测试人员都满意的软件?

4.第十章P206:对于典型用户的研究是否对其他不典型用户无益?毕竟大家都可以使用这款软件,如何通过典型用户的研究来保证其他用户的利益?

5.第十一章P246:开发完成后的代码仍有许多BUG,要留到稳定阶段再解决,那么什么是稳定阶段?在稳定阶段之前又该如何处理BUG带来的问题?

回答:

1.敏捷流程是因开发速度跟不上硬件和用户的需求的增长速度而出现的新的软件开发模式,虽然在实际情况下不是很明显地感受到敏捷,但在某些大型或者超大型项目中,敏捷流程很有成效。

2.通常情况下问卷调查在汇总后会进行筛选,将那些无效的问卷剔除,最后在进行统计。而对于问卷的准确性保证,调研方可以采取奖励措施保证用户能正常填写出有效问卷。

3.PM分为很多种,由主管用户方面的PM,也有与技术人员交流的PMPM们一起将项目规划并完成。

4.典型用户的研究仅针对软件的主要功能,而非典型用户并不太会需要这些功能,进而达成协调,双方利益都得到保障。

5.稳定阶段是软件能够稳定运行的阶段,即使该阶段中软件的bug还有很多,然后在该阶段中通过反复测试找出bug并进行解决。

掌握情况:

掌握了很多新方法来编写程序,并且在语言中也掌握了很多以前没学过的方法。

体会:

之前对软件的理解稍有偏差,经过一学期的学习,对于软件的理解更深了,也纠正了之前偏差,同时经过学习了解到很多方法和技术来更好地编写程序和测试。总之学习到很多有用的东西,并且这些东西能很好地运用。

文宇豪(201731062212):

一、请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。  

第一次博客作业链接:

https://www.cnblogs.com/Nauthiz/p/11085331.html

1.第三章p60页中第四问“学什么,怎么学,核心竞争力是什么?”下面的链接http://www.zhihu.com/question/27180582中用户池建强提到“以最小的代价解决问题!知行合一,方可无敌于天下。” 如何才能做到知行合一。

  现在看来解决问题的能力确实是无法速成的,作为一个程序员只能依靠时间,代码量,和惨痛教训历练得来。最后磨炼成一个能稳准狠的解决问题的优秀程序员。

2.第五章p82中提到主治医师模式在一些学校的软工课上往往退化为“一个学生干活,其余学生跟着打酱油”,如何避免一个团队中能力差异过大导致其余人员难以起到作用。

  在这次团队项目当中,我意识到了主治医师模式对于学生而言,极容易编程一个假团队,基本依靠主要的程序员来完成任务。所以在可行性分析的阶段要解决能否完成的问题,尽量采用功能团队模式,能力较弱的程序员

也能在整个团队项目中起到自己的作用,解决一些比较基础的问题和功能,节省时间。

3.第八章p157-158中,为了获取用户需求,提到了用户调查问卷。如何让问卷调查更轻松的被大众接受,减小问卷调查收到的干扰,提高问卷调查的可靠性和稳定性。

  可以在问卷中增加甄别问题用来提高问卷的可靠性,甄别问题是为了选择符合的用户,在项目前期框定本次调查的用户范围了,用甄别问题把范围量化,譬如邀请哪种类型的用户?那个年龄段?什么收入水平?等等, 每

个项目的目的不同,通过甄别问卷能够尽可能的找出有代表性的用户。

4.第十二章p253中提到“用户需要帮助,但是用户没有那么笨”。如何将帮助或者引导的程度设计得恰到好处,满足用户需求。

  理论上最好的app设计就是不需要新手指导。但是一般情况下图文结合的引导可以更好的帮助用户使用app,需要的时候才进行引导,不在不恰当的时候给用户添麻烦,也不完全不吭声进行隐藏。APP的新手引导除了首次打

开app,以及上一条所说在合适的需要的原则下,还有地方可以利用就是空状态。空状态的情况下,也可以给予用户提示去做一些任务,满足用户的需求。解释清楚为什么要做这一步,这一步可以为用户带来什么样的好处。

5.第九章p198中提到了一个来自微软的故事,在用户没有要求的情况下,还有必要添加上自己认为不错的功能吗。

   我认为,完成用户需求优先,在有富余的情况下添上自己认为不错的功能是可以的,就算不能出彩,也能积累经验,什么是用户需要的,什么是他们不需要的。

是否产生了新的问题及提出

1.在团队的分工中,存在能力的差异,如果有些队员停留在初始技术,导致其他队员工作量过大,不知道该怎么解决这类问题。

2.对未知风险的规避能力太弱,而且不明白如何将项目的任务进程时间精准到小时,对时间的安排没有一个明确的认知和经验。

经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。

1.单元测验方法。通过博客作业的引导和学习,明白怎样通过用VS和代码去测试自己完成的代码。

2.对软件工程的生命周期,以及需求分析,结构化设计都有了一定的了解,并且实际参与了一个项目的需求分析和详细分析的过程,在实战中学习。

总结

经过这学期的学习,首先我了解了软件工程项目团队是如何运作的,学习了如何与他人合作完成工作,怎样更好地交流。这是我在团队项目的完成中所产生的体会和感悟。同时真切的认识到了风险管理的必要性。

同时认识到了阶段性测试的必要性和其功能,很多问题都是在测试中发现的,对白盒测试黑盒测试有了一个直观的感受。

林迈(201731062226):

一、请回望第一次个人作业,你对于软件工程课程的想象和提出的问题。

第一次博客作业链接:

二、尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实际,或者讨论弄明白的

 1.软件能否在平台上抛出预删数据的测试DEMO,收集用户反馈(P96,开发流程)?

需要,收集用户的反馈有助于软件的更新以及对该项目今后定位的重新思考。

2.在做需求分析时(无甲方,独立开发),调研结果具体到那种程度才能确定实施设计(P151,需求分析)?

1)估算出用户使用量是否能让团队获得收益  2)估算出用户的使用群体在什么阶段  3)用户种类的定向化或者广泛化

3.应聘的时候,研究生学历和实际成果哪一个更为重要呢?(因为周围的人态度各不相同)

经过一些团队大佬的讲解,结合他们的经历,发现他们进入大公司更多是跟个人的项目经验有关

个人总结:

经过这次的团队编程,我理解了一个团队沟通的重要性,及时监督、及时抛出问题共同讨论十分重要,还有前期的规划,以及辅助制图能更快的帮助我们理解和编程,总之,感谢有这么个机会。

团队项目GitHub地址:https://github.com/damaoya/-2.git

猜你喜欢

转载自www.cnblogs.com/z201731062225/p/11087035.html