WeinbergCN的专栏

编程大师Ninijei哀叹道:编一个百万行的软件易,改一个人的脾气难!——Goffrey James

温伯格ID:WeinbergCN
[修改头像]
72767次访问,排名1106(1)好友0人,关注者1
WeinbergCN的文章
原创 19 篇
翻译 11 篇
转载 0 篇
评论 17 篇
WeinbergCN的公告
If you want one year of prosperity, grow grain. If you want ten years of prosperity, grow trees. If you want one hundred years of prosperity, grow people.
最近评论
DarkDragon:"抱歉,我对此没什么兴趣,因为软件工程看起来已经“进化”成一门诡辩方法论的科学,它不去解决引起问题的根源,而是力图去安抚和使用花言巧语来哄骗参与其中的人们。"
..同叹
program_net:网络安全太重要鸟
program_net:这个职业很吃香啊
Chinabin:在《理解专业程序员》书中,自称拥有15年编程经验 ,而且培训客户时总是会要求看他们典型的代码,并很快指出该公司存在的问题。
可看出weinberg 在一线的丰富经验。
1073X:to jiangtao

看两本他的书再说这样的话。出书和名家并不矛盾。何况温先生确实不是什么技术名家,甚至说过技术是无用的,但他是管理名家。
没有管理,技术有什么用?如果真的想在技术方面登峰造极,在大学或者科研所里才是最好的归宿。软件是产品,是知识工作的成果,不是技术的堆砌。
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
相册
SQA
Book Review in Chinese
Book Review in English
友情链接
AYE会议
杰拉尔德·温伯格的中文网站
杰拉尔德·温伯格的英文网站
存档

原创 软件文化及亚文化

新一篇: 提高质量为何如此之难

软件文化及亚文化

所有这些锁定现象环环相扣,最终会造成一些模式。人类学家Dani Weinberg『Weinberg 先生的夫人。——译者注』是我的搭档,每当他与我一同前往一个新的企业,为其提供有关软件组织的管理方法的咨询时,我们总是很快就能注意到两个重要的事实:

1. 任何两个软件企业都不尽相同。

2. 就其本质而言,任何两个软件企业都没有多大区别。

正是因为第一点,在解决软件管理中真正重要的问题时,不可能企望会有现成的方法。然而与此同时,正是由于第二点,每当来到一个新的软件组织时,我们也不必都从头开始。每个软件组织中都包含由一定数目的普通人构成的群体——尽管在不同的企业中,他们的数量可能相差很大,他们服务于的产业可能不同,他们使用的程序开发语言可能不同,他们可能位于不同的国家,甚至他们生活的年代也不尽相同。对于这种群体,本书将给于特别的关注。

也可以通过另一种人类学的方式来表述这种现象:存在某种软件文化,这种文化可以跨越时间、空间以及环境的界限。你有很多种办法,可以验证这种软件文化的存在。首先,英文的软件书籍在全世界都很畅销。在很大程度上,这种文化属于英语文化。这类书籍的翻译版本销路也很好,因此有关软件方面的笑话在全世界都能大行其道。关于软件的会议跨越了国界,针对这些会议的与会者的调查显示:这些人的组成跨越了产业的界限,同时也打破了年龄层次的界限。对于我们来说,这种软件文化的存在不能不说是一件幸事——因为它使我们得以互相学习。因此对您或者您所在的软件组织而言,我们从自己的客户那里所了解到的规律将具有潜在的价值。

Dani 与我所了解到的最具价值的规律之一就是:在整个软件文化圈内,只有寥寥数种不同的模式(也就是所有软件组织所具共同特性的宏观类型)。区分这些模式的一种方法,就是去观察软件组织所开发的软件的质量。我们已经知道,软件组织所开发软件的质量也会锁定在固定的水平上;同时由于文化所固有的保守本性,任何改变现状的努力都会受到遏制。从该文化圈的以下几个特点,你可以再清楚不过地看出这种保守的特性:

1. 对其目前的软件质量水平现状沾沾自喜。

2. 如果要尝试提高其软件质量,人们首先担心的是目前质量水平可能因此下滑。

3. 对其它文化缺乏了解。

4. 对其身处其中的软件文化视而不见。

质量的重要性来自于其所具有的价值。因此,把握软件质量的能力也就是把握软件工作所具价值的能力。为了创造一种质量软件的新文化,作为软件开发人员或主管,您必须懂得如何有效地应对这些因素——这也正是本书的目的所在。

有益的提示与建议

1. 你可能希望能够确定自己的软件的所有潜在用户,并且了解其对不同用户所具有的价值。自不用说,你不可能指望在这些方面做得尽善尽美;但是这并不等于说,你的这种尝试努力没有任何好处。实际上或许你将发现,哪怕你只是在自己的脑子里考虑考虑这种尝试,也会有大有裨益。而一旦切实体会到了这些好处,也许你就会着手深入主要的用户中去进行访谈,以确定对他们而言的价值所在。

2. 由于文化所固有的保守性,任何改革的努力都会受到重重阻力。你应该认识到,自己进行改革的目的正是为了能够更好地继承以往工作方式中好的方面——在认识到这一点之后,你将可以更好地应对这类阻力。在开始你的改革计划之前,你应该首先承认原有方式的价值;即使是要改变文化的模式,也要首先明确哪些特性是你希望继承的——如果能够这样做,将会获得更好的效果。

 

小结

质量是相对的。对某一个人而言的质量,对另一个人则甚至可能意味着质量不足。

    为了确定质量的相对性,需要透过其定义的文字表面,发现其中隐含的一个或多个对象。

为此,我们需要提出这样的问题:在这个关于质量的叙述背后,对应的到底是什么人?

不折不扣地讲,所谓质量就是软件产品对于某个(或某些)人的价值。正是在这个观点的基础之上,我们才有可能协调一致地解释下面的论点:

n         高质量就是毫无纰漏

n         高质量就是提供众多的功能

n         高质量就是简洁而优雅编码

n         高质量就是高性能

n         高质量就是低开发成本

n         高质量就是高开发速度

n         高质量就是高用户友好性

所有这些论点可能同时都是正确的。

虽然我们总是自欺欺人地试图理性地来考虑质量问题,但是在很大程度上,质量实际上是一个政治的或者情感的问题。

质量并不等同于不存在错误。即使不能逐字逐句地地符合其需求,一个软件产品仍然可能被某些用户认定为高质量的。

改进质量并非一件易事,这是因为其开发组织的运作方式会倾向于锁定在某种固定的模式上。对于其现有的质量水平而言,这些开发组织已经适应;但是关于应该如何做才能将质

量提高到新的层次,他们心中并不清楚——犹如叶公好龙一般,实际上他们并不愿意尝试

把自己的愿望落实为行动。

为众多的软件开发组织所采用的模式不外乎少数的几种类型(或者成为亚文化群),这些类型具有其各自的特性。

文化具有与生俱来的保守本性。对于软件开发组织而言,这种保守性在以下方面体现得淋漓尽致:

n         对其目前的软件质量水平现状沾沾自喜

n         如果要尝试提高其软件质量,人们首先担心的是目前质量水平可能因此下滑

n         对其它文化缺乏了解

n         对其身处其中的软件文化视而不见

练习

1. 我曾经致信Doug Brent,向他表达我的感激之情,同时指出其软件中的两个错误实例;

但是至今为止,我还没有受到任何答复。如果Precision Cribbage 已经经过了修正,对我

而言当然不是坏事;然而我却不会过分去留意这种修正,因为一旦后来我能找到另一个适

宜的程序来玩Cribbage 纸牌游戏,原来的软件所具有的价值就立即贬值了。请讨论一下:

当某个软件产品的早期版本或者其竞争对手的产品投入使用时,该软件产品的价值(也就

是其质量的定义)是如何变化的?

2. 在使某一给定的硬件体系结构逐渐标准化的过程中,所在软件组织将会锁定在那些特征上?请逐一列举出这些特征。

3. 关于所开发软件的质量,您所在软件组织中的同事们是否的确对目前的质量水准沾沾自喜?从哪些证据可以看出他们的这种心态?如果有人敢于对其略有微辞,您所在的企业将

会如何对待他们(的意见)?

 

发表于 @ 2005年04月05日 17:23:00|评论(loading...)|编辑

旧一篇: 质量就是对某个(某些)人而言的价值

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © WeinbergCN