Alpha事后诸葛亮
队名:计算机4班好朋友联盟
组长博客:组长博客
作业博客:作业博客
项目Postmortem
设想和目标
(1) 我们的软件要解决什么问题?
我们的软件主要解决用户对想要买到未入驻外卖平台的食堂饭菜的需求。
(2) 是否定义得很清楚?
定义清晰明白。
(3) 是否对典型用户和典型场景有清晰的描述?
对典型用户和典型场景具有清晰的描述。
(4)我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
大部分目标已经实现,原计划的功能做到了十二个,都是按照原计划交付时间进行交付,原计划中在alpha阶段还未安排用户数量。
(5)用户量, 用户对重要功能的接受程度和我们事先的预想一致么?
因为在alpha阶段还未安排用户数量,因此目前并不知道最终用户量是否与预想一致,但作为用户来看待这款产品,我们对重要功能的接受程度差不多打分到及格,仍然还有许多要完善的部分。
(6)我们离目标更近了么?
感觉完成了许多部分之后,我们感觉离目标正在逐渐接近。
(7)有什么经验教训?
前端和后端在实现需要统筹安排好,到后期再协商容易造成进度的延缓并且改动也会更加困难。
(8)如果历史重来一遍, 我们会做什么改进?
改进:任务越早开始越好,尽量不要拖到ddl,容易压力过大。
计划
(1) 是否有充足的时间来做计划?
是,我们一开始花了一定的时间来进行整个阶段的规划。
(2) 团队在计划阶段是如何解决同事们对于计划的不同意见的?
团队会进行相互讨论,或是在开会时一起协商,最后选取多数人的意见进行采纳。
(3) 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
原计划的工作已基本完成。
(4) 有没有发现你做了一些事后看来没必要或没多大价值的事?
没有,整个阶段都在进行学习打代码和进行有必要的交流讨论。
(5) 是否每一项任务都有清楚定义和衡量的交付件?
是的。
(6) 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
基本符合计划的进度进行,在这个过程中项目未出现过比较大的意外。
(7) 在计划中有没有留下缓冲区,缓冲区有作用么?
有留下缓冲区,缓冲区能够有效地缓解团队时间安排不当而造成的困难,避免时间过于紧张。
(8) 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
打算修改计划中对小程序的登录绑定设计,对赶工时间也要进行修改。
(9) 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
我们学到了如何进行更好的统筹规划,认识到了整个团队按计划推进进度的重要性。如果重来一遍,我们会在前期就赶工并选择合适的布局,缓解后期加班加点的状况。
资源
(1) 我们有足够的资源来完成各项任务么?
有,团队资源相对来说是比较充足的情况。
(2) 各项任务所需的时间和其他资源是如何估计的,精度如何?
各项任务所需时间是通过日常做作业时所花时间和参考别的小组完成进度来进行估计的,精度大约能达到百分之七十。
(3) 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
测试时间比较不足,人力和软硬件资源相对来说还好,勉强足够;对不需要编程的资源难度估计相差不多。
(4) 你有没有感到你做的事情可以让别人来做(更有效率)?
没有,大家的效率都差不多。
(5) 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
经验教训:应该合理安排手上的资源,物尽其用,让每个队员都能领到自己擅长的任务,拥有最高的效率;
改进:将一些任务进行改动变更,使效率变得更高。
变更管理
(1) 每个相关的员工都及时知道了变更的消息?
是的,每个员工都能在群里及时收到变更消息。
(2) 我们采用了什么办法决定“推迟”和“必须实现”的功能?
对于重要且必要的功能,我们将它定义为必须实现;对于相对来说不那么紧急重要的,我们选择暂且推迟它,等到下一阶段完成。
(3) 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
有,当一个页面完整并且能够实现对应的功能,并且结果正确,经过测试人员测试后体验合格则为“做好了”。
(4) 对于可能的变更是否能制定应急计划?
可以,小组会召开临时会议进行讨论计划。
(5) 员工是否能够有效地处理意料之外的工作请求?
可以。
(6) 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
我们学到了在遇到一些突发状况时需要迅速反应并做出好的判断与决策;如果重来一遍,我们会努力使整理反应得更加迅速。
设计/实现
(1) 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
我们组的设计工作是从撰写需求分析报告之前开始的,原创图片主要由王玥来设计,原型界面的设计由万聪和诗琳合作完成。是合适的时间和合适的人。
(2) 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
设计工作有时会有少许意见不统一的情况,一般都是大家一起在开会的时候讨论解决。
(3) 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
有用到UML来设计用例图、类图和活动图等,很有效。
(4) 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
现在的状态跟项目开始的UML文档有一点点差别,主要是我们目前的进度还未能完整的实现最初的计划以及一些技术上的不足。差别不大,后期会尽量贴近最初的计划,暂时不会更新UML文档。
(5) 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
由于目前的成果有限,所以就现在为止,发布订单的时候Bug最多,主要表现在已经发布的订单有时不会显示在最上面,以及显示的时候会出现一些死的数据。当时没有想到是因为我们经验不足,水平不够,没有考虑的这么细致。
(6) 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
我们前后端在开始编写代码之前已经编写好了代码规范,基本都有按照代码规范来编写代码,所以之后主要做的是代码的整合工作,代码复审较为轻松。
(7) 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
这次冲刺,我们除了学到了自己所负责部分的相关技术,更懂得了团结协作的重要性,如果重来一遍,我们可能还是会像现在这样,因为我们已经尽自己所能,做到了我们现阶段能做到的最好的成果。
测试/发布
(1) 团队是否有一个测试计划?为什么没有?
我们团队在Alpha冲刺阶段开始之前的那次会议就已经制定好了整个Alpha冲刺的计划,其中就包括测试。
(2) 是否进行了正式的验收测试?
是,我们有通过微信扫描二维码来验收当前的成果。
(3) 团队是否有测试工具来帮助测试?
是,我们通过微信扫描二维码测试过。
(4) 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
我们团队根据手机上扫描的二维码显示的实际情况来对产品进行测试,这些测试工作很有用,我们对页面的排版进行了一些改进。
(5) 在发布的过程中发现了哪些意外问题?
除了我们产品本身未完善的功能以外,在发布的过程中未发生意外。
(6) 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
这次冲刺,我们除了学到了自己所负责部分的相关技术,更懂得了团结协作的重要性,如果重来一遍,我们可能还是会像现在这样,因为我们已经尽自己所能,做到了我们现阶段能做到的最好的成果。
团队的角色,管理,合作
(1) 团队的每个角色是如何确定的,是不是人尽其才?
团队中每个人担任什么角色首先都是由我们自己来选择的,先确定大的方向(前端/后端),再内部分配具体任务,集体的部分如博客撰写,评分之类则按照自愿原则,一般采用轮换制。因为任务的领取都是自愿的,所以一般都能做到人尽其才。
(2) 团队成员之间有互相帮助么?
有,我们团队在空闲时都会集中在活动室一起完成任务,有问题可以互相求助。
(3) 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
我们团队未出现此类问题,如果出现,一般会开会讨论共同解决。
- 每个成员明确公开地表示对成员帮助的感谢 :
我感谢 __团队中所有成员__对我的帮助, 因为某个具体的事情: 大家一起熬夜看日出。
- 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
这次冲刺,我们除了学到了自己所负责部分的相关技术,更懂得了团结协作的重要性,如果重来一遍,我们可能还是会像现在这样,因为我们已经尽自己所能,做到了我们现阶段能做到的最好的成果。
总结:
(1) 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
还在初始级。
(2) 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
创造阶段。
(3) 你觉得团队在这个里程碑相比前一个里程碑有什么改进?
大家的配合更加默契了,积极性也有所提高。
(4) 你觉得目前最需要改进的一个方面是什么?
目前为止我们团队主要的任务是完成剩余的工作,暂时还没有需要改进的地方,如果非要说的话,那就修复一下发布订单的bug吧。
(5) 对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。
主张简单:我们团队的界面简洁大方,一目了然,功能明确,无额外不必要的功能。
有目的的建模:我们团队在产品的实现过程中多次就用户的角度讨论过产品的适用性。
三人行必有我师:我们团队集中在一起完成这个项目,有问题互相帮助。
答辩总结
⭐工作流程
- 原型图的设计和完善
- 前后端代码规范的编写
- 前端以页面为单位分配任务
后端以类函数为单位分配任务 - 前端完成静态页面
后端函数编写 - 编写接口文档,数据库设计
- 服务器的搭建和接口的测试
- 前端代码整合
- 前后端数据交互
⭐组员分工及工作量比例
姓名 | 分工 | 工作量比例 |
方瑞雄 | 后端代码编写,博客评分汇总,编写接口文档,ppt答辩 | 10% |
郑裕恒 | 后端部分函数编写,数据库设计,ppt制作,为前端提供图片素材 | 11% |
余廷龙 | 后端发布订单,接单,查看历史配送单,查看历史点单四个接口的编写;一次博客评分,所有接口的测试 | 10% |
潘海东 | 后端:服务器的搭建,开发环境的配置,参与编写接口文档;前端:数据交互 | 10% |
翁世豪 | 后端查看个人信息函数,刷新点单广场函数,刷新订单广场函数,撰写博客一次 | 8% |
陈苏苏 | 前端我的订单/点单,订单详情/点单(正在配送),订单详情/点单(送达)界面,评审表,撰写博客一次,评分一次 | 8% |
严欣 | 前端我的订单/配送,订单详情/配送(正在配送),订单详情/配送(送达)界面,评审表,撰写博客一次,评分一次 | 8% |
马丽华 | 前端发布/点单,发布/配送,修改/点单,修改/配送,填写信息,注册,登录界面,撰写博客一次,评分一次 | 8% |
⭐本组现场答辩分数:
51.3
⭐Q&A
第1组:请问我的信息那里是从哪里修改的?视频里看到的似乎没有修改按钮
答:这个功能我们会放到β版本完成,在α阶段还没有这项功能。
第2组:如何保证安全,如果有和你有分歧的人特意接你单,然后给你加点料怎么办?
答:如我们一开始所说,我们的用户协议和评价机制会有效的规避这种风险,但如果发生此类事件我们平台也会介入调查;以及我们也在考虑是否加入之前有同学提议的功能,对打包好的饭菜贴个小封条等等使饭菜更加安全。
第3组:如何保障接外卖单群体的安全性?
答:我们的群体面向的是学生,无论点单人还是接单人都是学生,这一部分群体大多数都是高素质的,在一定程度上能够提高不少的安全性,加上我们的安全保障机制(详见上一条回答),能够使接外卖单的群体更安全
第4组:如何保证相同的单子不会同时被多人接单?
答:当一个单子被接后会及时从广场退出,成功接单时也会弹出“接单成功”的提示,如果冲突,除了接单成功的人,其他人就不会收到这个提示
第6组:后端无法获取手机号,可以前端第一次登录获取
答:谢谢建议,我们会尝试看看的
第7组:能否通过微信登录?
答:暂时还不能用微信登录,但是可以通过手机号来获取到微信。
第8组:现在食堂的很多商家都加入了饿了么,美团等平台,所以是否再过一段时间你们的项目就没用了?
答:我们的产品从一开始的定位就不同于饿了么和美团,关于很多商家都有加入到饿了么和美团的问题在之前的几次答辩中我们都有做出过回答,首先,我们的用户都是学生,而在用餐高峰期打饭的最多的也是学生,在这个时候即使有一些商家有配送外卖的服务也没有闲暇在这个时候接单配送,在时间上,明显由学生来带饭更为快捷;其次,在食堂中,有一些自助选菜等一些窗口无法提供送外卖的服务,但我们的学生可以。
第9组:没有按取消订单时间送到就会取消订单吗?
答:这个取现订单时间是指发布订单后如果在取消订单时间到还是无人接单的情况下改订单会自动取消,避免发布订单的用户继续等待,原则上已经被接收的订单无法取消。
第10组:是否考虑过商家或外卖小哥也可以接单,还是说要限制群体?
答:我们这款产品的出发点就是以学生为用户提供一个在宿舍就可以吃到食堂无法配送的饭以及让学生顺便赚取少量酬金的平台,本质上和外卖平台是有差别的,所以用户会限制在学生群体。
第11组:怎么预防接单后对方忘记送达,是否可以有一个提示模板?
答:我们的产品中会有配送员的电话等信息,点单人可以随时与配送员进行联系,不过你的这个建议很好,我们会在之后的开发过程中考虑加入提示信息。
第12组:为何不采用微信提供的机制,如UnionID和OpenID标识用户?
答:之前由于我们技术上的一些不足未能实现这一功能,接下来我们会尝试完成这一部分。
⭐全组合照
个人部分
⭐个人PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | · 计划 | 30 | 30 |
· Estimate | · 估计这个任务需要多少时间 | 30 | 30 |
Development | · 开发 | 120 | 240 |
· Analysis | · 需求分析 (包括学习新技术) | 60 | 80 |
· Design Spec | · 生成设计文档 | 0 | 10 |
· Design Review | · 设计复审 | 0 | 0 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
· Design | · 具体设计 | 10 | 20 |
· Coding | · 具体编码 | 60 | 80 |
· Code Review | · 代码复审 | 10 | 10 |
· Test | · 测试(自我测试,修改代码,提交修改) | 20 | 30 |
Reporting | 报告 | 30 | 60 |
· Test Repor | · 测试报告 | 0 | 0 |
· Size Measurement | · 计算工作量 | 0 | 0 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 60 |
· 合计 | 380 | 600 |
⭐个人学习进度条
周数 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
1 | 0 | 0 | 3 | 3 | 完成了13水原型的设计 |
2 | 400 | 400 | 15 | 18 | 完成了13水后端算法部分 |
3 | 500 | 900 | 25 | 43 | 完成了13水前端部分,根据作业要求做好前端与后端的对接,实现接口的调用,并完善代码与编写博客 |
4 | 0 | 900 | 5 | 48 | 开始学习服务器的搭建 |
5 | 0 | 900 | 5 | 53 | 购买了服务器,开始尝试 |
6 | 0 | 900 | 5 | 58 | 已经可以简单的使用服务器了 |