// 上一篇:超链接
// 下一篇:工具和结构化


:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续跟踪。

@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!]
有启发,实际上,团队里的小组换人大部分都是积极的,正面的。我们在课程中设计合适的环节,让学生在实践中体验到这个过程。

TO BE CONTINUE...

软工+C(2017第4期) Alpha/Beta换人的更多相关文章

  1. 软工+C(2017第5期) 工具和结构化

    // 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 工具/轮子 软件工程/计算机相关专业的一个特点是会使用到众多的工具,工具的使用是从程序猿进化到程序员的一个关键要素.软件工程师 ...

  2. 软工+C(2017第3期) 超链接

    // 上一篇:分数和checklist // 下一篇:Alpha/Beta换人 注:平常看文章,总有能和构建之法,软件工程相关的链接,增量记录,也可以通过在其他人博客的交流中使用相关的超链接,在使用中 ...

  3. 软工+C(2017第2期) 分数和checklist

    // 上一篇:题目设计.点评和评分 // 下一篇:超链接 教学里,建立清晰明确的评分规则并且一开始就公布,对于教师.助教.学生都是重要的. 公布时机 在课程开始的时候,就需要确定并公布评分机制,随着课 ...

  4. 软工+C(2017第9期) 助教指南

    //上一篇:提问与回复 [备注]:请优先阅读 Handshake/点评/评分 三部分. 0x00 Handshake 了解<构建之法>作者参与软件工程改革的一些背景: http://www ...

  5. 软工+C(2017第1期) 题目设计、点评和评分

    // 下一篇:分数和checklist 如何设计题目 教学中的一个问题是老师出题太简单了,题目设计一开始上来就不紧凑,我认为一个好的课程应该上来就给你紧凑感,而不是先上来"轻松2-3周&qu ...

  6. 软工+C(2017第6期) 最近发展区/脚手架

    // 上一篇:工具和结构化 // 下一篇:野生程序员 教育心理学里面有提到"最近发展区"这个概念,这个概念是前苏联发展心理学家维果茨基(Vygotsky)提出的,英文名词是Zone ...

  7. 软工+C(2017第7期) 野生程序员

    // 上一篇:最近发展区/脚手架 // 下一篇:提问和回复 怎样做足够好的软件?我们就差一个程序员! 没有什么软件工程的理论的时候,程序员们凭借自己对编程的热爱,凭借着:"这是一个可以自动化 ...

  8. 软工+C(2017第8期) 提问与回复

    // 上一篇:野生程序员 // 下一篇:助教指南 在线上博客教学里引入了第三方助教,助教在每次作业期间尽力完成"消灭零点评"的目标.然而紧接而来的问题是:学生对博客作业点评的回复率 ...

  9. 软工+C(4): Alpha/Beta换人

    // 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...

随机推荐

  1. ansible批量分发免密钥登陆python脚本

    最近看了看强大的号称自动化运维的三大利器之一的--ansible,ok,亲测之后,确实感觉,对于我们这种DBA工作者来说,确实很受益. 值得注意的是ansible要求被管理服务器python版本不低于 ...

  2. Android Gesture 手势创建以及使用示例

    在Android1.6的模拟器里面预装了一个叫Gestures Builder的程序,这个程序就是让你创建自己的手势的(Gestures Builder的源代码在sdk问samples里面有,有兴趣可 ...

  3. 终端管理软件tmux

    tmux - terminal multiplexer 我们在服务器上进行操作,写代码,测试,运行服务,都会用到这样的工具,以前使用GNU screen,但是在最近使用了tmux之后,我觉得tmux真 ...

  4. 浅谈JS中的高级函数

    在JavaScript中,函数的功能十分强大.它们是第一类对象,也可以作为另一个对象的方法,还可以作为参数传入另一个函数,不仅如此,还能被一个函数返回!可以说,在JS中,函数无处不在,无所不能,堪比孙 ...

  5. HDU 4662 MU Puzzle:找规律

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 题意: 初始字符串为"MI". 有三个操作: (1)将'M'之后的所有字符翻 ...

  6. Python3 知识库

    Python3 标准库概览 Python3 日期和时间 Python3 JSON 数据解析 Python3 XML解析 Python3 多线程 Python3 SMTP发送邮件 Python3 网络编 ...

  7. Java的static和final关键字的用法

    static关键字的用法 static的意思是"'静态的",在java里面可用于修饰属性和方法. static关键字的应用应注意以下几种情形: 1.static作用于某个字段,一个 ...

  8. Swift语言中与C/C++和Java不同的语法(一)

    ---恢复内容开始--- Swift作为苹果官方推出的IOS开发的推荐语言,在过去的几年间受到了越来越广泛的关注,其实编程的人都知道,不同的编程语言大同小异,掌握一门新的语言关键是了解它与其它语言不同 ...

  9. 盼盼Degenerate——清除浮动的方法

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name= ...

  10. Json安全

    1.不要使用顶级JSON数组,避免被<script>标签引用. 2.使用POST+密钥获取JSON,尽量不要用GET方式. 3.不要使用eval()将对象放入内存,eval()会执行所传入 ...