标题 | 链接 |
---|---|
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2019FZUSEZ |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2019FZUSEZ/homework/10151 |
团队名称 | |
这个作业的目标 | |
作业正文 | https://www.cnblogs.com/fzu-tonghao/p/12046127.html |
设想与目标
我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
想要解决的问题是人际交往以及信息整理的问题
定义得很清楚
对用户和场景描述和考虑得很清晰
我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
没有达到,仍然有很多功能尚未实现
用户数量尚未达到预期
和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
质量提高了,特别是在分工的交流上
不同的人对接工作沟通更容易了,更容易理解对方在说一些什么话题
用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
用户量以及用户对功能的接受程度和我们事先的预想不一致
我们离目标越来越近了
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
如果历史能重来一遍,我们会把任务更加细化,将各个小部分落实到每个人身上
计划
是否有充足的时间来做计划?
我们在冲刺开始前做好了计划
团队在计划阶段是如何解决同事们对于计划的不同意见的?
希望大家都能够多多发言,表达自己对产品的想法,以及自己的想法作用在产品上有什么好处
不过这个过程中并没有出现双方谁也说服不了对方的情况,如果这时候出现分歧的话应该会团队共同投票
你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
没有全部完成
因为计划总是赶不上变化
主要原因还是大家是边学边做的,有的功能看似简单,其实需要非常大的精力去实现
有没有发现你做了一些事后看来没必要或没多大价值的事?
在UI实现上其实并不需要那么早期就已经那么尽善尽美
因为安卓端的朋友仍然在学习的过程中,有很多的UI前端方面并不能达到像设计图那么完全
是否每一项任务都有清楚定义和衡量的交付件?
有明确的定义与交付件
是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
在这个过程中很多人需要考试
有的风险特别是考试,基本上就没什么精力可以分到技术学习,还有项目上来了
在计划中有没有留下缓冲区,缓冲区有作用么?
没有,因为在实现项目时不了解缓冲区
将来的计划会做什么修改?(例如:缓冲区的定义,加班)
每个人都应该明确缓冲的时间段,在缓冲区以外的时间尽量投入到项目实现中
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
如果历史重来一遍,我们会把安卓端开发的朋友三人分成两人与前端对接,一人与后端对接,就不会导致一些分工比较混乱。
后端的开发人员可以减少到两人,一个人负责与安卓进行对接以及与数据库进行对接,另一个人去实现数据库
资源
我们有足够的资源来完成各项任务么?
有,不过有些资源没有被很好地利用
各项任务所需的时间和其他资源是如何估计的,精度如何?
时间是用天数估计的,没有精确到小时,精度不高,主要是为了让队员更灵活地利用时间
测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
测试时间不够,人力够,硬件资源也够。有点低估
你有没有感到你做的事情可以让别人来做(更有效率)?
可能会吧,但是确定了自己的任务就要对它负责
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
对队员和时间管理更加稳固
变更管理
每个相关的员工都及时知道了变更的消息?
每个相关员工都及时知道了消息。因为每次变更的消息都是在群里实时交流或者面对面交谈,一有新的变更通知,相关员工都能及时收到并及时回复。
我们采用了什么办法决定“推迟”和“必须实现”的功能?
按照实现功能的难易程度和工作量大小,先实现核心的基础功能,其他不影响基础功能运行的功能都可以按照实际情况推迟。工作量比较大但是不影响基础功能实现的功能可以适当推迟,由大家共同讨论商议决定。
项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
定义的不是很清晰。
对于可能的变更是否能制定应急计划?
没有,都是按部就班,按照实际情况临时调整。
员工是否能够有效地处理意料之外的工作请求?
小部分意料之外的工作请求能有效处理,大家在遇到困难都是在群里提出与大家一同讨论,其他成员会的话也都会及时伸出援手。但是遇到一些大家都无法解决的困难也会束手无策。
我们学到了什么? 如果历史重来一遍,我们会做什么改进?
遇到困难在所难免,变更管理要有合理的任务分配和相应的资源投入才会有意义。如果历史重来,我们会调整好任务分配和资源投入,使得前期犯得错误更少,对后期造成的影响更少。
设计/实现
设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
原型设计是在第一次结队编程时,由组长哲涵带头做的,后续在需求分析时完善;
其余设计比如前端后端数据库什么的都是在需求分析时做的,由组内每一个人共同完成;
后续在冲刺前对各种设计进行了完善,由有疑问的人提出,再一起讨论修改。
是合适的时间,合适的人。
设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有碰到模棱两可的情况,在安卓端中存在跳转逻辑争议的问题,在后端中存在数据库设计争议的问题;
当碰到这一种情况时,先在组内提出,比如安卓组、后端组以及前端组,由组内成员共同商讨解决,若无法解决,则在整组中提出,一起讨论解决。
团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML,或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
团队运用了单元测试以及UML来帮助设计以及实现;
这些工具有限,单元测试有效地帮助我们成员进行Debug,而UML则帮助我们理清各种关系,更好地有条理地进行开发工作,而不至于盲目;
项目开始的UML文档与现在的状态没有太大的区别,基本上没有变化;
在一些微小的变化中产生,主要是为了在开发阶段的适应工作;
需要更新UML文档。
什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
在前后端的交互功能中产生的Bug最多,体现在用户对于动态的一系列操作上,因为这一项涉及到了数据的传输以及服务器,实现的代码逻辑较为复杂,再加上组内成员均为初学者,在网络上搜索教程实现的途中磕磕碰碰,遇到问题很难第一时间找到解决办法;
未发布;
因为组内成员均没有经验,在设计/开发时预料不到这种情况的出现。
代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
代码复审主要是审查是否遵循当初规定的代码规范,是否完成了它应该有的功能,所设计的代码是否简单易懂,是否有进行适当地注释,对于没有接触过的人能够快速地上手看懂这几个方面进行的;
使用插件进行代码规范审查,比如在IDEA里面下载使用阿里云代码规范,对于每一个文件都进行审查,严格地执行了代码规范。
我们学到了什么? 如果历史重来一遍,我们会做什么改进?
这次冲刺,我们除了学到了自己所负责部分的相关技术,更懂得了团结协作的重要性,我们已经尽自己所能,做到了我们现阶段能做到的最好的成果。这一个阶段所实现的目标和成果都更接近底层,很难有可以呈现给使用者的部分,如果重来的话估计会更合理的安排发布版本的可视部分。
测试/发布
团队是否有一个测试计划?为什么没有?
没有,因为主要是代码实现的人员自我进行测试,然后其他人提出想法,丰富测试的样例
是否进行了正式的验收测试?
还没进行正式的验收测试。
团队是否有测试工具来帮助测试?
目前还没有用测试工具来帮助测试。
团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
我们目前还没有一个有效的测试跟踪效能的方法,这也是我们下一阶段需要重点考虑 的方面之一。
在发布的过程中发现了哪些意外问题?
一些手机的系统无法支持软件的安装。
团队的角色、管理、合作
团队的每个角色是如何确定的,是不是人尽其才?
团队的每个角色是在开始的时候进行确定的
虽然没达到人尽其才,但每个人在自己负责的部分都有所突破
团队成员之间有互相帮助么?
有,当有不理解的地方的时候,大家都会帮忙收集资料,以及给与代码上的支持
当出现项目管理、合作方面的问题时,团队成员如何解决问题?
哲涵:
我感谢俊宇、涵宇、文燕、钟玲、永铭同学对我的帮助,因为某个具体的事情:对于俊宇同学,在整个后端还没有任何思绪的时候,自己主动承担了后端的开发,从零学JAVA并做好了我们后端的框架,带动了我们队伍的整个进度,从他那里我学习到了JAVA语言的基础和JAVA后端的开发。涵宇和文燕同学则是我在项目中沟通最多的同学,感谢他们能够耐心听完我的想法,到了最紧要的环节总是需要他们出来承担任务,也没有怨言。钟玲和永铭则是帮助我完善了想法,这是一个从无到有的过程,让我们团队有了共同的目标
涵宇:
我感谢俊宇,哲涵,文燕和阿木。在具体实现socket连接和解析json的功能的时候,俊宇给了我很大的帮助,耐心的给我解释他们的原理,我应该如何实现相应的功能。哲涵身为组长,在整个过程中很好的给我们进行分工,同时还会找一些相关资料给我们参考,大大提升了我开发的进度。文燕、阿木和我同为安卓小组成员,在开发的时候分享给我一些相关资料,我有些不懂的地方也向他们询问。感谢大家对团队的付出!
俊宇:
我感谢哲涵,涵宇,阿木,钟玲,尚佳,文燕,永铭,俊宇。因为哲涵提供了服务器等硬件资源,教会了我们调试服务端的方法,并且身为组长,一直在带领和鼓励我们勇敢前行;因为涵宇做安卓端一直和我们沟通,互相解决bug,推动了前后端的对接工作。因为阿木、钟玲、文燕在前期制作了精美的ppt以及后期的前端界面,让我们的福大同好有了精美的UI;因为尚佳、永铭和我部署数据库时,他们提出了宝贵的修改建议,使得数据库更加完善,尚佳也在我们做服务端一筹莫展时教会了我使用springboot,解决了一个十分关键的问题,永铭提供了我们开会的场所,有了属于我们的秘密基地,沟通更加全面。我再感谢一下我自己吧,努力钻研,让我见识到了自己的强大,潜力无限。
阿木:
我感谢王哲涵、文燕和涵宇同学对我的帮助,因为某个具体的事情:对于哲涵,他是我们小组的组长,负责项目管理,当我,当我们遇到无法解决的问题时候帮助我们。文燕和涵宇他们是小组内的成员,遇到不知道的或无法解决的问题经常问他们,他们也耐心的跟我解释相互讨论怎么解决,每次帮助我解决思路枯竭的难题,给我提供新的思路。
钟玲:
我特别感谢王哲涵同学对我的帮助,作为组长,他真的非常努力地在做成员之间的润滑剂,而且在前期非常有耐心地帮助我上手Pxcook和PS,并且提供很多设计灵感,很多时候都是哲涵在拿主意,他对我的鼓励和支持让我更有信心完成自己的任务。很感谢哲涵可以给我这次和大家共同进步共同学习的机会,让我可以学习自己感兴趣的新鲜事物。也特别感谢阿木、涵宇和文燕在安卓开发的支持,以及尚佳、永铭和俊宇在后端的辛苦工作,很惭愧因为自己学习能力有限没有为整个团队贡献自己更多的力量,你们真的很棒,感谢大家对团队的辛苦付出!
尚佳:
我感谢王哲涵、陶俊宇同学对我的帮助,因为某个具体的事情:对于王哲涵,他是我们小组的组长,进行项目进度管理,尽管我的技术水平比较低,但是组长仍然能根据实际情况合理分配给我能完成的任务并鼓励大家克服困难,勇往直前。在我不知道怎么处理数据库和后端应用程序的时候,他虽然也是第一次接触,但是他帮我们找了大量有用的资料,给我们提供了很大的帮助;对于陶俊宇,在冲刺阶段,在我不知道从何入手的时候,他提供了一些我学习资源,让我有了很多学习的机会,并得到了提升。
文燕:
我感谢王哲涵、阿木和李涵宇同学对我的帮助,因为某个具体的事情:对于哲涵,他经常鼓励我们,在我们遇到困难的时候,他会给我们分享他找到的解决方案。并且他一直很乐观,一直在鼓励我们,让我们不畏惧困难。阿木和涵宇是安卓团队的一员,他们经常会在我不知道怎么实现或是解决问题的时候提供帮助。他们也会分享他们找到的学习资料,大家共同学习。
永铭:
我感谢王哲涵、陶俊宇同学对我的帮助,因为某个具体的事情:对于前者,我们从结队编程开始一起学习、一起工作,在原型设计以及结队编程时带着我完成了很多的工作;对于后者,在冲刺阶段,当我陷入迷茫不知所措时,是他帮助我,给出一个方面,在团队中出力不菲。
总结
你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
我觉得团队目前的状态属于CMMI中执行的档次
你觉得团队目前处于[萌芽/磨合/规范/创造]阶段的哪一个阶段?**
我觉得团队处于磨合与规范的那个阶段
你觉得团队在这个里程碑相比前一个里程碑有什么改进?
不同角色之间的交流更为流畅了,大家都能够很快去了解对方所表达的观点与意思
你觉得目前最需要改进的一个方面是什么?
我觉得最需要改进的是安卓前端与用户交互的体验吧,开始的时候没的分好具体的工作,安卓最后都在仅实现功能上奔波,没有更好的交互界面
对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。
对照敏捷开发的十二原则,我觉得小组做的最好的是
无论是团队内还是团队间,最有效的沟通方式是面对面的交谈
在团队内,我们时刻保持着交流,如果遇到不理解对方意图的时候,可以直接进行串门去了解对方的状况
在团队间的话,我们也会向其他组学习,就像是涵宇在学习ListView与Glide的结合的时候就请教了研途小组,促进组间之间的团队交流与技术进步
正如我们前面提到的, 软件的质量 = 程序的质量 + 软件工程的质量,那团队在下一阶段应该如何提高软件工程的质量呢?
代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
代码管理的话尽量使用Git,后端代码规范我们按照阿里的代码规范约束自己
整个程序的架构如何具体提高? 如何通过重构等方法提高质量,如何衡量质量的提高?
因为我们的架构是自己写的,如果可以的话我们将引入SpringBoot这样的框架,可以减轻我们后端的工作
其它软件工具的应用,应该如何提高?
使用同样的编程环境,加强软件之间的交流,最好是能够做到前后端都能在一台机子上进行检查
项目跟踪用户数据方面,计划要提高什么地方?例如你们是如何知道每日/周活跃用户等数据的?
暂未有用户的数据
项目文档的质量如何提高?
编写文档的人很多,但最好是要有一个人进行汇总,进行语言风格上的修改,使得文档的全文内容适合每个人去观看
项目管理有哪些具体的提高?
采用了腾讯文档工具来互相了解组内成员的进度
https://docs.qq.com/sheet/DTUxqamVhTmRYbE9D?tab=BB08J2&c=K16G0A0
照片
各组员对于最终项目成果的贡献度
昵称 | 学号 | 工作量 |
---|---|---|
莫多 | 131700101 | 7% |
涵宇 | 031702133 | 16% |
阿木 | 031702448 | 11.4% |
尚佳 | 031702444 | 11.8% |
永铭 | 031702425 | 7.8% |
钟玲 | 031702603 | 10% |
文燕 | 031702411 | 17.6% |
俊宇 | 031702113 | 18.4% |