InfoQ

新闻

敏捷实践中的屏蔽:有用吗?危险吗?这样做道德吗?

作者 Geoffrey Wiseman译者 郑柯 发布于 2007年8月15日 上午3时22分

社区
Agile
主题
敏捷技术
标签
业务/IT整合

Scott Ambler在极限编程的yahoogroup(eXtreme Programming yahoogroup)里面提出了敏捷中的“屏蔽”并引发了后续的讨论,他说道:

“这就是那种被我称之为‘屏蔽’的很好的例子,你按要求写文档,参加会议,并做出很关注的样子……这样别人看起来你好像是在按照所谓的‘官方流程’在走。”

George Dinwiddie对这个讨论做出了他自己的评价

虽然George回避了关于道德的问题(“由于道德问题根本上是由每个人自己决定的,所以我在此略过不谈”),他还是指出了屏蔽的副作用。在一次讨论中,John Ross发了一个有关Polaris项目的帖子,从中可以看到George提到的副作用。John Ross提到:

“故事是关于PERT图这种类似于‘波将金村庄’(Potemkin Village)之流用来充门面的东西的。开发团队制作PERT图,是为了不让审核人员和委员会成员们打扰他们的开发工作,以保证系统开发的顺利完成。

可接下来审核人员们真的开始相信PERT图的作用了……”

George Dinwiddie对这个结果进行了分析,并将之扩展到了对屏蔽的效果的类比:

首先,注意观察Polaris项目和PERT图的产出报告。如果确实没有采用PERT图来管理项目,而只是用它来敷衍项目的审核人员,那最终结果就很有讽 刺意味了,因为这样做反而强化了项目监督人员们关于如何管理项目的想法。长期的效果是带来更多的、有侵入性的监督与审核措施,而不是更少。

也许这并不令人奇怪。如果我们欺骗别人,那对于他们得出没有根据的结论,我们也没有什么好惊讶的。同样的原则对于Scott描述的状况是不是就不起作用 呢?如果你只是产出文档,并参加一些根本不了解团队状况的项目审查会议,这是不是也会强化“类似的文档和会议是项目必需的”之类的信条呢?

根据合气道的用语,他总结出了另外一种策略:

“我对于武术和技击从来都不感兴趣,不过我从Jerry Weinberg那里了解了一个合气道的用语,而且我发现这个用语在很多场合都非常有用,这个用语是'center, enter, turn’

Center: 了解你自己,你是谁,你想做什么。 

Enter: 了解别人。进入他们的世界,站在他们的旁边,而不是对立面。 

Turn: 与他们一起,将他们的力量转变到更加有效的方向。当我做到上面这些时,我发现比试着屏蔽他们更有效率了。”

Donald Gary也参与了讨论

“Scott Ambler关于‘屏蔽’的说法,对我并没有影响。以管理层要求的方式提供给他们需要的信息,我不认为这样做是个问题。如果这样做能帮助团队继续完成他们 的任务并(通过交付可用的软件)提供价值,我完全支持。对我来说,这只不过是Scrum Master的工作之一:移除障碍。 

…… 

最后我知道了是什么在困扰着我,这不过是视角不足的另外一个例子。团队有团队的视角,而管理层有管理层的视角,两边视角各不相同。但是由于一些沟通的缺 失,彼此的视角可能永远不能合二为一。而沟通也就退而成为管理层和开发团队,我们和他们之间的沟通。在现实情况中,不可能出现没有团队的管理层,也不会存 在没有管理层的团队。就像‘心智’和‘身体’之间互相依存的关系。”

如果想深入阅读,可以去极限编程的新闻组查看相关的讨论:“屏蔽”的道德观成功与失败的区别,或继续阅读InfoQ敏捷社区中的其他新闻和文章。

查看英文原文:Blocking: Useful? Dangerous? Ethical? 

译者简介:郑柯,目前就职于一家医药电子商务公司,从事医用耗材电子商务平台的开发与维护。有志于在中国的软件开发业界推广Agile的理念和方法论,笃信以人为本,关注Ruby,关注敏捷,关注人。

没有回复

回复

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。