饱受部门软件质量问题的困扰,把温伯格的质量软件管理1~3册买回来读了两遍,每卷对应 软件工程管理三项基本能力:对复杂书面的洞察能力;对正在发生的整改进行观察并采取有效行为的能力;在各种困难的人际交往场合保持行为一致的能力。一整套提高质量的方法论,偏重于心理学模型,真知灼见要牢记于心,付诸实践。
Vol.1 系统思维
包括质量模式、管理模式、决定模式的要求、错误模式、压力模式几个部分
质量定义:质量的相对性:质量就是对某个(某些)人而言的价值
不分青红皂白地追求完美并不能称为成熟,而只是一种幼稚的表现
认为成熟度模型的叫法不合理,提出六种模式,基本上都处于0~3:
0、不知不觉:我们正在执行某个进程吗是我们并不知道这件事!
乌合之众
1、反复无常:任何时候,我们想起什么就做什么。
超级程序员
2、例行公事:我们严格遵循自己例行的工作程序–除非在我们手忙脚乱的时候。
超级领导者
3、驾驭自如:我们能够依据其产出的效果,在自己例行的各种工作程序中进行取舍。
称职的主管
4、未雨绸缪:我们能够依据以往的经验,提前创建新的例行工作程序。
5、整体一致:无论何时,所有人都可以参与任何方面的改进工作。
每一种模式都有其与众不同的思维与交流方式,要进行模式转换,至关重要的一方面就是要转换思维的模式。
根据自动控制理论构造管理模型图,引入正反馈和负反馈的概念。
作用图:
表示可测量指标之间的关系。从输出逆向推导,主要是确定非线性关系的所在。
只要在系统中存在人为决策点,那么真正决定下一事件如何发生的,并不是当前的事件,而是某个人对该事件的反应。
在作用图中找出人为决策点才有可能防止危机。
虽然人类的大脑或多或少存在些许的差别,然而都是有一定的限制,而随着程序规模的不断增加,软件的复杂度也将至少以平方的速度增加。
一味地增加客户的数量,将使企业内部产生巨大的变化,这方面的例子有:
产品开发的工作量激增
产品后维护的工作量激增
对当前的开发工作模式造成巨大的冲击
在一个有条不紊地运行着的系统之中,真正的控制者并不需要做很多事情。
无论你采取何种方法,都不可能以一种线性的速度依次检出各项故障。
没有不称职的程序员,只有对故障动力缺乏理解的主管。
如果你认为绝对不会发生空难,那么难以想象的空难往往就会出现。
施加的压力越大,收到的效果越小
加大压力只能在短期内提高工作绩效,然而很快就会得不到任何反应,最终将崩溃。
如果主管们整天忙忙碌碌,就意味着管理不善。
如果企图通过捷径实现质量,往往会把事情弄得更加糟糕。
一个项目迫于时间压力即将崩溃的一个确定的信 ,就是无论主管们还是工人们都开始在工作流程中走捷径。
如果说我们的产业经受过一些磨难,那么我们选拔主管的方法或许就是罪魁祸首。
成功完成某项任务后应该暂时停歇片刻,对自己刚刚取得的成就作观察。
Vol.2 一阶测量
包括摄入、赋意、意义、反应、零阶测量
主要讲述Satir交互模型:
Intake->Meaning->Significance->response
将注意力放在对正在发生的事情进行观察,并且能够理解观察结果的意义这一能力上。
只有在了解了系统的状态之后,你才能实施切实的干预,控制其行为。
在某种程度上,观察能力和智力可以相互补偿。
对组织的一项重要测量,就是管理者在多大程度上痴迷于过分精确的测量,然而他们却没有相应的的工作模型。
离开可见性,控制就不可能实现。(如果你不能看见,你就能驾驭。)
通过驾驭过程来同时驾驭所有产品的质量。
任何过程都是人创建的,因此也可以被人改变。
最终的图不重要,绘制的过程决定一切。
如果我不能对我所接收的信息想出至少三种不同的解释,那么我还没有对它的含义作出足够的思考。
真正的质量改进总是从了解你的顾客需求开始。
人性第一定律:人们从来不愿意相信热力学第二定律会适用的于他们自己。
质量就是价值,不会多也不会少。质量是对所有人在所有时间里的总价值。
如果没有纠正措施,软件的质量会随着时间而衰退。
当一个组织处于压力下,关系到生存时,它必须决定把重点放在成本上还是放在价值上。从成本观察到价值观察的转变是一个组织从模式2过渡到模式3的最显著标志。
DeMarco:精力会被转到被计算的事物上。成本计算会导致成本的降低,但会计算会导致价值的增加。
预防失败法则:没有什么事情小到不值得观察;X美元的损失总是财务责任超过X美元的执行官的责任。
管理者要对他们雇用和留住的员工负责。发现了愚昧的员工,但却对此不采取任何行动的管理者是双倍的愚昧。
生存反应导致了思想的不确定,而思想的不确定破坏质量。
问题本身并不重要,对于问题的处理才是至关重要的。
危机中最有效的干预之一,是提供从不同的观察位置得到的信息。无论何时,你都可以选择自我位置、他人位置或环境位置进行观察。
文档化
系统故障事件统计、系统错误分析
零阶测量的基本要素:
知道怎样由可测量的任务去组成的一个项目地址,从而生成的高品质的产品;
一个创建和维护进度的公开视图系统,显示项目质量;
一个需求系统,详细说明质量的具体含义;
一个审查的一致性系统,测量通向质量的进度中的每一个部分。
计划一个可测量项目的方法由下列步骤组成:
准备一个重复过程
识别顾客
找出顾客所看重的
选择肯定的、可完成的目标
用一种可测量的方式陈述目标
陈述目标时尽可能不对项目施加限制
检查障碍
检查资源
开始逆向计划
任何计划只是一个计划–用渐进的目标来计划大项目。
官僚主义的定义:每一件事情都控制,但任何事情都失去了控制。
对官僚主义的一个测量就是你做某些事情的比例,这些事情是你做的,但你却不了解你为什么去做他们。
审查提高进度表性能,消除无用工作。
审查是测试、是培训。
可审查的最小产品尺寸是一个比我。
为保证一种保守的评价,以控制项目,在得出结论时考虑下面几个关键准则:
永远作出最保守的选择;
倾听不同意见;
观察对签名的反应;
注意重新开始讨论问题的企图;
注意和发现强烈情绪。
从任何任务产生出的候选产品都能被审查,如果不能,它就算不上是一个任务。可审查:
代码,伪代码;
设计图;
测试计划和结果(单元、系统、验收和性能测试);
项目计划,项目标准;
需求文档;
用户手册,技术手册,帮助系统,帮助信息;
培训计划,课程计划,课程资料,课程;
界面版面安排;
任何其他测量结果。
首先我们收集需求,然后开始软件生命周期。
任何需求过程的目的都是把顾客模糊不清的期望转化为明确、无二义的陈述语句。
负阶测量比根本不测量还糟糕。负阶测量的一个例子就是猜测需求。
Vol.3 协调行动
包括自我管理、管理别人、完成协调管理、管理团队环境
世上从来都没有银弹,但有时有龙骑士。
变化必须法则:为了使控制器更加有效,其处理机制必须拥有足够的变化,以此抵消被控制系统所显示的各种不确定的、充满变化的行为。
管理是最重要的随机过程元素,管理是阻碍其他随机因素前进的绊脚石。
如果你连自己都管理不好,就不要管理别人了。
不论何时何地,只要听到有人说“我没有选择”,你就应该知道他的行动是不协调的,作为控制者,他并没有调动所有的潜质。
管理者的一元选拔模型基于以下三个错误假设:
管理者是天生的,而不是后天造就的;
员工可以做线性的等级排序;
编程的水平等同于管理水平。
这种模型的结果就是,技术最强的人进入管理层,导致管理层和整体技术水平的双重削弱。
为了有效地处理事情,我们必须清楚考虑三个因素–自我、他人和现实环境,还要均衡这三个方面的需求。
不协调状态:指责、安抚、超级有理、宠爱/憎恨、不相关
协调状态:断定、关心或服从、专注和讲道理、利益联盟/友好的敌对状态、有趣的创造
作为一个新任管理者,你面临着一个重要的挑战:学习管理你自己的感情,不要不协调。
在每个不协调行为背后都有一个生存法则,因为我们的反应和处于生死关系的反应一样。
协调意味着做事能够运用各种可能的方式,游刃有余。如果你是协调的,你就有最大的机会成为一个职业软件工程管理者。
领导能力是一种创建环境的能力,在这种环境下,每个人都能够有创造力地贡献和解决问题。在这种模型下,管理者的工作只能用一种标准来评价:人们被管理得是否成功。我们的管理者对我们的成功有如下贡献:
提供积极的援助;
给我们精确清楚的指导,并且当他们不明白的时候总是愿意澄清
不对员工做走出基本约束之外的任何不必要的约束
让员工最大限度地发挥潜能
尽量简化任务,当然还要保证任务不会简单的不象话
把任务时限说得清楚,而且说明理由
关注员工的技巧和技能
平衡员工的工作量
保证每个人都有自己的发挥空间
通过被员工支持和互相支持,教我们如何获得支持
通过互相信任和对客户的信任,教我们如何学会信任
铭记做员工的感觉和被管的感觉
恰当地、诚实地回答问题,以建立信任
找到好的顾问咨询建议,并且应用
把问题能力可视化,并且清楚地与每个人沟通
不论员工何时需要组织指导,都及时提供帮助
把事情安排好,让员工迟早成功
不让人做他们是不能或不愿做的事
创造一种让人开心的环境
在开始就明确目标
让员工感觉容易接近,对他们的时间慷慨大方
能够理解和原谅错误
重视创造性的方法,即使这种方法的和他的想法不同
不要强迫员工变成他们不想成为的人
为员工找到他们是工作确实需要的资源
为了适应环境变化及时修改计划
除非绝对重要,否则拒绝在项目中期改变项目规则
当有些事必须要变更者时,解释原因
总是面对员工,即使很尴尬
真诚地希望大家成功
还有,有时候能明智地雇用和解雇下属
低效的管理者在对待员工的差异时假装其不存在,高效的管理者则承认并知道如何协调的对待这些差异。
对待每个人都一样并不意味着平等。
四种控制方法:智力控制、物理控制、紧急状况控制和感情控制
四种秉性:展望者、催化剂、组织者、麻烦解决者
把差异当作资产
通过系统化的提升来管理:
识别优秀的程序员或技术人员;
分析这个人的行为,发现他之所以表现出色的原因;
设计一个系统(培训,技术评审,团队,树立导师或者榜样),使其他人学会这些成功的过程。
注重过程会提高对效率的认识和理解;培训加速了高效过程的传播;甄别高效过程也导致了对低效过程的抛弃。
上瘾循环:在短期的循环内,使用X会减轻病症;长期循环内,使用X则会加重病症。短期的无法自拔是由于对X的强烈信仰,导致更多的使用X,尽管这样做的长期效果是病情恶化。
简单的禁止和救援尝试对上瘾无效,有效的治疗方法是应用沉溺原理:提供另一种比X高级的Z方案并且禁止X。
第一个掷出质问而不是石头的人,是文明的奠基者。
用信息代替指责,会大幅增加软件工程管理的质量,特别是那些指责成瘾的组织。进入非指责型组织的钥匙是开诚布公的环境,因为指责只在黑暗中滋生蔓延。开放透明的政策是错误的敌人,而指责是开放的宿怨。
有用模型:无论看上去如何,每个人都是有用的。
每个人都喜欢他们的按劳动被别人欣赏。
也许对管理者角色最常见的混淆就是分不清他是经理还是团队领导。团队领导负责团队的技术工作,相反,经理负责对一到多个的团队提供非技术的指挥。
建立团队的最重要的方式是指派富有挑战性的工作。
管理者的工作地不是惩罚,而是为团队提供学习的机会,保护团队不受外部不当因素的影响。
团队中每一分子都有其独特的作用,运转良好的团队保证每个成员都参与决策。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!