软件开发行业和生产行业有很大不同,但从事软件开发和相关工作的经理们常常让他们的思维符合完全从生产环境中得出的管理哲学。
这里边包括一些我们经常(或者说必然)看到的现象:
排除错误。使机器(当然这里指的就是开发人员)尽可能顺畅的运行。
采取强硬措施对付那些上班打发时间的人。
把工作人员作为可拆换的机器零件一样对待。
优化稳定的状态(甚至并不考虑怎样提高操作速度或者用什么使它停止)
使用过程标准化,一切按书上的去做(万恶的CMMI--感觉公司应该干脆拿到证以后就放弃这种愚蠢的想法,可是往往领导的想法总是天真的充满了幻想。杯具~~~)
错误限额
对于大多数脑力劳动者来说,偶尔翻一个错误是自然的,也是他们工作的一个健康组成部分,但是我们却持有这样一种态度:工作汇总的差错与罪过之间几乎有天生的联系。这是一种需要特别努力地去改变的态度。
对于一些软件经理来说,我们引入一种策略,我们把这种策略称为:迭代设计。这种思想是:一些设计本质上就有缺陷倾向;应该丢弃而不是修补这些设计。这样的死胡同在设计活动中应该是预料之中的。
但是对于老板来说“我们怎么能吧公司花钱生产的产品扔掉呢??”他们似乎相信,即使从长远来看将要付出更大的代价,也要挽救这种带有缺陷的版本。
人员储备
我觉得这是一个非常需要探讨的话题,在我见过的老板中,绝大多数都在研发人员申请离职时说过:公司离开谁都一样。这种类似的话。
在一个生产环境里,很容易把人视为机器的部件。当这一部件坏了,你可以更换一个。用来代替的部分与新来的部分是可以互换的。你可以或多或少地订购这样的部件。
大多数开发经理采用了相同的态度。他们竭尽全力地使自己确信没人是不可替代的。由于他们害怕一个关键人物要离开,他们强迫自己相信没有关键人物这种东西。难道管理的本质不就是保证个人的去留不会影响工作的继续吗??
我们应该意识到每个人都有其本身的独特性。对于那些盲目地从生产领域采纳一种管理模式的经历而言,每个员工的独特性就是接连不断的烦恼。另一方面,天生的管理人的经历意识到独特性对于项目的亲和力 重要而有效。独特性是要培养的东西
我们没有足够的时间来考虑工作只有时间来做这项工作
如果要你负责完成某项任务,你话在实际做这项任务上的时间应该占多大比例?不是100%。应该预备一些时间用在这些事情上:头脑风暴会议,研究新的方法,构思如何避免做一些次级任务,阅读,培训,甚至只是消磨时间。
回顾我们做项目经理的生涯,我们都一直认为我们还是偏离了这个主题。我们花大量时间努力吧事情做完,而且几乎没有足够的时间问这个关键问题:“这件事情应该彻底做完吗?”
随着风险的增加,对方法深思熟虑更加重要。真是要做真正巨大的工作时,我们必须学会花更少的时间工作和花更多的时间思考工作本身。工作越艰巨,团队成员学会良性互动并以此为乐就变得越重要。一个在不可能的给定时间内完成的项目,恰恰需要抽出时间来频繁地召开定时召开头脑风暴会议,甚至组织以此项目聚餐或者其他诸如此类的事情,以帮助个人溶入高效的整体。