[2017BUAA软工助教]团队开发阶段CheckList

alpha阶段流程与相关节点

[2017BUAA软工助教]团队开发阶段CheckList_第1张图片

以下流程与团队项目中个人的得分点是一一对应的,详见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尤其要注意!

  1. spec的目标是什么,不包括什么?
  2. spec的用户和典型场景是什么?
  3. spec用到了哪些术语,它们的定义是什么?
  4. 用户是如何使用软件的功能的?
  5. 各种边界条件是什么,软件功能应该怎样随之变化?(用户数量的变化,输入内容的上限下限,不同国家地区文化语言硬件……)
  6. 功能有什么副作用,对于其他功能有什么显性或隐性的依赖关系?
  7. 什么叫“好”,什么叫“这个功能测试完了,可以交付了”?
  8. 软件发布出去之后,有哪些和项目目标相关的数据可以收集,怎么在实现阶段就能把数据收集的工作准备好?

要求功能规格说明书中至少有以下的项目:

  • 定义相关概念,如缩写、专有名词等
  • 定义典型用户
  • 给出界面原型设计
  • 描述主流的用户/软件交互步骤
  • 系统功能描述及验收验证标准
  • 写出产品可能的副作用

示例:

  • 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阶段测试报告

请根据团队项目中软件的需求文档、功能规格说明书和技术规格说明书,写出软件的测试计划、测试过程和测试结果,并回答下述问题。

  1. 在测试过程中发现了多少Bug?
  2. 你是怎么进行场景测试(scenario testing)的?包括你预期不同的用户会怎样使用你的软件?他们有什么需求和目标?你的软件提供的功能怎么组合起来满足他们的需要?
  3. 给出你的测试矩阵(test matrix),也即在什么样的平台、硬件配置、浏览器类型……上对你的软件进行测试?
  4. 你的软件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日为交流活动。如有变动,另行通知。

  1. 请在15日前初步完成展示博客
  2. 请在项目展示前确定各组的转会人员
  3. 如果申请解散团队,请参照QA文档中关于转会的部分提出申请

在Alpha阶段项目评审会上, 每个团队有12分钟展示时间,10分钟问答和机动时间,我们的展示也不需要PPT,大家把要展现的东西写成博客(可以由图片、视频等多媒体的内容)。这些东西都是软件开发过程中自然产生的结果,也不必无中生有。内容可以按照下面的模板来展现:

  1. 团队成员的简介和个人博客地址
  2. 我们要做软件工程,那就要有一点工程的样子:
    • 团队项目的目标,预期的典型用户,预期的功能描述,预期的用户数量在哪里?
    • 团队的产品如何满足了用户的需求?要看到目标用户使用产品的过程和评价 (视频或者活人上台介绍)
    • 事先定义的软件下载量达到了么?为什么没有达到?
    • 团队的成员如何分工协作的?有什么经验教训?
    • 团队是如何进行项目管理的?
    • 团队如何平衡 时间/质量/资源 争取如期完成任务的?
    • 在产品之外,团队代码的软件工程质量如何?如何用数据来证明?
    • 测试用例数目,代码覆盖率数目。
    • 运行测试用例得到代码覆盖率的视频录像,(需要现场看到。 没有诸如 “我的电脑没有装测试环境”,“文件不全”等等借口)
    • 代码规范在哪里?
    • 齐全的文档在哪里?
    • 有些项目是在原来的基础上改进的,那么我们团队的软件工程项目质量有什么样的提高?例如,代码覆盖率从原来的x增长到y?
    • 原来的项目有些代码混乱,没有注释,没有详细的文档,你们的项目是如何更好解决这个问题的?明年的同学继续开发这个项目,会不会出现类似的抱怨?如果一个新学生在一台新机器上想编译并运行你的项目, 请问能顺利完成么?有什么样的文档能指导新学生?
    • 对于项目的目标用户是一般学生的项目, 你们如何找到学生做需求分析?他们给你什么样的反馈?
    • 所有的项目都会收集到用户的数据,请问你们对这类数据做了什么样的分析,这些分析如何验证或推翻了原来的假设?这些数据如何帮助项目改进软件工程的质量?
  3. 团队项目的实际进展(拷贝那些 scrum 过程中的燃尽图即可),发布的功能(拷贝发布文档),在哪里发布了软件(3 – 10 个网址), 用户反馈的截屏。说明在项目管理中,scrum的燃尽图是如何真实反映项目的状态的?或者燃尽图美化了状态?
  4. 团队成员在Alpha阶段的角色和具体贡献:
名字 角色 团队贡献分 具体的, 可衡量的, 可验证的贡献
马小哥 PM n 写了多少文档/博客/推广活动/多少次用户调查/多少次推广
牛大哥 Dev p 写了多少行代码, 多少注释, 多少文档
板砖哥 Test q 写了多少测试计划, 测试用例, 发现多少bug?多少bug 被修复了


既然同学们选择上这个软件工程课,那么就希望大家能够认真的参与到软件工程实践中来。当然,同学们的投入程度会有所不同,所以我们就把大家做了哪些工作亮相给大伙看看,把这些情况量化出来,摆在大家面前。 酱油在哪里,大腿在哪里就一目了然。这样我们的团队贡献分就很好决定了

  1. 所做软件最有特色的功能是什么,请着重介绍一下。活的用户如何从你的软件中获益的,请现场展示。
  2. 团队从用户那里得到了什么反馈,有什么样的bug?这是预料之中的还是没想到的?

如果现场评审成员发现了bug,但是项目小组的测试人员并没有发现这样的bug,那么对每一个bug,这个团队的成绩扣掉10分,扣到0分后,继续扣,团队项目得分可以为负分。

  1. 总结,整个团队在Alpha阶段学到了什么,对软件工程的教育,对这个具体的课程有什么批评建议?Beta阶段有什么计划?

评价标准:软件工程各个环节的质量,软件实地演示质量,用户数量,是否用了真实的数据,数据量是否达到要求,团队合作等。

八、alpha阶段反思

每个团队编写一个事后分析报告,对于团队在Alpha阶段的工作做一个总结。

请在2017年11月21日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的事后分析会上进行汇报,并听取大家的建议。

http://www.cnblogs.com/xinz/archive/2011/11/20/2256310.html

此外,还需要回答下面两个问题:

  1. 对比敏捷的原则,你觉得你们小组做得最好的是什么?
  2. 什么是在下个阶段要改进的地方?越具体越好。

博客要附上全组讨论的照片。
截止时间:11月21日 00:00

你可能感兴趣的:([2017BUAA软工助教]团队开发阶段CheckList)