设想和目标

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

解决外卖信息的碎片化和多平台化,通过信息整合的方式来给用户提供一个更优惠更快速方便的外卖平台。

  • 我们的客户定向于现在所有的外卖服务的购买者,尤其是最近的一波外卖打折风波让外卖这种独特的信息网的的信息价值攀升,是否有充足的时间来做计划?

有时间,但是我们第一次面临7个人团队来进行一个我们完全未知难度的项目,我们认为在最开始我们已经做好了充分的计划和准备,但是我们在途中还是遭遇了很多的苦难与变化,还好我们最后都一一解决,但是这样也极大的减缓了我们的进度。

  • 团队在计划阶段是如何解决同事们对于计划的不同意见的?

在团队运作的过程中,我们遭遇了非常多的分歧,我们对于不同意见的处理方法,是在我们集体讨论后,进行一些技术验证,然后去决定一个争论的结果。

计划

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

原计划的部分功能没有实现,只有在M2进行实现,我们在途中遭遇了很多技术的困难,耽误进度。

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

其中很多突然的变化,让一些工作成了无用功,但是在某些方面也有一定价值

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

这个方面我们没有做好,我们在内部之间的交付没有做好代码上的约定,导致了高耦合,花了大量的时间去解决这些本来可以避免的细节问题。

  • 是否项目的整个过程都按照计划进行?

没有,我们的计划过于理想,其中有些部件的完成进度被耽搁,导致了整个项目的延迟。

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

没有,我们是交付之间的人员直接对接与沟通,两人在deadline的一定弹性范围内就开始联系交付。

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

将来希望对我们的任务做更小,更细节的分类和定位,更准确的时间预计,更灵活、正确的人员安排,让交付的耦合度降低。

资源

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

我们对于我们这次项目的知识储备相当缺乏,对于项目需要的技术也是未接触过,另外,服务器这一重要的硬件设备我们也是缺乏,最后学校配给的服务器还是无法满足我们的需求。

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

最开始非常天真理想的去估计,时间估计很短,但是实际过程中发现需要的时间远远不止那么少。

  • 用户测试的时间,人力和软件/硬件资源是否足够?

我们使用了开源平台来进行app的兼容和运行测试,没有大问题,对于客户测试,我们团队内部和周边的朋友也投入了一些时间进行使用。

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

UI这方面的工作我们最后分配挺乱的,最后由我们几个同学进行了UI元素的创作与编辑,由android开发人员进行筛选和编排,这些业务的重叠区应该分离开,将相关的任务分配到该分配的人员。

变更管理

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

我们会第一时间和相关人员说明更新

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

我们根据项目本身的功能来决定,对于多个网站信息这种可以重复劳动得到的就决定推迟。

  • 项目的出口条件(Exit Criteria)是否得到清晰的定义?

大家都不太懂“出口条件”是什么,经过这一个项目之后,稍稍清楚了一些。但是说实在的,在这个项目里面我们没有用到太多。

  • 对于可能的变更是否能制定应急计划?

尽量主管的人员继续解决,如果速度太慢我们就会分配更多的人员

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

能,我们尽量对工作进行科学的分配。

设计/实现

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

像数据库的设计工作在最开始就着重研究了,因为作为核心型的数据点,我们希望数据库和爬虫与设备都有良好的连接约定,android设计师在android端开发的时候设计的有些界面的设计过早,大家为了字体的大小,按钮的尺寸争论,事实上这些事情不应该由开发人员在项目早期来做。

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

大致上没有

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

数据库使用了ER图来辅助设计,单元测试未采用,我们对于每一个组件在交付前都会做一些测试。

  • 什么功能产生的Bug最多,为什么?

爬虫涉及的信息流变化大,数据杂,Bug也最多。

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

代码主要是相关的开发人员进行复审,我们希望最了解代码的人去负责自己的区域。

测试/发布

  • 团队是否有一个测试计划?为什么没有?

我们的测试计划是在开发时同步测试,然后再整合后结合现在存在的开放性测试平台和人工测试同步进行测试。

  • 是否进行了正式的验收测试?

我们在验收阶段都会对功能进行一个全面的诊断,在项目交付时用了1问中的方法进行测试。

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

有,百度BTC开放平台。

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

我们是在在开发完成的时候运用相关的性能工具对软件进行效能测试,再进行进一步开发。有用,解决我们几个内存占用太多的问题。

我们希望对单元增加更多测试。

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

发现了app之前没有发现的bug,有几个app崩溃的问题,另外,获得发布资格的过程中我们也遇到了很多问题,很多发布平台的审核标准太严格,不严谨,没有给开发者正确的答复。

敏捷开发原则:

  • 以有进取心的人为项目核心,充分支持信任他们

我们团队在这一点上做的很好,我们团队的app点子最早是张明同学的一个点子,他也为这个项目的开发做出了很多,我们充分信任他,并把服务器和app后台的开发交给他,并由他做最后的整合,他把各个内部交付的组件都理解的很好,我们因为他的开发实力弥补了我们之前的一些进度的推迟。

  • 无论团队内外,面对面的交流始终是最有效的沟通方式

我们团队在开发的时候总是选择进行面对面交流,负责爬虫的小伙伴总是选择结对编程,面对面的交流让两个人的沟通更好,互相进行想法的评估,同时也加快了代码的开发速度和提高了正确性。

我们M2需要注意的:

对第二阶段的更充分的计划,对任务的准确划分和拿捏

提前的部件设计和约定,避免后期开发的一些苦难。

对新加入的成员慢慢带入团队,逐渐增加融入感。

对于测试的严谨,希望在时间允许的情况下,单元测试能够实施。

M1事后总结报告的更多相关文章

  1. M1事后分析报告(Postmortem Report)

    M1事后分析报告(Postmortem Report) 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们项目组所开发的软件为一个基于Andro ...

  2. M1事后分析报告--We have power to change the origin state

    M1事后分析报告 设计与实现 我们发的软件解决的问题?是否满足后面小组的要求?是否能够完全拟合前期目标? 答: 前期我们的软件完成量并不是特别让人满意,我们组在完成这些任务量之后,发现有很多地方是在做 ...

  3. M1事后分析报告

    在得到M1团队成绩之后,每个团队都需要编写一个事后分析报告,对于团队在M1阶段的工作做一个总结. 请在2015年11月24日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的 ...

  4. 事后分析报告(Postmortem Report)要求

    在得到M1 团队成绩之后, 每个团队都需要编写一个事后分析报告,对于团队在M1阶段的工作做一个总结. 请根据下面的模板总结并发表博客: http://www.cnblogs.com/xinz/arch ...

  5. Alpha阶段事后分析报告

    每个团队编写一个事后分析报告,对于团队在Alpha阶段的工作做一个总结. 请在2016年11月24日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的事后分析会上进行汇报,并 ...

  6. 事后分析报告(M1阶段)

    我们的项目是自选项目,一款名为备忘录锁屏MemoryDebris的软件. 因为我们组成员在此之前都没有接触过安卓开发,于是在第一阶段花了很大的时间和精力学习安卓.又花费了较长一段时间设计软件与研究安卓 ...

  7. 【Alpha阶段】M1事后报告

    时间:2015-11-13 23:30 地点:七公寓一楼会议室 参与人员:窝窝头全体成员(王若愚因事请假) 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述 ...

  8. M2事后分析报告

    设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 这次M2预想的就是解决3个主要问题,1:增加查询自己购买或者发布记录的功能,2:优化 所有的网络连接 ...

  9. M1事后分析汇报以及总结

    一.设想和目标 1. 们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要是为了提供周边美食和菜谱查询功能,为“吃货”们提供便利.对典型用户和场景有清晰的描 ...

随机推荐

  1. laravel上传图片报错

    在laravel的上传图片代码文件中路径如下: vendor\stevenyangecho\laravel-u-editor\src\Uploader\Upload.php第131行有一句代码错误$r ...

  2. [Python] 启动 uiautomatorviewer2之后,连接成功后重新 reload画面时提示 ('Connection aborted.', error(10054, ''))

    [问题] 出现该问题不管是重启手机还是启动手机里面 uiautomator的服务,都无济于事,只有通过下面方法进行重新初使化方能解决问题 [解决方法] 在命令窗口执行如下命令 python -m ui ...

  3. Hadoop YARN简介

    背景 本文整理一些Hadoop YARN的相关内容. 简介 YARN(Yet Another Resource Negotiator)是Hadoop通用资源管理平台,为各类计算框架(离线MR.在线St ...

  4. 函数式编程编程即高阶函数+monad

    高阶函数负责数据的单次映射: monad负责数据处理流的串联,并使得串联函数具有相同的形式. 同时moand负责基础类型和高阶类型间的转换.

  5. ipv6导致的域名解析慢,nslookup,lvs,hosts.conf

    最近总是反应网站慢,先是查内网环境,又查机房网络环境,再查lvs配置,更查到xen开启导致的网络性能下降 更进一步的查到域名解析慢,最终发现ipv6的默认开启会导致域名解析慢: 而应用服务程序内部大多 ...

  6. jsp运算符

    一.执行运算: 支持四则运算.关系(>;<....),逻辑运算(&&.||) 注意: +:只能进行加法运算,字符串形式的数字可以进行加法运算,这里的+号不能进行字符串的拼接 ...

  7. defaultdict - update - pymysql

    defaultdict 的例子 使用list作为default_factory,他很容易的将一个以键值形式表现的序列分组成一个字典列表 >>> s = [('yellow', 1), ...

  8. linux iostat 性能指标说明(转)

    iostat属于sysstat软件包.可以用yum install sysstat 直接安装. 备注: 如果%iowait的值过高,表示硬盘存在I/O瓶颈, %idle值高,表示CPU较空闲, 如果% ...

  9. JQuery radio单选框应用

    转载:JQuery判断radio(单选框)是否选中和获取选中值方法总结 一.利用获取选中值判断选中 直接上代码,别忘记引用JQuery包 复制代码 代码如下: < !DOCTYPE html P ...

  10. 【实战】verilog中`define的使用记录

    背景: 在最近实战开发中发现:对外部芯片进行初始化时,往往需要定义大量参数. 若直接在module中通过localparam或者parameter进行参数定义的话,会带来两个问题: 1.代码长度增加, ...