【Alpha】Phylab2.0: Postmortem
设想和目标#
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
主要解决同学们写物理实验报告时,处理数据的困难——巨大的计算量和不规范的物理报告数据处理格式。典型场景和描述见前面的功能说明书。
2. 是否有充足的时间来做计划?
开始时只定下来方向,其他细节和步骤基本上都是做之前才决定的。
3. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
采取适当调整,尽量让每一个人满意。(比如推迟、减少工作量、采取折中做法)
用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
不一致,我们虽然离目标更近,但是没有达到预期。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
选题——预估不足,低估了接手项目的难度
开始编码——做决定比较犹豫,PM不够果断,成员进度缓慢(既有主观原因,也有客观原因)
计划#
1. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
基本完成,但细节远远不足,并且剩下一些文档正在补充。
2. 有没有发现你做了一些事后看来没必要或没多大价值的事?
有,比如更改前端样式。
3. 是否每一项任务都有清楚定义和衡量的交付件?
只有定义,没有规范的衡量。
4. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
其中出现了更换PM的意外,同时高估了继承项目的可管理性。
5. 在计划中有没有留下缓冲区,缓冲区有作用么?
有,经过缓冲区之前没有完成的工作基本都清理了。
6. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
增加PM对项目的控制力度,PM必须清楚项目细节。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
学到了控制好一个团队并非易事,不能对团队的每个人有过高期望,要考虑最坏情况。
改进:需要有一个核心,过于民主办不成事。
资源#
1. 我们有足够的资源来完成各项任务么?
最稀缺的资源是时间。
虽说我们有5个人,但是有两名成员有两个周末因为参加比赛,没有任何进展。恰逢周末才是有连续编码时间的时候,所以总体来说我们团队只能有4人的工作时长。
缺乏文档资源。
如果说从零开始一个项目,全新自己做,采用什么技术都是自己决定——我们至少可以选择一个网上有相关文档的技术实现方案,看似从零,实际上已经有很大一份前人的工作基础。但是如果是接手别的项目,没有充分文档的项目,反而相当于从零探索。这样的情况比重新开始做更困难(至少比之前所有经历过的推进更慢)。
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
通常预想时间放宽两倍,再留0.5倍的缓冲区,精度还是不够高,通常还是超时。
**3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度? **
低估了,但是主要不是人和硬件能力的问题,是人时间的问题。
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
Beta阶段似乎还需要有一个职位调整。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
可能不会轻易接手一个项目,接手前需要对项目规范、文档进行考察。如果发现问题,果断进行重构。
变更管理#
1. 每个相关的员工都及时知道了变更的消息?
讨论组通知。
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
讨论。
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
没有,各成员自己决定。
4. 对于可能的变更是否能制定应急计划?
无,时间不足,谈何应急计划。
5. 员工是否能够有效地处理意料之外的工作请求?
否。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
历史重来这个方面可能还是维持在一个较低水平。
设计/实现#
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作在去年的团队的时候已经开始,我们并没有做太多变更,只是修修补补。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
无。
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
否,只有简单的测试。
4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
产生PDF的部分bug最多。但是设计无关。
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
没有代码复审。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
无
测试/发布#
1. 团队是否有一个测试计划?为什么没有?
没有,时间不够。
2. 是否进行了正式的验收测试?
有,对于每个实验的数据处理均有测试文件。但是没有采用标准测试工具。
3. 团队是否有测试工具来帮助测试?
否。
4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
没有跟踪效能。
5. 在发布的过程中发现了哪些意外问题?
团队成员可支配时间严重不足。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
无
总结#
**你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?**
只达到可重复级。
**你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?**
规范阶段。
**你觉得团队在这个里程碑相比前一个里程碑有什么改进? **
这是我们团队的第一个里程碑。
**你觉得目前最需要改进的一个方面是什么?**
增加个体效率。总的原因是时间不充足,没有时间,各方面都无法推进。其次是接手项目的惰性——其中固然有以前项目的不规范性,更多是后来团队对这个项目的不肯定、不热爱——很简单,这一开始就不是我们所创造的,自然缺少创造者的那一份动力。因此我们迫切需要有一个有动力的、清楚项目细节的人带领大家前进。其三是推进不明显,因为已经有别人的工作,我们做出来的东西显得进展缓慢。例如:从零开始做的时候,我们写10个脚本,我们的感受是“我们创造了一个模式,并且具有10种功能”;但是在别人的基础上做,感受就是“我们增强了部分功能”。这个成就感是明显区别的。
其四是对软件工程规范的不热衷——在这种情况下,规范的帮助是否不如约束?软件工程规范(文档、测试、例会)对小型项目的帮助有多大?或者说,对于小型项目,可重复级的档次是否可能比更高级的CMM/CMMI标准更有利?
**我们小组什么地方做的比较好?**
暂无
**下个阶段需要改进什么?**
人员配置优化调整,在平时需要注意完善文档。
【Alpha】Phylab2.0: Postmortem的更多相关文章
- 【Beta】Phylab2.0: Postmortem
设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 主要解决同学们写物理实验报告时,处理数据的困难--巨大的计算量和不规范的物理报告数据处理格式.典型 ...
- 【Alpha】阶段汇总
[项目文档&API文档] PhyLab2.0需求与功能分析改进文档(NABCD) PhyLab2.0设计分析阶段任务大纲(α) 团队个人贡献分分配规则 功能规格说明书 [Phylab2.0]A ...
- 【Alpha】项目展示
团队成员介绍 大娃 后端开发人员,主要工作为后端开发,文档撰写. 大娃的个人博客 二娃 PM,主要工作为项目进度把控,平日例会的记录,例会博客及部分其他博客的撰写. 二娃的个人博客 三娃 PM,主要工 ...
- 一、Daily Scrum Meeting【Alpha】------Clover
[Alpha]Daily Scrum Meeting 第一次 [Alpha]Daily Scrum Meeting 第二次 [Alpha]Daily Scrum Meeting 第三次 [Alpha] ...
- 【ActionScript】ActionScript3.0对舞台组件的增删改查
以一个样例来说明ActionScript3.0对舞台组件的增删改查 例如以下图: 在Flash执行的时候,通过脚本.斜向下生成text0-text9十个文本节点. 提供两个功能. 1.在右上角,用户输 ...
- 【AngularJS】 2.0 版本发布
[AngularJS] 2.0 版本发布 w5cValidator[AngularJS] 2.0 版本发布 w5cValidator 插件基于angular原有的表单验证,在原有的基础上扩展了一些 ...
- 【Alpha】随笔集合
Daily Scrum Meeting 第一天 [Alpha]Daily Scrum Meeting第一次 第二天 [Alpha]Daily Scrum Meeting第二次 第三天 [Alpha]D ...
- 【Tomcat】CentOS7.0下安装多个Tomcat及其配置
安装前所需环境 在开始安装Tomcat之前,需要安装环境JDK,并配置JAVA环境.如果不知道如何配置,可参考这篇博客:[Linux]CentOS7.0下安装JDK环境 Tomcat安装 Tomcat ...
- 【转】mysql8.0 在window环境下的部署与配置
[转]mysql8.0 在window环境下的部署与配置 今天在阿里云window服务器上配置mysql环境,踩了一些坑,分享出来.需要的朋友可以看看.额,或许有人要吐槽我为什么不在linux上去配置 ...
随机推荐
- GBK 编码时 url 中带中文参数的问题
项目中遇到的 GBK 编码问题,记录如下. 将代码精简为: <!DOCTYPE HTML> <html> <meta charset="gb2312" ...
- 【前端也要学点算法】快速排序的JavaScript实现
作为算法目录下的第一篇博文,快速排序那是再合适不过了.作为最基本最经典的算法之一,我觉得每个程序员都应该熟悉并且掌握它,而不是只会调用库函数,知其然而不知其所以然. 排序算法有10种左右(或许更多), ...
- 判断Laravel Eloquent获取数据结果集是否为空
在使用Laravel Eloquent模型时,我们可能要判断取出的结果集是否为空,但我们发现直接使用is_null或empty是无法判段它结果集是否为空的. var_dump之后我们很容易发现,即使取 ...
- GitHub中国区前100名到底是什么样的人?
本文根据Github公开API,抓取了地址显示China的用户,根据粉丝关注做了一个排名,分析前一百名的用户属性,剖析这些活跃在技术社区的牛人到底是何许人也!后续会根据我的一些经验出品<技术人员 ...
- HTML5+JS 《五子飞》游戏实现(八)人机对战
要想实现人机对战,就必须让电脑自动下棋,而且要知道自动去查找对方的棋子,看看有没有可以挑一对的,有没有可以夹一个的,这样下起来才有意思. 当电脑用户下完棋后,电脑应立即搜索用户的棋子,然后如果没有被吃 ...
- HTML5之创新的视频拼图剖析式学习之二
昨天我们剖析了一下翻阅体验的实现.今天要剖析另外一个很有意思的效果——视频拼图. 网站中第一部分第二页<月熊的标志>是月熊志中互动性较强的一页,页面上会随机分布9块视频碎片,用户可以通过鼠 ...
- sprintf_s的教训
sprintf_s 是个比sprintf更安全的函数,今天在使用的过程中犯了个错误,代码的大致意思如下 void Test_sprintf_s() { ]; memset(buff, , sizeof ...
- Beta版本冲刺Day3
会议讨论: 628:已经将原本写在jsp中的所有界面修饰代码转移到了css文件中,同时当页面跳转的时候也不会出现崩溃的现象,并且已经解决了上次无法连接数据库的问题.但是又遇到了一些新的小问题,希望明天 ...
- Beta版本冲刺Day6
会议讨论: 628:配置Mysql的时候遇到了问题,在修改数据库用户密码时无法修改,并且服务器好像连接不上去了,其他组员则继续他们的任务.601:将一些原来的界面进行了修改,修改成了更加美观的外形. ...
- [Google Guava]学习--缓存cache
适用性 缓存在很多情况下非常实用.例如,计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存. Guava Cache与ConcurrentMap很相似,但也不完全 ...