软工常见问题Q&A
目录:
一、转会相关
这个链接记录了关于“转会”的讨论,请看:
http://www.cnblogs.com/math/p/sec004.html
Q.转会的流程是什么样子的?
转会的操作如下:
a)一轮迭代后,组A的任何成员都可以选择跳槽到其他组,但要求其他组能够接受这名成员。
b)由于每组至少需要4人,且比较好的人数在6±1人这个范围内,因此,若组A有多名同学跳槽,导致组A缺少开发必需人数,则视为组A解散。
Q.一个团队里如果有多人要求转会怎么办(解散的流程是什么样子的)?
一个团队若有多人“跳槽”并影响项目开发,则视为团队“解散”,将根据“解散”的流程进行操作。
解散的操作如下:
a)一轮迭代后,组A可申请解散,需提交申请书,并作解散后反思,随后组A成员安插在其余各组,组A原有项目中断。
b)若有多组申请解散,则对这些组进行组员重组,重组组将接手解散组的团队项目。
c)若有更好的方法,欢迎讨论
Q.为什么会有人想要转会呢?
解释一下可能的情况:
- 我很牛逼,我把我们组的项目弄好了,并且剩下的成员能够继续开发,我看到另外一个组需要我这样的人才,于是我决定跳槽去帮助他们
- 我在这个团队待不下去了,不能发挥自身的价值,决定去其他组
- 我们这个团队技术上都过关,但是团队相处不融洽,于是决定解散
- 我们发现,我们这个项目对我们来说太难了,我们不能继续进行开发,于是决定解散
Q.我们为什么要进行这一环节?
1.这是《构建之法》教学的一大特点,请看链接中“真实的项目”一段:
http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html
2.从另一个角度:我们可以要求转会的这名同学,留下高质量的代码和文档,使得在他转会之后,新人能较快地接手他的模块并参与到新的团队中,把最好质量的软件做出来。这也很好阿:)
邹欣老师:在我们讲课的这几年中,有助教来来往往,走的也不少,但是整个《构建之法》的方法仍然在不断提高。如果我们一旦走人,所有的经验都丢失了,那在现实世界中能做好事情么?
福大助教畅畅:我们一直知道代码规范、手册、文档的重要性,但如果对于自己的代码一直没有真正训练和考察成效的机会。让一名新鲜血液加入项目组,就可以通过这名新成员是否能迅速上手项目,来检验之前编码规范等工作的成效了。
Q.一个团队中的队员不仅是队员,更多的是伙伴,伙伴为什么要把伙伴推出团队呢?
1.助教刘乾的回答:我之前在上软工课程的时候也有过这样的想法,但经历了阿尔法阶段后反而对换人有所认同。PM,也就是队伍里需要统筹大局的人,要以产品/项目的质量为保障。在这种前提下,如果有比较优秀的同学出走团队,可以视作跳槽;如果有表现平平的同学出走,他也可能是去了一个更适合他的队伍,做着更适合的项目呢:D
Q.为什么要*强制*指定同学转会呢?
1.福大教师张栋:不强制要求,最终大多数组都不会换人。
2.福大助教刘乾:大部分组不换人的根本原因可能还是脸面过不去。组长不好意思换人(因为不是强制的),队员不想走(因为不是强制的)。
Q.我们团队可以没有人转会吗?
1.福大助教刘乾:可以,只有强者才能制定规则,或是打破规则!
2.福大教师张栋:如果你们团队具有强大的团队战斗力和凝聚力,在团队alpha阶段的各个方面都表现优异(例如团队分工、阶段答辩、团队博客、项目完成情况等方面),你们可以用这些事实来说服教师助教:我们组可以没有人转会,我们组就是特例!
这也是我们希望看到的:D
Q.我们组很有凝聚力,但是做的不好,可以没有人转会吗?
不行,只有强者才能制定规则,或者打破规则:)
二、成绩相关
成绩分三部分,最终按照一定权值计算最后得分并进行映射,同时我们允许你做额外的工作来增加得分:
1.博客
除后文中专门说明分数额度的博客外,其余博客(不论是个人博客还是团队博客)均以单次10分的满分参与评分计算。
2.个人与结对项目
个人项目 | 50 | 35 | 15 |
结对项目 | 100 | 70 | 30 |
3.团队项目
下表为个人在整个团队阶段团队项目的分数组成:
团队介绍 | 1 | 10 |
采访说明 | 1 | 10 |
贡献分分配 | 1 | 10 |
功能规格说明书 | 1 | 10 |
技术规格说明书 | 1 | 10 |
α阶段scrum meeting博客 | 10 | 50 |
α阶段发布说明 | 1 | 10 |
α阶段测试报告 | 1 | 10 |
α阶段现场展示 | 1 | 150 |
α阶段事后分析 | 1 | 10 |
α阶段团队贡献分 | 1 | 50 |
β阶段scrum meeting博客 | 10 | 50 |
β阶段发布说明 | 1 | 10 |
β阶段测试报告 | 1 | 10 |
β阶段现场展示 | 1 | 150 |
β阶段事后分析 | 1 | 10 |
β阶段团队贡献分 | 1 | 50 |
团队源代码管理 | 1 | 10 |
合计 | - | 620 |
(待续)
三、选题相关
Q.选题环节的过程是什么样子的?
简述一下选题过程:
不管你是想做“全新的项目”、“学长之前的项目”还是“老师提供的项目”,请确保你们团队黄金点游戏的排名能足够靠前,否则只能选择这三项里剩下的项目。(9.20更新)
简而言之就是,排名越靠前,选择空间越大,请掌握好黄金点的玩法:D
Q.如何决定团队选题的顺序(什么是黄金点游戏)?
以上是基础版本,我们使用的是博客中提到的变种,每组写两个数字,最后根据这两个数字与黄金点的差的绝对值的最小值进行排名。
Q.团队项目可以选择哪些题目?(9.23更新)
前提:请确保你们团队黄金点游戏的排名足够靠前,让你们的团队有足够的选择空间:D
1.全新的项目
意思是你们组有自己全新的想法决定实现。
例:物理实验网站的最初版本
2.接手上几届学长的自由选题项目后继续开发
意思是你们组没有提出全新的项目,而是考虑接手前几届学长自主开发的项目,这个需要自己联系好学长。
案例:物理实验网站的后续版本
3.选择《构建之法》教学团队提供的项目
意思是你们组没有想要做全新项目的想法,也不打算联系好学长接手他们的项目,你们还可以接手老师们提供的项目,这些项目目前是全新的,期待你们能接手开发:
3.1. 多人协同编辑,详情请参见链接:多人协同编辑
3.2. 软工自动测试平台:
需求:在软件工程课程中,个人项目的测试一直是一个难以自动化的问题。不同的学校的项目题目不同,测试代码也不一样,每一届助教都需要手动测试或费时费力写一个自动批处理测试的程序。但在助教们使用的过程中发现,实际上大部分测试的大部分步骤都是可以固定下来的,比如说爬取Github仓库,命令行批处理运行等。希望能开发一个软工OJ,它的扩展性比较强,可以稍微定制化。比如能处理数独、能处理四则运算、地铁线路规划这样的题目作业的自动判定测试。它不仅能支持软工题目自动评分、还能支持代码查重、代码规范评分等,同时其定制化的成本不要太大,最好能够支持助教使用不同的语言来利用平台。
形式:平台可以通过下发安装包安装,或可以利用HTTP请求与用户程序交互来提供服务。
3.3 分析Github项目:
需求:在软件工程课程中,个人项目阶段就开始使用了源代码管理。但是由于不熟悉且没有得到有效的指导,学生的Github技能往往不能得到太大的提升。我们希望你开发一款这样的工具:它能自动分析学生源代码项目,并对项目的源代码管理质量作出评分;同时它可以可视化展示不同时间节点提交代码量的多少,并展示出每个同学的实际修改量;最后,它可以对学生的项目提出源代码管理上的一些意见,并且要具体。
形式:暂定为使用网站。
3.4. 博客园移动客户端:
需求:软件工程课要做什么样的项目,从手头的事情出发,解决自己的痛点也是一个好办法。目前,博客园的edu方面的API已经开通了,现在可以在https://oauth.cnblogs.com/申请api授权,班级博客及其它api文档在http://api.cnblogs.com/help,使用过程中遇到的问题可以发邮件到:[email protected]
各位老师/助教可以介绍给同学们, 能不能做一个 edu.cnblogs.com 的客户端呢? ——邹欣老师
3.5. 黄金点游戏:
需求:每年所有的构建之法软工教学都要使用黄金点游戏,详情请见
结对和团队项目建议 - 黄金点游戏
这个游戏看似很简单,使用Excel就能玩,那么:
3.6. 神策数据提供的项目,目前还在筹备中:
神策数据简介:
这是目前的讨论记录:
SivilTaram 乾:
神策数据桑boss:
罗杰老师:
神策数据桑boss:
罗杰老师:
神策数据桑boss:
PS:有几位同学在博客中谈到学校与工业界的交互不够密切。目前北航软工教学团队正在与神策数据商量合作事宜,这将是北航软工与工业界对接的第一步。希望你们能做第一个吃螃蟹的人/第一支吃螃蟹的队伍:D
不知这些项目你们比较中意哪一个呢?
四、团队相关
请先阅读《构建之法》中关于团队的部分:
或阅读下方的链接中讲义内容第五部分的链接:
现代软件工程讲义-目录
Q.团队角色分工应该是什么样子的?(9.21更新)
团队角色包括:开发人员、测试人员、美工、PM等角色,具体根据团队项目决定成员。可以参考往年团队的分工进行安排。另外,团队角色分配可以在可以在开发时进行调整。
往年团队1-BugPhobia
往年团队2-软剑攻城队