BUAAMOOC项目M2 postmortem
设想和目标
1、我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件是基于北航MOOC网站做的Android手机客户端,用于便捷的在学校里通过手机做到随时随地学习MOOC上的课程。
基于目前服务器借口是北航校园网,所以我们的典型用户是校园里的学生,比如在教室或者宿舍的床上不适合用电脑的时候,可以通过手机登录BUAAMOOC在线观看教学视频,或者离线相关视频。
2、是否有充足的时间来做计划?
M2阶段开发时间并不是很充足。临近考期,并且赶上编译、数据库、数学建模等等的大作业……更不幸地中间碰上服务器崩溃,一个星期工作完全停滞……
3、团队在计划阶段是如何解决同事们对于计划的不同意见的?
有不同意见的时候我们都是现场提出来,然后大家说出自己的看法,一起商量觉得哪种方案更适合。
计划
1、你原计划的工作是否最后都做完了?如果有没做完的,为什么?
并没有。原计划M2阶段有三个功能完善:学习进度查看,视频下载,讨论区开发。但是因为开发时间限制以及服务器接口的问题,所以只完成了前两个功能。
2、有没有发现你做了一些事后看来没必要或没多大价值的事?
没必要或者没多大价值的事这个并没有。因为时间不足,所以大家都是按照功能流程一步步完成。但是有很多做了的工作没有用得上,比如金哉仁同学的讨论区的UI设计图,也因为时间不足够在这一阶段并没有用上。
3、是否每一项任务都有清楚定义和衡量的交付件?
大部分都没有。因为对于“完成”的概念我们并不是很清楚,所以与其在开始前规定好做成什么样子,倒不如自己在完成自己负责的功能的时候自己去衡量,但是不崩溃是最起码的要求。
4、是否项目的整个过程都按照计划进行?
并没有,因为中间服务器崩溃一个星期,所以工作暂停一个星期,加上大作业截止所以有效时间上并不充足,但是整个流程是按照计划进行的。
5、在计划中有没有留下缓冲区,缓冲区有作用么?
有的,因为每个成员的工作进度不一样,而且互相负责的部分有相互依赖的关系,所以留有缓冲区。
6、将来计划会做什么修改?
明确缓冲区的长度,规定每天至少工作量。
资源
1、我们有足够的资源来完成各项任务吗?
对我们而言最大的问题可能就是时间上的不充足,这一阶段课业压力很重,所以很多作业都是每天轮流处理。然后就是服务器部分并没有给我们足够的接口去完善需要的功能。
2、各项任务所需的时间和其他资源是如何估计的,精度如何?
最开始都是大致估计会花费的时间,到最后因为工作都是零散完成的,所以计时反倒没必要。
3、用户测试的时间,人力和软件/硬件资源是否足够?
采取了直接在手机上使用软件测试,6人6台Android机。
4、你有没有感到你做的事情可以让别人来做(更有效率)?
如果是根据编程能力决定,那肯定是大神写代码更快。但是我们毕竟是学生,我们在完成这个作业的关键在于自己能够从这个过程中真正学到东西。所以都是按照个人工作能力分配的工作,即使花费时间,那也是自己学习的过程。
变更管理
1、每个相关的员工都及时知道了变更的消息?
有需要改动的地方,我们一般在开会的时候都会通知。如果是自己工作的时间,就会在群里通知自己的改动和想法。
2、我们采用了什么办法决定“推迟”和“必须实现”的功能?
根据我们的用户需要比如在线视频播放,课程查询等这些事必须实现的功能。还有根据服务器提供的接口可以实现的功能,比如讨论区部分我们需要自己来写这部分的功能。
3、项目的出口条件(Exit Criteria)是否得到清晰的定义?
如果我们定义为可以发布的条件,我们的最低要求是不崩溃,然后是基本功能实现。
4、对于可能的变更是否能制定应急计划?
并没有,但是状况发生的时候就是找人代替或者见招拆招……比如第二阶段的开发遭遇服务器崩溃一个星期,这一个星期不得已暂停和服务器交互的所有功能,去完善其他功能,并且和服务器方面的负责人联系。
5、员工是否能够有效的处理意料之外的工作请求?
我们是只要有问题就在群里提出来,然后大家一起想解决办法,合理解决。
设计/实现
1、设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作在其他人开始代码编程之前就开始了,并且出了第一个版本,把主要的页面设计设计好了。然后随着我们编程人员的进行,设计人员也在细节上开始修复。我们的设计工作由金哉仁同学负责。在第二阶段开始计划开发讨论区功能时候,也是金哉仁同学先设计的UI设计图。
2、设计工作有没有碰到模棱两可得情况,团队是如何解决的?
比如关于主色调的选择,页面跳转的方式,button的颜色等等,我们在开会的时候就现场讨论这些设计,大家投票选出自己觉得好看的设计。
3、团队是否运用单元测试(unit test),测试驱动的开发(TDD),UML,或者其他工具来帮助设计和实现?这些工作有效吗?
对自定义的数据结构进行了单元测试。
4、什么功能产生的bug最多?为什么?
测试人员表示登录部分bug最多。因为我们的服务器是内网的测试接口,所以并不支持外网注册的用户登录。而且必须链接Buaa-wifi才能登录使用。
5、代码复审(Code Review)是如何进行的,是否严格进行了代码规范?
这一部分并没有很好的完成,代码规范也不是很具体的完成,大部分只是在函数后写明功能注释就没了。
测试/发布
1、团队是否有一个测试计划?为什么没有?
因为开发时间问题,所以并没有一个充分的测试计划。
2、是否进行了正式的验收测试?
人员直接在手机上运行软件,折腾功能。
3、团队是否有测试工具来帮助测试?
没有。(手机算吗……)
4、团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工具有用么?应该有哪些改进?
人员直接在手机上测试的时候,找到了很多不合理的设计和bug,发现之后也都做了调整和改正。
5、在发布的过程中发现了哪些意外问题?
发布的时候要求提供北航的正式的认证说明,即证明我们的软件确实是北航的服务器。(文书内容需要询问老师)
其他问题
1、对比敏捷的原则,你觉得你们小组做得最好的是什么?
首先我认为我们小组在配合分工方面做得很好。在最开始的计划分工讨论的时候,成员的每一个人都根据自己的个人能力以及自己感兴趣的方面去选择自己的工作方面,并且合理估计自己的编程水平负责不同程度不同类型的代码编写。
然后在成员的积极性上我觉得我们小组成员做得很好。每一次开会的时候,小组成员都会积极发表自己的意见和想法,然后一起商量出更好的方案。
讨论照片
BUAAMOOC项目M2 postmortem的更多相关文章
- 软件工程 BUAAMOOC项目Postmortem结果
设想和目标 1.我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件是基于北航MOOC网站做的Android手机客户端,用于便捷的在学校里通过手机做到随时随地 ...
- BUAAMOOC项目终审报告
工作总结 我们是歪果仁带你灰开发团队.我们开发的项目是北航学堂(MOOC)的android客户端:BUAAMOOC. 目前我们完成了主要功能,包括UI设计,视频播放,视频下载,学习进度,个人信息等功能 ...
- 易货beta版本项目展示报告
一.团队成员和个人博客地址 PM:刘猛 开发人员:胡亚坤,董元财 测试人员:马汉虎,赖彦谕 团队名:bestRW 团队博客地址:http://www.cnblogs.com/niceRW/ 董元财:h ...
- dxteam团队项目终审报告
一. 团队成员的简介和个人博客地址 M1阶段 http://www.cnblogs.com/dxteam/p/3991514.html M2阶段 新成员 邓亚梅 http://www.cnblogs. ...
- hots团队项目终审报告
一.团队成员: 徐钧鸿: 1994年1月19日生人,摩羯座最后一天.所以有摩羯的强迫症和水瓶古怪的性格 暂且算队长吧…… 高中的时候因为兴趣学了竞赛,于是就入坑了,于是就来北航学计算机了 兴趣面很广, ...
- “北航学堂”M2阶段postmortem
“北航学堂”M2阶段postmortem 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 这个问题我们在M1阶段的时候就已经探讨的比较明确了,就是 ...
- WereWolf项目 Postmortem
WereWolf项目 Postmortem (博客园的MarkDown编辑器好像有些问题,编号都显示1..) 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...
- <<易货>>项目Postmortem结果
设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 一开始想做的事情还是太多,没有形成整个app的核心功能,浪费了很多时间. 是否有充足的时间来做计划? 有 ...
- 查找IDEA 项目中的依赖包存放在.m2位置
原因:在maven项目pom.xml中添加依赖,可能由于网络不好,下载不完全,导致再次下载一直报错. 就会导致出现依赖一直报错.
随机推荐
- Frameworks(不定时更新)
iOS8.4 Frameworks 更新时间:2015年8月17日 Accelerate iOS4.0引入了Accelerate框架,该框架的接口可用于执行数学.大数字以及DSP运算.和开发者个人编写 ...
- vue文件在编辑器Sublime Text3中高亮
编写代码时,代码在编辑器中显示高亮,一方面,在感官方面使人觉得很舒服:另一方面,还可以提高开发效率.下面简单介绍vue文件在Sublime Text3 中高亮的vue插件的安装方法: 第一步:安装Pa ...
- 网络流(四)dinic算法
传送门: 网络流(一)基础知识篇 网络流(二)最大流的增广路算法 网络流(三)最大流最小割定理 网络流(四)dinic算法 网络流(五)有上下限的最大流 网络流(六)最小费用最大流问题 转自:http ...
- C#异步编程の----Threadpool( 线程池)
简介: 一个托管线程的创建需要数千个CPU周期,并且当发生线程切换时也会带来明显的开销.考虑线程的重用,避免不断重复创建新的线程是提高系统效率的一种方式. 线程池是一种提供效率的方式,它创建好一些线程 ...
- 使用hint优化Oracle的运行计划 以及 SQL Tune Advisor的使用
背景: 某表忽然出现查询很缓慢的情况.cost 100+ 秒以上:严重影响生产. 原SQL: explain plan for select * from ( select ID id,RET_NO ...
- 转://SIHA环境修改主机名实施步骤
目 录1 实施需求 2 修改主机名 2.1 停止HAS服务 2.2 修改主机名 3 重新配置服务 3.1 使用root用户重新配置CSS & OHAS服务 3.2 设置cssd自动启动属性 3 ...
- (java项目)坦克大战 2.0
这个版本,只能算是一个雏形,把最基本的东西给完成了,不过,后面可添加的也不多.有一点,还是想去实现,那就是敌方坦克自己寻找对手!也就是游戏AI. emmm, 什么时候可以了解一下这个AI.顺便学学py ...
- 浅谈js之闭包
1.什么是闭包??? "官方"的解释是指一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分: 红皮书是这样说的,闭包是指有权访问另一 ...
- 深入springboot原理——一步步分析springboot启动机制(starter机制)
前言 使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程.本文的目的就是一步步分析springboot的启动过程 ...
- 如何在Qt Creator中添加库文件和头文件目录
在使用QtCreator开发图像处理程序的时候想加入Opencv库来处理图形,添加头文件,需要编辑工程文件夹下的.pro文件在文件中添加以下内容,即可包含头文件的文件夹: INCLUDEPATH += ...