软工+C(4): Alpha/Beta换人
注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续跟踪。
Talk(1)
@Coach: [Something is important,We Can..]
① 第6、7 周的事情,可以一周做完,建议放在第4周来做, 原来第4周的单元测试往后推一周, 这样同学们不会连续三周都有写代码的工作,给一些同学一个喘息和赶上来的机会。
② 第8、9、10周的事情可以合成两周.
③ 最大的风险是, 连续五天的冲刺时间太少,同学们刚能同步写代码,就停止了。 别的学校都是10天。 至少要连续7天 (同学们可以用周末的时间,由他们自己定)。
④你觉得应该在alpha / beta 之间强迫每一组必须送走一个队员, 然后这个队员自己找下家么?有些学校的同学感情上受不了这个, 但是这个措施对于 “打酱油” 的同学是很好的警戒。
@Teacher: [Interesting, BUT..]
没考虑过,感觉有点残酷,不过确实能起到警戒的作用
@Coach: [Since...]
否则会出现 “劣币淘汰良币” 的情况: 一些差学生就是不干活, 导致团队其他人也不想干活,最后没有产品出来。 老师也不好给团队项目打分。
@Teacher: [First we try, then we trust..]
可以在刚组队完成时,宣布其规则,让他们有心理准备
@Coach: [And...]
① 每班都有助教, 我觉得这是可以解决的。
② 另外,还有情况是有优秀的同学, 作了一个项目后,想试一下别的项目, 所以她要换组。 这也要鼓励。 另一个理由是: 换组的同学, 就会看到别人写的代码, 在别人写的代码上做改进, 这是软件工程非常重要的环节。 她就会意识到代码规范和文档的重要。
@Observer: [Question?]
① 会不会引起同学之间矛盾。感觉应该去培养团队合作性。你目前团队就是 这个情况,团队负责人应该想如何解决这些问题。而不是重组团队,这样差的学生也不可能改进什么。
② 一门课学的好不好不能最终去衡量这个学生综合能力。我们允许差的学生存在一个团队中。我更觉得适合在团队中找一个合适负责人,目前你团队有差的学生,团队负责人要去想怎么解决这个问题,让你的团队更优秀才对。这样可以培养团队合作精神更好。
@Coach: [In fact, It is...]
① 引入这个机制的一个原因就是同学间的矛盾。 因为大多数同学当初组队的时候都没有细想,就在一起了, 结果发现后来脾气、技术都有矛盾。 要有一个释放的渠道。否则被迫在一起没有意思。
② 在我们的经历中, 一些是脾气、技术方面的矛盾,导致一个人要主动离开。
③ 并不是说谁最菜,谁就走。 走的人,大多数是投入太少。
④ 你说允许差生存在一个团队中, 但是如果这个差生就是甘于做“最差” 不想干活,怎么办? 把他送到其他小组, 他能够有再次学习的机会。 就像我们上课也给一些同学挂科, 这是治病救人的态度。 如果所有的课程都禁止挂科, 但是校领导要求老师 “想办法去解决问题” , 老师能怎么解决呢? 优胜劣汰,是自然规律, 早一天让同学有切身体会, 早一天他们会醒悟。
@Manager: [Change Your Perspective... ]
① 学生入学后,也有因为和室友合不来而换寝室的,也有大家能够从始到终都相处好的,两种方式没有孰高孰低。
② 任何组织,都存在类似的情况,既可以流动以保持活力,也可以大家在内部互相做出让步来调整自己,这都要看团队内部的情况如何而定,不可一概而论。
③ 在企业里工作的人,和在高校的老师的感受往往有些不同。高校几乎是不流动的(静态思维或由此而生),而企业则是铁打的营盘流水的兵,所以视流动为常态,合则留,不合则去。因此,在企业工作的人,也会把矛盾和冲突看作常态,设想多种解决思路,而不是只有内部消化这一条路。所以,只不过是学生换个团队,老师们就会觉得这有点『残酷』,但真实的世界不就是这样的吗?
④ 学生的流动,是一种资源组合的优化。也是一种组织结构的优化。原先的团队不能取长补短,学生自发调整后,变得更能取长补短了,这就是组织结构得到了优化,等同于资源组合的优化。
@Engineer: [Think different?]
① 在这个环节设置上,我倾向于要改变认知,旧的认知好像是这样的:
● 换人是残酷和伤害感情的
● 只有一个队伍里做的最差的会被换掉
● 不换人更有团队凝聚力,换人好像团队就会乱掉
② 但是事实上是否一定是这样呢?
● 有的人想要换到别的更好的团队,希望得到更高水平的锻炼,但是不敢或者没有机会
● 有的人希望团队的效率更高,但是别人说他要考研,要干别的事情
● 看上去一团和气,但没有一定的约束,实际上也不能形成凝聚力
③ 可以改变一下我们对换人的认知,通过在心智上重新定义“Alpha/Beta换人”:
● 合理的换人机制,让人才在团队间得到自由流动的机会
● 换人的过程中,需要重新融入其他团队,接触其他团队的代码、文档,对工程产生需求
● 在合理换人中,结对编程、项目文档、解BUG、敏捷、共同远景、责任驱动的深度需求。
● 换人是自然的,是软件工程的一个合适的训练环节
@Engineer: [Build a program!]
例如,可以设计情景游戏,通过情景体验,看到换人机制是一种不错的选择(新队友,新环境,新协作):
在限时游戏环节内,组织学生分组,一组3人,游戏的要求是在10分钟的竞赛游戏后,给2分钟每组必须有一个人到一个中间的“转会”平台,每组同时需要在这个转会平台招募一个新人,然后进入下一轮10分钟竞技。一共进行3轮,3轮后每个人都换过一组。
@Assistant: [The big problem of small change.]
感觉最大的问题出现在“决定谁离开”这个时候.
@Engineer: [Case]
学校里面比较不好模拟真实情况,真实情况下,绝大多是是自由选择离开。我第一份工作的时候,招了一个新人,但是他迟迟无法融入团队,和所有人都没办法说到一块,后面我们决定就解除和他的合作了。过了一年后,我自己因为个人发展原因,我自己离开了这个团队。第二份工作,在1年内团队里有好几个新人因为城市压力,选择离开。中间又有好几个临时到团队里落个脚,呆一段时间自己离开的。大部分是自由离开的,自由离开一般也是因为各种博弈选择。
@Assistant: [How about this?]
不是有个团队分么?分数按从大到小排名,统一决定某个名次的学生离开团队如何?这个名次每学期随机一次。这个是老师决定的,不会有团队不知道该让谁离开的问题。而且具有一定的随机性,学生们无法事先知道谁离开,也就无法提前做出准备.
@Engineer: [Build a new program?]
也就是说,如果决定不出来,那就写一个程序,随机换人?那就可以改为:
①如果团队自己可以决定换谁,那就他们自己换。
②否则,就交给“市场程序”,让“市场程序”,随机挑选。
③在面临“市场程序”的随机洗牌的时候,也许大部分团队希望自己掌握命运。
@Assistant: [Gamelization!]
小于等于6个的话,可以在班级的微信群里用微信的骰子来决定,公开公正,主动掌握命运比被动来得好,不过也需要一定的勇气。
@Coach: [Experience!]
有启发,实际上,团队里的小组换人大部分都是积极的,正面的。我们在课程中设计合适的环节,让学生在实践中体验到这个过程。
Talk(2)
@SoftwareTeacher:
Alpha/Beta之间换人是《构建之法》教学的一大特点, 请看这里的详细解释
http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html
@StudentA:
团队中如果存在文章中的“有人”,可以理解,不存在的话,强制又是为了什么
@SoftwareTeacher:
我们教学的过程中, 还出现过一个团队, 做完 alpha, 所有人都离开了, 因为团队没有任何凝聚力,做的项目也很差。
@StudentA:
这样的话 会不会出现 划水人员循环流动的这种结果
@SoftwareTeacher:
了解足球吧? 最喜欢什么队?比如足球教练在训练的时候, 把所有队员分成几组打教学比赛, 然后又把他们拆开,重新组队比赛,收集各种数据, 决定谁的能力和状态好。 这个是很正常的训练内容吧。那么, 我们在软件工程课中, 也有类似的做法。
@StudentA:
我先谈谈自己的看法吧。首先,大家并不是第一天认识,已经一起学习了两年,彼此之间也都有点了解。能够组成一个队,首先便说明了自己对团队内部人员的认可,不然干脆就不要加入这个队。既然是自己认可的,我觉得应该要对自己的选择负责到底,哪怕是后来发现自己当初看走眼了,原来某某竟是文章中的“有人”。一个团队中的队员,并不仅仅只是队员,更多的是伙伴。如果团队中有人想要谋求更好的发展,作为伙伴,当然不会去阻止他。但是伙伴不应该把任何人推出一个团队。好像听说以后公司中的项目都会有人员流动,但是我们还只是学生,我们组队不存在任何利益关系。
@SoftwareTeacher:
写得不错。 但是这个课程就是有项目是分两个阶段的, 在两个阶段之间要有人员流动。 你可以要求: “在alpha 阶段对我们团队分常认可, 写高质量的代码+文档, 即使你走了之后, 新人能很快接收你的模块, 把最好质量的软件做出来” 。 我觉得这也很好啊。
@TeachingAssistant:
我之前在上软工课程的时候也有过这样的想法,但经历了阿尔法阶段后反而对换人有所认同。PM,也就是队伍里需要统筹大局的人,要以产品/项目的质量为保障。在这种前提下,如果有比较优秀的同学出走团队,可以视作跳槽;如果有表现平平的同学出走,他也可能是去了一个更适合他的队伍,做着更适合的项目呢。我之前曾作为PM与室友组队,在团队答辩时的感受就是:尽量别跟特别亲密的人组队。
@StudentB:
StudentA你的情况是在于团体各个成员都做得不错, 也没有一个成员想要离队的情况吧?
@SoftwareTeacher:
欢迎探讨,《构建之法》的书和教学方法就是在不断的质疑,探讨,改进中提高的。 这不是“经典”, 而是不断变化的方法论。
@StudentB:
这种情况下,不如这么想:我们一直知道代码规范、手册、文档的重要性,但如果对于自己的代码一直没有真正训练和考察成效的机会。让一名新鲜血液加入项目组,就可以通过这名新成员是否能迅速上手项目,来检验之前编码规范等工作的成效了。
@TeachingAssistant:
团队之间的合作需要是两个独立的子项目拼成一个共同的大项目,这一点上并不是每个团队都能受到锻炼的。如果你们愿意,也可以考虑2-3个团队一起做一个大项目,每个团队分别独立负责一个小项目。但最后团队答辩时依然以你们负责的小项目为评分依据。这样一来,你们换人可以在合作团队间互换,以模拟组里的流动工作。但我不推荐这样做,风险很大。尤其是涉及到团队之间的合作与对接,情况远比想象的复杂。
@StudentA:
你推荐我们应该也不会这样做。。
@StudentC:
如果出现整个团队配合很好,队员都不想离开的情况呢?
@StudentB:
如果真的遇到了这种情况说真的我也比较为难。不过呢,现实世界中肯定是流动才是常态,不流动才是不正常。老师能想出这个设定我觉得也是用心良苦,能让我们在学校就可以提早见识一下,拥抱常态。如果不是换掉哪一个人都很舍不得的情况下,我觉得提前在学校里有这个见识也是不错的。
@TeachingAssistant:
相信我,团队阿尔法阶段以后不会舍不得。
@StudentD:
个人看法:分组对抗中 球员的适应能力 与陌生团队的磨合 也是很重要的考量 也能够发掘球员本身的潜力 那么也适用于在软工中作为交换的学生 这是我的理解 但是也有这样一种情况:一种团队 所有的成员经过了系列的磨合 已经能够得到好的效果 并且都不愿意离队。认同邹老师和助教前辈们的说法 不过我的看法是 可以不强制要求 但是如果有人有要求 或者在进行团队人员的评估中发现不合适(不合适的标准也需要探讨 比如有的人积极性不高)则进行转换。
@StudentA:
臣附议,这大概就是我最后想要说明的情况,还没到最后阶段,就被你给说了。
@Yet Another SoftwareTeacher:
①不强制要求,最终大多数组都不会换人。也许我们有固定认知,也许我们有没尝试但不希望体会的。
②强制要求,体验一次,最终再来评价其得失利弊。 不会全部是利,也不会全部是弊。看到不一样的风景。实施了才能迭代改进。不试试,不知道什么样是真正最适合自己的。
③To improve is to change, to be perfect is to change often. 如同xx级实验班首次要求动态滚动时,你们也不同意的。两年过后,你们不都认同了吗?软工组队中期更换不是淘汰,有人高就 有人离开,换一个组,加一个新成员. 让老师当坏人。alpha阶段后,总有你或你觉得有人离开比较好.
@TeachingAssistant:
我理解大部分组不换人的根本原因还是脸面过不去。组长不好意思换人(因为不是强制的),队员不想走(因为不是强制的)。
@StudentA:
是的 在我刚才的说法中 如果选择一个成员离开 要有标准 比如 个人申请 视为跳槽 比如积极性不高 视为淘汰.
@TeachingAssistant:
①可能潜意识里觉得 离开==淘汰。实际上还有可能是平步青云或者另谋高就什么的.
②也有可能真的是淘汰。 在公司里工作,你就保证不会被开除吗
软工+C(4): Alpha/Beta换人的更多相关文章
- 软工+C(2017第4期) Alpha/Beta换人
// 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...
- [2019BUAA软工助教]团队alpha得分总表
[2019BUAA软工助教]团队alpha得分总表 [2019BUAA软工助教]团队alpha得分总表 一.团队累计得分 累计得分图 得分总表 二.各项得分计算规则 介绍与采访 项目选择与NABCD ...
- 福大软工1816:Alpha事后诸葛
福大软工·第十一次作业-Alpha事后诸葛亮 组长博客链接 本次作业博客链接 项目Postmortem 模板 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...
- 福大软工1816:Alpha(10/10)
Alpha 冲刺 (10/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1.和愈明.韫月一起对接 2 ...
- [敏捷软工团队博客]Beta阶段发布声明
项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 Beta阶段发布声明 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 对Bet ...
- [敏捷软工团队博客]Beta阶段事后分析
设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的问题是:现在的软工课程的作业分布在博客园.GitHub上,没有一个集成多种功能的一体化 ...
- [软工顶级理解组] Beta阶段项目展示
目录 团队成员 软件介绍 项目简介 预期典型用户 功能描述 预期目标用户数 用户反馈 团队管理 分工协作 项目管理 取舍平衡 代码管理 程序测试 代码规范 文档撰写 继续开发指导性 用户沟通 需求分析 ...
- [敏捷软工团队博客]Beta阶段项目展示
团队成员简介和个人博客地址 头像 姓名 博客园名称 自我介绍 PM 测试 前端 后端 dzx 秃头院的大闸蟹 大闸蟹是1706菜市场里无菜可卖的底层水货.大闸蟹喜欢音乐(但可惜不会),喜欢lol(可惜 ...
- 【软工实践】Alpha冲刺(5/6)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 任务界面设计,任务功能后端实现 任务计时功能及界面实现 展示GitHub代码签 ...
随机推荐
- 三分钟学会.NET微服务之Polly
熔断降级是一个非常重要的概念,我们先说一下什么是熔断降级,咱们都知道服务发现,一个有问题的服务器没来得急注销过一会就崩溃掉了,那么我们的请求就有可能访问一个已经崩溃的服务器,那么就会请求失败,因为已经 ...
- UmengAppDemo【友盟统计SDK集成以及多渠道打包配置,基于V7.5.3版本】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里只是记录下集成友盟统计SDK以及简单配置多渠道打包的步骤.所以1.该Demo不能运行:2.配置多渠道打包只是一种简单的写法,具体 ...
- springboot~WebTestClient的使用
在使用springboot进行开发时,单元测试是必要的,当你建立一个spring项目时,它会为我们自己生成一个测试项目,当你的项目开始过程中,测试用例是同时要进行的,我们在进行WEB层的集成测试时,可 ...
- centos7 python3 pip
pip of python3 installed is play well with Django and spider. #安装pip可以很好的使用django和爬虫 wget https:// ...
- Spring Boot使用Spring Data Jpa对MySQL数据库进行CRUD操作
只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 构建了第一个Spring Boot项目. Spring Boot连接MySQL数据库 连接了MySQL数据库. 本文在之前 ...
- 【大数据安全】Apache Kylin 安全配置(Kerberos)
1. 概述 本文首先会简单介绍Kylin的安装配置,然后介绍启用Kerberos的CDH集群中如何部署及使用Kylin. Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spa ...
- shared_ptr和动态数组
std::shared_ptr智能指针是c++11一个相当重要的特性,可以极大地将开发者从资源申请/释放的繁重劳动中解放出来. 然而直到c++17前std::shared_ptr都有一个严重的限制,那 ...
- VUE v-for问题
今天写一个拖动然后使装备交换的功能,在背包格子里 发现直接设置Bags数组的项,v-for渲染出来的列表不会对应改变,只有设置值才会改变 有点拗口,贴代码吧 var repear = this.Bag ...
- 使用jQuery增加或删除元素(内容)
使用jQuery增加或删除元素(内容):一.jQuery添加元素或内容:1,append() 方法:在被选元素的结尾插入元素或内容 2,prepend() 方法:被选元素的开头插入元素或内容. 3,a ...
- [转帖]无网络离线安装 vs2017
无网络离线安装 vs2017 公司电脑禁止,只有一个老的vs2017的安装目录(之前通过 --layout 安装时生成的离线文件).找了一圈百度,没能解决问题,最后,问bing,查微软的官方网站命令, ...