alpha阶段流程与相关节点
以下流程与团队项目中个人的得分点是一一对应的,详见QA文档中“个人在团队项目的得分部分”
http://www.cnblogs.com/ChildishChange/p/7554611.html#2.3
一、所选项目的NABCD分析
请阅读书本第八章并参考这个博客:现代软件工程讲义 如何提出靠谱的项目建议 NABCD
分析用户的需求,并写出你们团队所选项目的NABCD分析,并说明在哪里发布软件,预测发布一周后的用户量(精确到百)。
往年的例子:
【软剑攻城队】用户需求分析文档发布!
BugPhobia启程篇章:需求分析与功能定位
二、团队成员贡献分分配规则
我们的团队有的人多(6个),有的人少(5个),还有的特别多(8个)。
那么贡献分应当如何科学的分配,是一个十分重要的问题。
请阅读书本有关效绩管理的部分或这个博客:现代软件工程 10 绩效管理。
每个团队开一个讨论会,协商讨论团队贡献分的分配方式。
每个团队的团队贡献分为50分/人。
要求:
- 分数为自然数
- 每个人分数不能相同
- 所有人分数的总和为50*N,其中N为团队的人数。
请详细说明分数的分配规则。
三、规格说明书
请阅读书本有关规格说明书的部分。
1.请分析你们团队项目的典型用户和场景,并写一个团队博客发布你们团队项目的功能规格说明书。
模板:
盲目地套用最全面的模板,对项目有很大的副作用,PM尤其要注意!
- spec的目标是什么,不包括什么?
- spec的用户和典型场景是什么?
- spec用到了哪些术语,它们的定义是什么?
- 用户是如何使用软件的功能的?
- 各种边界条件是什么,软件功能应该怎样随之变化?(用户数量的变化,输入内容的上限下限,不同国家地区文化语言硬件……)
- 功能有什么副作用,对于其他功能有什么显性或隐性的依赖关系?
- 什么叫“好”,什么叫“这个功能测试完了,可以交付了”?
- 软件发布出去之后,有哪些和项目目标相关的数据可以收集,怎么在实现阶段就能把数据收集的工作准备好?
要求功能规格说明书中至少有以下的项目:
- 定义相关概念,如缩写、专有名词等
- 定义典型用户
- 给出界面原型设计
- 描述主流的用户/软件交互步骤
- 系统功能描述及验收验证标准
- 写出产品可能的副作用
示例:
- https://github.com/buaase/Phylab-Web/blob/master/docs/Require-Specification.md
- http://www.cnblogs.com/bugphobia/p/4946849.html
2.再写一个博客团队博客发布你们项目的设计文档(技术规格说明书)。
好了,这个是没有模板的。
但是请在设计文档内说明你们的设计是如何体现下列原则的:
- 抽象
- 内聚/耦合/模块化
- 信息隐藏和封装
- 界面和实现的分离
- 如何处理错误情况
- 程序模板对于运行环境、相关模板、输入输出参数有什么假设?这些假设和相关的人员验证过么?
- 应对变化的灵活性
- 对大量数据的处理能力
示例:
- http://www.cnblogs.com/buaaoverwatch/p/5999471.html
- https://github.com/buaase/Phylab-Web/blob/master/docs/Back-end-frame.md
以上例子仅供参考,不要被限制住了。
另外,这一步可能需要的信息:
产品原型工具有哪些?-汪静文的回答
四、Scrum Meeting与博客
1.团队任务分解
要求:
- 请阅读书本有关WBS的部分(8.7),将alpha阶段目标拆解成各个任务
- 使用各种估计方法(1),(2),估计每个任务的时间。
- 将各个任务交给个人。每个任务必须有估计的时间,并且时间不能多于8小时
- 把所有任务更新之后,截屏、统计你们项目到底需要多少时间做完。
- 在10月24日前写成一个博客,作为第1次ScrumMeeting博客。(各个团队的PM 负责此事)
示例:http://www.cnblogs.com/Default1406/p/5967990.html
2.团队ScrumMeeting博客
要求在alpha阶段,包括上述博客,至少进行10次Scrum Meeting,并发布对应博客。
ScrumMeeing博客要求:
每次Scrum Meeting博客必须包括以下四个内容:
- 每个人的工作(有Issue的内容和链接):昨天已完成的工作,今天计划完成的工作;工作中遇到的困难。
- 燃尽图(Github燃尽图制作方法)
- 每日例会的照片
- 每人的代码/文档签入记录(签入记录对应的Issue内容与链接)
如实报告这四个部分的,得满分5分。少任何一个,就扣1/4的分。迟交得0分,晚于两周交博客,倒扣全部分。
示例:
http://www.cnblogs.com/buaase/p/5055822.html
五、alpha阶段测试报告
请根据团队项目中软件的需求文档、功能规格说明书和技术规格说明书,写出软件的测试计划、测试过程和测试结果,并回答下述问题。
- 在测试过程中发现了多少Bug?
- 你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?
- 给出你的测试矩阵(test matrix),也即在什么样的平台、硬件配置、浏览器类型……上对你的软件进行测试?
- 你的软件Alpha版本的出口条件(exit criteria)是什么?也即在什么条件下,认定你的软件已经足够好,可以发布Alpha版本?
请在软件发布之前完成,并发表在博客上。
截止时间11月15日14:00
示例:
http://www.cnblogs.com/Chronos/p/4966968.html
六、alpha阶段发布说明
软件发布的同时,在团队博客上写一个发布说明:
- 列出这一版本的新功能
- 这一版本修复的缺陷
- 对运行环境的要求
- 安装方法
- 描述系统已知的问题和限制
- 说明软件的发布方式以及发布地址
……
对于新功能的描述除了文字以外,可以通过图片、视频等进行辅助说明。
截止时间11月15日14:00
示例:http://www.cnblogs.com/Chronos/p/4955358.html
七、alpha阶段项目展示
Alpha版本正式展示的时间暂定为11月21日课上,11月15日为交流活动。如有变动,另行通知。
- 请在15日前初步完成展示博客
- 请在项目展示前确定各组的转会人员
- 如果申请解散团队,请参照QA文档中关于转会的部分提出申请
在Alpha阶段项目评审会上, 每个团队有12分钟展示时间,10分钟问答和机动时间,我们的展示也不需要PPT,大家把要展现的东西写成博客(可以由图片、视频等多媒体的内容)。这些东西都是软件开发过程中自然产生的结果,也不必无中生有。内容可以按照下面的模板来展现:
- 团队成员的简介和个人博客地址
- 我们要做软件工程,那就要有一点工程的样子:
- 团队项目的目标,预期的典型用户,预期的功能描述,预期的用户数量在哪里?
- 团队的产品如何满足了用户的需求?要看到目标用户使用产品的过程和评价 (视频或者活人上台介绍)
- 事先定义的软件下载量达到了么?为什么没有达到?
- 团队的成员如何分工协作的?有什么经验教训?
- 团队是如何进行项目管理的?
- 团队如何平衡 时间/质量/资源 争取如期完成任务的?
- 在产品之外,团队代码的软件工程质量如何?如何用数据来证明?
- 测试用例数目,代码覆盖率数目。
- 运行测试用例得到代码覆盖率的视频录像,(需要现场看到。 没有诸如 “我的电脑没有装测试环境”,“文件不全”等等借口)
- 代码规范在哪里?
- 齐全的文档在哪里?
- 有些项目是在原来的基础上改进的,那么我们团队的软件工程项目质量有什么样的提高?例如,代码覆盖率从原来的x增长到y?
- 原来的项目有些代码混乱,没有注释,没有详细的文档,你们的项目是如何更好解决这个问题的?明年的同学继续开发这个项目,会不会出现类似的抱怨?如果一个新学生在一台新机器上想编译并运行你的项目, 请问能顺利完成么?有什么样的文档能指导新学生?
- 对于项目的目标用户是一般学生的项目, 你们如何找到学生做需求分析?他们给你什么样的反馈?
- 所有的项目都会收集到用户的数据,请问你们对这类数据做了什么样的分析,这些分析如何验证或推翻了原来的假设?这些数据如何帮助项目改进软件工程的质量?
- 团队项目的实际进展(拷贝那些 scrum 过程中的燃尽图即可),发布的功能(拷贝发布文档),在哪里发布了软件(3 – 10 个网址), 用户反馈的截屏。说明在项目管理中,scrum的燃尽图是如何真实反映项目的状态的?或者燃尽图美化了状态?
- 团队成员在Alpha阶段的角色和具体贡献:
名字 | 角色 | 团队贡献分 | 具体的, 可衡量的, 可验证的贡献 |
---|---|---|---|
马小哥 | PM | n | 写了多少文档/博客/推广活动/多少次用户调查/多少次推广 |
牛大哥 | Dev | p | 写了多少行代码, 多少注释, 多少文档 |
板砖哥 | Test | q | 写了多少测试计划, 测试用例, 发现多少bug?多少bug 被修复了 |
…
既然同学们选择上这个软件工程课,那么就希望大家能够认真的参与到软件工程实践中来。当然,同学们的投入程度会有所不同,所以我们就把大家做了哪些工作亮相给大伙看看,把这些情况量化出来,摆在大家面前。 酱油在哪里,大腿在哪里就一目了然。这样我们的团队贡献分就很好决定了
- 所做软件最有特色的功能是什么,请着重介绍一下。活的用户如何从你的软件中获益的,请现场展示。
- 团队从用户那里得到了什么反馈,有什么样的bug?这是预料之中的还是没想到的?
如果现场评审成员发现了bug,但是项目小组的测试人员并没有发现这样的bug,那么对每一个bug,这个团队的成绩扣掉10分,扣到0分后,继续扣,团队项目得分可以为负分。
- 总结,整个团队在Alpha阶段学到了什么,对软件工程的教育,对这个具体的课程有什么批评建议?Beta阶段有什么计划?
评价标准:软件工程各个环节的质量,软件实地演示质量,用户数量,是否用了真实的数据,数据量是否达到要求,团队合作等。
八、alpha阶段反思
每个团队编写一个事后分析报告,对于团队在Alpha阶段的工作做一个总结。
请在2017年11月21日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的事后分析会上进行汇报,并听取大家的建议。
http://www.cnblogs.com/xinz/archive/2011/11/20/2256310.html
此外,还需要回答下面两个问题:
- 对比敏捷的原则,你觉得你们小组做得最好的是什么?
- 什么是在下个阶段要改进的地方?越具体越好。
博客要附上全组讨论的照片。
截止时间:11月21日 00:00