写点什么

物理墙和虚拟墙之争

  • 2013-03-27
  • 本文字数:1227 字

    阅读完需:约 4 分钟

在敏捷开发中,故事墙作为 information radiator,在支撑整个软件团队的日常开发,可视化开发进度和开发中出现的问题,起到非常重要的作用。团队的开发状态和进度,在任何时刻,你只需要抬一抬头,就可以一目了然:当前谁在开发什么任务,是否有闲置的资源,开发和测试的工作分配是否合理,是否有过量的 Bug 等待修复,不一而足。

虚拟的电子故事墙也应运而生,比如 Mingle 和 TFS,还有一些开源的产品经过改造后,也可以极度模拟实际的物理墙界面,并更加容易创建和编辑并删除。尤其在保存开发过程历史方面,比起物理墙有着得天独厚的好处。物理墙基本上只关注当前迭代的进程,在每次进入新的迭代,物理墙更新,上一迭代的故事卡片被回收或者遗弃,难以定位和回顾。虚拟墙因为信息化的本质,更容易搜索和存档,保留快照。此外,电子故事墙在统计和制作图表方面的功能,更是物理墙无法企及的。电子墙可以随着故事卡的挪动,动态算出当前状态下的各种数据,并渲染对应的实时更新的图表,为团队和客户提供数据和可视化方面的决策支持。更重要的,虚拟墙天生支持分布式开发,因为地区甚至时区有差异的团队,如果需要共用一个故事墙时,唯一的选择只能是虚拟墙,每一方团队都能看到时刻最新的故事墙状态。

如何解决好两者之间的关系,在 ThoughtWorks 内部以及客户的现场,我们都遇到了类似的问题。一般来说,团队自身或者开发者们更喜欢物理墙多一点,感受直观,把注意力和时间都聚焦在故事卡对应的任务本身,而不是被动地吸引在虚拟墙软件自身以及如何学习使用并挪动虚拟墙上的电子卡上(你会看见在站会时,每一位开发人员在挪动电子卡时会有多么奇怪而有趣的事情发生),对他们是更重要的事情。而对于团队的 PM 或者 stakeholder 们来说,虚拟墙可以远程打开,开发状态一目了然,更不用提统计和图表所提供的支持。

很多团队会选择两者都采用,但不得不问到以谁为主以及如何同步的问题。以谁为主还是比较好解决,物理墙面向开发团队,虚拟墙面向管理者和 stakeholder 们。所以最大的问题在于如何保持两者之间的数据同步。说白了就是,物理墙上的故事卡挪动,要及时在虚拟墙上反映出来,尤其虚拟墙软件对于故事卡的每一步挪动都会记录相应的数据变化,从而为精细的图表和统计提供数据,这样物理墙和虚拟墙之间的故事卡数据同步显得尤为重要。但现实情况和经验表明,数据同步做得很不如人意,开发者的关注点在物理墙,往往容易忘记及时更新虚拟墙上的故事卡,他们甚至对于这样一件重复的事情感到愤怒。而如果由 PM 每天下班前对两个故事墙做同步,又显得无聊之极。

怎么办?我更相信鱼和熊掌不可兼得,对于一个团队,如果既要享受物理墙带来的可视化和信息辐射的好处,又需要虚拟墙带来的强大的编辑、统计以及图表功能,就不得不去承担因为同步二者的故事卡数据所带来的辛苦甚至是痛苦。选择团队的开发人员来各自负责同步两个墙之间的数据,还是由 PM 每天找一个正确的时间来同步,都是由团队自己来决定,至少我们是这么做的。你还有其他的办法吗?

2013-03-27 00:274353
用户头像

发布了 127 篇内容, 共 44.4 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

前置机器学习(三):30分钟掌握常用NumPy用法

caiyongji

机器学习

源码分析Netty:核心组件及启动过程分析

程序员架构进阶

架构 Netty 源码剖析 28天写作 3月日更

Python-计算机视觉-OpenCV-Image

Aldeo

Python OpenCV 计算机视觉

高阶文件操作

Python研究所

Python 文件处理

网页长截图如此简单

Python研究所

浏览器 实用技巧 截图

Prophecis 0.2.0 版本发布

WeDataSphere

机器学习 大数据 学习 WeDataSphere

js逐步教你实现原生电影院系统(html逻辑 css逻辑 js逻辑)

js

新思科技BlackDuck帮助Avira软件公司在保持DevOps速度的同时提升开源安全

InfoQ_434670063458

如何利用VGG19实现insightface人脸识别?

程序媛观澜

机器学习 人脸识别

LeetCode题解:198. 打家劫舍,动态规划(不缓存偷盗状态),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

[Thinkphp6.0 零基础到前后分离实战]一

重庆柯一网络有限公司

js逐步教你实现原生古诗匹配系统(html逻辑 css逻辑 js逻辑)

js

它终于来了!

Python研究所

Python

一文看懂特权访问管理(PAM)

龙归科技

云计算 云存储

MyBatis-Plus实现自动填充createTime和updateTime

棉花糖

springboot MyBatisPlus

前置机器学习(四):一文掌握Pandas用法

caiyongji

机器学习

前置机器学习(五):30分钟掌握常用Matplotlib用法

caiyongji

机器学习

全球视野下的云上“夺旗赛”:京东云飞驰在产业赛道

脑极体

js逐步教实现音乐系统(html逻辑 css逻辑 js逻辑)

js

js逐步实现原生控制系统(html逻辑 css逻辑 js逻辑)

js

go训练营毕业总结

伊灵

前置机器学习(二):30分钟掌握常用Jupyter Notebook用法

caiyongji

机器学习

第九周作业

yoki

js逐步教实现表单系统(html逻辑 css逻辑 js逻辑)

h5逐步实现 <<canvas系统>>(html逻辑 css逻辑 js逻辑)

js

js逐步实现原生flex系统(html逻辑 css逻辑 js逻辑)

js

前置机器学习(一):数学符号及希腊字母

caiyongji

机器学习

我提升开发效率的经验

流沙

程序员 成长笔记 成长与思考

Three.js杂记(四)—— 更好的运动:TweenMax

空城机

大前端 3D渲染 3D可视化 three. webg

机器学习(一):5分钟理解机器学习并上手实践

caiyongji

机器学习

C语言性能优化:移除循环体中的重复运算

1

缓存 编程 程序员 性能优化 C语言

物理墙和虚拟墙之争_研发效能_张凯峰_InfoQ精选文章