05组团队项目-中期总结

陈子阳042101414 2023-11-19 22:30:10

一、团队名片

1、团队名片

- 队长博客链接

2、团队logo

- 团队id:05

- 团队名称:膜拜其他组

3、团队现场答辩总结

- 本次团队现场答辩,柯逍老师也对我们组进行了一些建议,对于配料的评分以及等级还需要重新定义合理的等级评判方式,而且对于配料的信息,由于晦涩难读,所以想要做到更好的用户体验,例如搜索相关功能,必须要加上拼音的添加。

- 团队图片:

下面是一些我们团队在α冲刺的讨论照片。

img

img

img

本次作业具体分工和各自得分比例:

姓名占比
陈子阳125%
王剑瑜111%
方赞95%
张超祥117%
陈翔焜95%
李嘉骏75%
林钟涛95%
叶可鹏95%
周嘉辉117%
李子慕75%
合计1000%

二、总结思考

  • 2.1 设想和目标
  • 1、我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

我们的软件就是要解决食品配料的信息差,我们的软件定位清晰,针对食品从业者以及重视饮食健康的人群,给他们普及拗口,未知的食品配料成分的知识与评价的简单、快捷、轻量级的软件产品。

  • 2、我们达到目标了么?(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)

我们自己给自己订的目标是完成前后端的功能并对接,原计划是要前端页面完成,后端数据接口完成,算法部分完成并对接,大部分的功能都分别实现了,现在差的就是前后端接口的对接和后端与数据接口的对接了。目前还在于自己测试阶段,所以还没有用户数量。

  • 3、用户量,用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?

目前还在开发阶段,所以只有内部开发人员正在设计软件,慢慢接近我们预期的效果。在这一段时间的开发中,也挺有成就感的逐步到达之前设立的目标。

  • 4、有什么经验教训?如果历史重来一遍,我们会做什么改进?

如果历史重来,我们会更加重视刚开始的数据库逻辑设计和物理设计,因为在开发过程中,发现对于数据库的设计不是很到位。在收藏夹的设计中,原本是和历史记录相关联,但是后来在讨论中发现是要单独作为一个实体类,于是又要反攻,所以也是让我们知道数据库的设计,也就是前期的基础特别的重要,地基要打牢固。

  • 2.2 计划

  • 1、是否有充足的时间来做计划?

是的,我们在项目初期,在还没有开始α冲刺之前,就开始进行选题讨论,我们的软件的需求分析和产品定位,所以花了挺多的时间在计划与筹备。

  • 2、团队在计划阶段是如何解决组员对于计划的不同意见的?

首先,我们团队是集中在一起来讨论团队项目的发展方向。如果针对某个计划有不同的意见,我们会先听不同意见的人发表自己的观点,其他人再说说自己的看法,最后再小组投票,选择出当前我们认为比较好的一个计划方向,同时保留没有被采纳的计划,看看能不能在未来的优化中合并起来,进而扩展软件的全面性。

  • 3、原计划的工作是否最后都做完了? 如果有没做完的,为什么?

原计划的工作是在α冲刺阶段,软件产品的雏形要完全搭好。但是,在进行前后端对接时,由于微信小程序开发的https的申请方式,以及在对接好前后端数据格式的情况下,最后对接过程中,还是出现了,部分功能为完全对接的情况,所以导致原计划的工作没有顺利完成。

  • 4、有没有发现做了一些之后看来没必要或没多大价值的事?

目前来说,因为有了充足的计划时间,所以还没有出现做了一些没必要或者没有价值的事情。

  • 5、是否每一项任务都有清楚定义和衡量的交付件?

是的,我们在分配各个功能的时候,就有规定每个功能具体要达到什么样的交付水平,比如后端需要提供何种格式的数据给前端,而前端需要可以页面的展示和渲染数据,算法部分需要将爬取的数据按照格式要求存入数据库,ocr算法部分,需要可以将上传的图片进行文字识别。项目开始之前,我们组就定义好了各个部分衡量的标准。

  • 6、是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?

项目在进行手机端测试的时候,出现了没办法连接到后端服务器的情况。但是在部署到服务器本机时,是可以接收到的。后面在排查问题的时候,才发现微信小程序的wx.request只能发送https的请求。这个问题出现在我们对于小程序的开发之前是不了解的,所以在逐步学习的过程中,才发现了这个问题。

  • 7、在计划中有没有留下缓冲区,缓冲区有作用么?

有预留大概一天的时间,进行各个模块功能的测试,因为我们的计划是在α冲刺阶段,将各个模块功能做好,然后β冲刺再优化,所以我们在预留一天的缓冲区来看看我们项目各个模块进度和完成情况。

  • 8、将来的计划会做什么修改?(例如:缓冲区的定义,加班)

目前来说,我们小组完成度还可以,是按照计划进行的,所以继续秉承我们β冲刺原先的计划,将项目对接,然后再对软件的性能进行优化。

  • 9、学到了什么? 如果历史重来一遍, 会做什么改进?

在这个团队项目中,大家都说学到了很多,不只是技术栈的提升和软件开发方面的提升,更有的其实是团队一起开发学习的如何协调,如何进行相互合作开发。如果还有一次机会,我们会在开始项目时,更加清晰定义好如何提供数据,需要怎么格式的数据。这样在对接的时候也会更加方便。

  • 2.3 资源

  • 1、我们有足够的资源来完成各项任务么?

我们有不同技术栈的同学,所以各司其职,将擅长前端、算法、后端的同学各自分配到各个部分,平均分配资源来完成各项任务。

  • 2、各项任务所需的时间和其他资源是如何估计的,精度如何?

我们的计划是在α冲刺的前一周,每两天写一次博客,所以要在2天的时间内,后端写出来一个功能,前端要有界面的更新等。

  • 3、测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?

测试的时间按照计划来说,我们预留了一天的时间进行各个部分的测试,因为是部分功能软件开发,而且每个功能模块,开发的同学也都有进行自己的测试,所以人力与硬件资源都足够。美工设计和文案,在编写的过程中其实也要了解各个部分的进展和审美,所以难度不必编程的差。

  • 4、你有没有感到你做的事情可以让别人来做(更有效率)?

根据团队内的讨论,其实大家每个部分的完成度都在预期内,大家的效率也都挺高的。

  • 5、有什么经验教训? 如果历史重来一遍, 会做什么改进?

在资源方面其实人员的任务分配都还好,所以大家效率都比较高。在资源人力等方面,其实还没有什么经验和教训。

  • 2.4 变更管理

  • 1、每个相关的员工都及时知道了变更的消息?

是的,我们在有项目开发阶段,如果有什么功能上面的改进,或者是功能上面的更改,就例如我们在讨论中发现收藏夹与历史记录应该绑定在一起,我们不仅会在群中通知,还会私法给负责相关功能模块的,知道收到明确的回复。

  • 2、我们采用了什么办法决定“推迟”和“必须实现”的功能?

我们很明确我们软件产品的核心功能,最主要的几个功能就是可以对用户上传的图片进行识别,并将数据返回,同时可以在知识库进行搜索自己想学习的配料信息。这是最主要的功能,也就是必须实现的功能。那对于界面个性化或者是UI界面等就是可以”推迟“到β冲刺阶段的。

  • 3、项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?

我们项目的出口条件就是,用户可以上传图片数据,返回配料信息,同时查看历史数据,进行收藏,且可以自行搜索知识库的知识,如果用户可以很流畅的完成上述的体验。那么我们项目也就宣告着完美完成。

  • 4、组员是否能够有效地处理意料之外的工作请求?

是可以的,在进行临时的功能调整的时候,组员可以很有效的将数据格式调整,并且将请求信息更改为对方需要的格式。

  • 5、学到了什么? 如果历史重来一遍, 会做什么改进?

在进行项目开发功能的时候,因为在不同的宿舍,所以如果有变更的话,交流方面会有一些延后。如果还有机会,会尽量安排在一个宿舍的同学分别负责不同的模块,这样在宿舍就可以对不同模块进行及时的交流。

  • 2.5 设计/实现

  • 1、设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?

设计工作包含三个部分,一个是数据库的设计,我们后端的同学,陈子阳,叶可鹏,方赞,李嘉骏进行设计。一个是前端页面的设计,由我们前端的同学,周嘉辉,林钟涛,陈翔焜进行负责和设计。最后是算法的设计,爬虫方面由王剑瑜和李子慕负责,ocr部分由张超祥进行设计完成。我们安排在α冲刺的期间进行设计与完成。

  • 2、设计工作有没有碰到模棱两可的情况,团队是如何解决的?

在进行设计的时候,发现历史记录可以存储在前端页面,后端就不需要进行存储数据了。但是在对于设计数据库方面,又必须有历史记录的部分,因为与收藏夹绑定。后来查看微信小程序文档,发现只能存储10m的数据在前端,所以考虑到用户的手机内存等方面,还是采用了后端存储历史记录。

  • 3、团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?

后端首先是利用uml进行绘制数据库的设计图,因为是前后端分离的项目,所以后端接口采用postman的接口工具进行测试接口数据。前端采用微信开发者工具的console进行测试,算法部分利用python的unit test进行测试爬虫数据结果与算法精确度。这些工具对于调试开发的项目的功能是十分有帮助的,能够助理我们更快的查找到bug。

  • 4、比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?

uml文档和现在项目开发的进度中,数据库的设计方面有了一些变更,是因为我们在开发的过程中,对于数据库的设计有一些欠缺,主体有了更多的需求,所以需要更新uml文档的数据库部分。

  • 5、代码复审(Code Review)是如何进行的,是否严格执行了代码规范?

代码复审是安排在各个负责功能模块的同学进行复审,负责该模块的同学需要对代码进行测试,解耦等。

  • 6、学到了什么? 如果历史重来一遍, 我们会做什么改进?

对于设计与实现,其实我们对于这些框架的理解与使用还只是浅浅的学习与开发。在未来希望可以更加深入源码,知道每个模块是如何进行编写与使用的。

  • 2.6 测试/发布

  • 1、团队是否有一个测试计划?为什么没有?是否进行了正式的验收测试?

是的,我们在α冲刺阶段,对于每个功能模块进行了测试,虽然还没有进行对接,但是在各个模块功能测试的时候,发现每个功能完成度比较好。

  • 2、团队是否有测试工具来帮助测试?

前端采用微信开发者工具自带的console进行测试,后端采用postman进行接口测试,算法部分就采用python原生态的测试方式,进行测试算法效果。

  • 3、团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?

在目前的工作进展中,是负责各个模块的同学进行跟踪每个功能的测试,测试效能,例如对算法的识别返回的时间进行测试,发现3-4秒的时间是用户可以接收的范围内。这些测试工作的是十分有用的,因为这些测试可以让我们开发的人员知道做出来的功能,哪些是正确的,哪些是错误的返回,也可以测试我们的软件性能,提供优化的方向。

  • 4、在发布的过程中发现了哪些意外问题?

目前软件没有发布,只是初次进行了对接测试,发现前后端的数据对接产生了一些问题,数据可以响应返回,但是格式错误,所以前端无法将数据渲染到页面上。

  • 5、学到了什么? 如果历史重来一遍, 会做什么改进?

对于测试和发布的功能,学习到对自己的功能进行测试是十分重要的,开发与测试是同等重要的。如果可以再来,希望可以在前后端数据对接的时候,提前定义好需要返回的数据类型。

  • 2.7 团队的角色,管理,合作

  • 1、团队的每个角色是如何确定的,是不是人尽其才?

我们首先讨论了每个同学擅长的技术栈是什么,然后再将擅长各自模块的同学进行人员分配,所以大家也都分配到了大家所擅长开发的部分。

  • 2、团队成员之间有互相帮助么?

团队内的氛围挺好的,尤其是在现场编程之后,大家一起专注于奋斗一个现场任务之后,还拿到大家心满意足的成绩后,团队越来越凝聚为一个整体。对于前后端算法,大家也都会更加积极的响应,并相互帮助,如何进行对接等。

  • 3、当出现项目管理、合作方面的问题时,团队成员如何解决问题?

当出现项目管理,例如功能更改或者功能优化的时候,我们团队会对进行讨论,并设计出一个更好的解决方案。当合作的时候,不同的意见产生了冲突,会求同存异,保存双方的意见,并看看后续的计划能不能对两个的意见进行融合。

  • 4、每个成员明确公开地表示对别人帮助的感谢

我要感谢周嘉辉对我的帮助,因为在进行接口设计的时候,周嘉辉同学会积极的与我进行沟通,并积极响应我的设计方面的疑问。

我要感谢张超祥对我的帮助,因为团队的优秀视频都是靠超祥进行创作,而且算法部分也完成的非常的理想。

  • 2.8 总结

  • 陈子阳

本次α冲刺学会了很多的东西,因为我主要负责后端,所有对于后端的接口,drf以及fastapi等框架有了更深的使用和了解。同时对于前后端分离的开发流程,如何进行对接,接口文档的使用等。这次看着自己第一个软件慢慢的有了雏形,确实心里还是非常有成就感的,成就感不仅来源于软件本身,也来源于团队各个成员的积极配合。希望在β冲刺,以及最后,软件能有更好的面貌呈现出来。β冲刺继续加油!

  • 叶可鹏

软件开发也是一个不断迭代和改进的过程,需要持续不断地进行优化和更新,以适应不断变化的需求,在本次Alpha冲刺中,学习到了很多内容,团队之间的合作也非常融洽,看着一个软件从有到无的过程让我一个菜鸟觉得非常神奇,希望在后续Beta冲刺中继续贡献自己的力量。

  • 李嘉骏

这次alpha冲刺我主要学习了mysql和django的内容,来帮助我完成后端部分的代码编写。在接下来的beta冲刺中,还会继续学习rdf的内容,希望能多对团队做出贡献吧。

  • 李子慕

我的ALPHA冲刺阶段中,我第一次感受到了团队的魅力。尽管我困难多多,但是最终也完成了属于自己的任务。同时,我对数据采集的模块更加深入,也可以更好的处理大量的数据。

  • 王剑瑜

这次冲刺,我做的主要工作是算法的爬虫部分,需要编写的程序并不复杂,没有花费非常多的时间学习和编写代码,但是也学到了不少有用的知识,我知道比起我做的工作,其它小组负责的部分可能更加艰难,难度更加大,所花费的时间和面对的困难也会更多,我很感激他们,我也要在之后的β冲刺更加努力,为组里做更多贡献。

  • 方赞

在Alpha冲刺阶段,我很高兴能够参与到这个软件工程项目中来,这是一个非常有挑战性和收获的经历。在整个过程中,我不仅学到了很多关于软件工程的知识和技能,也深刻认识到了团队合作、沟通协调的重要性(以及抱一个大腿的重要性)。
参与这个项目让我学会了许多后端的专业知识,我不仅了解了软件开发生命周期的全过程,也掌握了一些常用的开发工具和技术。这些知识和技能对我的职业发展非常有帮助。
总之,参与Alpha冲刺让我收获了很多,不仅学到了很多知识和技能,也让我更加深入地认识到了团队合作、沟通协调的重要性。希望在Beta冲刺阶段,我们可以把项目更加的完善,做出一个理想的好产品。

  • 周嘉辉

周嘉辉:中期汇报中老师的表扬对我来说是一种极大的肯定和鼓励。这让我更加相信我与我的队友们在软件开发方面的能力和投入。这种肯定激发了我进一步学习和提高的动力。与团队成员紧密合作,互相支持,共同解决问题,这是我在这次作业中得到的宝贵经验。在软工作业中,我特别注重细节,因为我知道,往往就是这些细节决定了项目的成败。我努力做到每一个代码、每一个逻辑、每一个界面设计都精益求精。老师的表扬也让我更加坚定了这种信念。

  • 林钟涛

在团队合作中,我们根据各自的优势和特长进行分工,各自承担一部分任务。这种方式大大提高了我们的工作效率,让我们能够更快地完成任务。同时,通过分工,我们也能够更好地掌握项目的各个细节,从而更好地完成项目。沟通交流至关重要。通过频繁的交流,我们可以及时了解各自的工作进展,及时解决问题,避免出现不必要的错误。同时,交流也能够增强团队成员之间的默契和信任,让团队合作更加顺畅。

  • 陈翔焜

团队合作中,每个人都有自己的优点和特长。通过互相学习,我们可以取长补短,不断提高自己的能力。同时,互相学习也能够增强团队成员之间的凝聚力和向心力,让团队合作更加紧密。团队合作中,我们需要齐心协力,共同完成项目。通过合作,我们可以增强团队成员之间的默契和信任,让团队更加团结。同时,在团队合作中,我们也能够感受到团队的力量和温暖,从而更加热爱团队。团队合作中,每个人都能够得到成长和进步。通过共同完成任务,我们可以积累经验,掌握更多的技能和知识。同时,在团队合作中,我们也能够学会如何与他人合作,如何处理矛盾和冲突,从而更好地适应社会。

  • 张超祥

在团队开发中,我学习到沟通是关键。我们需要保持及时、透明的沟通,以便于团队成员了解项目的进展情况、遇到的问题以及需要协调的事项。在团队开发中,分工要明确,每个人的职责应该清晰界定。同时,团队成员之间需要相互协作,共同完成任务。我也要在之后的β冲刺更加努力,感受良多,继续加油

...全文
26 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

120

社区成员

发帖
与我相关
我的任务
社区描述
2023福州大学软件工程K班
软件工程 高校 福建省·福州市
社区管理员
  • kevinkex
  • Devil angel
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧