发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

什么是Mob编程?

              
2016-11-06 11:17
赞助商链接

所有的聪明的人在同一时间,在同一个地方,在同一台电脑上工作于同样的事情。

Mob编程是一种软件开发方式,是结对编程的扩展,整个团队从事同一段代码编程。这类似于两个人坐在同一台计算机上,同时对一个任务或一个问题上进行结对编程。

这不同于"Swarming”,后者是整个团队一起策划一个方案,然后各自去独立工作。而在Mob编程中,团队一直呆在一起。

它基于精益生产,极端编程和精益软件开发原则建立。早期使用的短语“Mob编程”来自于“极端编程的观点”。

Mob编程用于以下领域且不限于这些:
1.用户故事
2.需求
3.测试
4.设计
5.bug修复
6.故障排除
7.测试

最初的概念来自Woody Zuill,它不是故意创造的,而是为了解决一个特定的问题催生的,“团队工作做得最好就是能弄清楚如何做工作”,他的团队2011开始尝试新的工作方式,从事使用代码kata技术进行培训,在这种技术方法中,一个小团队围坐在大屏幕周围,并在键盘上花费4或5分钟时间间隔键入代码,这些内容会显示在大屏幕上。他喜欢这个技术方式,并开始应用它。

他的整个团队坐在一个(或两个)屏幕前,并轮流坐在键盘上,每个人合作一起工作来解决一个问题,比如开发一个用户故事或其他。

Mob编程日渐流行,这是来自Mob Rule?的Mob编程场景:



Mob编程有一个非常简单的描述:团队所有人一起工作从事同一件工作,而不是将工作分配给个人或每对完成,整个团队坐在一起,并建议一个“司机”掌握唯一的键盘。

这是一个有趣的,令人深思的,甚至是具有挑战性的想法。一般人第一反应是怀疑。这些怀疑包括:
1.没有团队各自分工高效
2.有些人只是坐着,却没有真正的贡献
3.这需要由一些强有力的个人来主导
4.你怎么能设计出任何复杂的东西?

经过一段时间体验,他们认为:
1.实际效率很高,产生的用户故事数量不断增加,该团队的主观感觉,他们现在正在迅速前进,并产生更高质量的输出。

2.有些人确实说得比别人少,但每个人都参与了整个一天,每个人都有一定程度的贡献。

3.需要有一些“强有力的个人”的存在,主要是仔细聆听,并考虑每个人的想法。相比其他人会有更多谈话,并会有更多的指令,不过最终成绩结果还是集体驱动的。

4.能够设计复杂的东西?这是人们TDD和结对编程老掉牙的问题,实际中这是一种渐进式设计。这也是我们可以高品质解决真正复杂的问题唯一的方法,整个团队在系统架构思考中前进。

相对于结对编程,你不能对你的伙伴说,让我们休息一下,30分钟以后再开始,而整个团队在Mob编程时,你不太可能发出这种倡议。

关于参与人数问题,肯定不能200个人一起参与,6个人,或8,10或12个人?不过12个人确实已经够大了。不太切实际。

Mob编程实际也是某种头脑风暴,可以用于DDD等事件建模活动中。

Mob编程      敏捷      软件工程     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com