最近读管理大师彼得.德鲁克(Peter.F.Drucker)《卓有成效的管理者》(The Effective Executive)一书,忍不住就想到在软件系统中的有效性问题了,记得在哪篇翻译文章中看到过一个国外大牛写的软件工程中可用性的论述。这里也借着管理大师的经典语句,来看看这些管理思想对软件系统工程有哪些可以借鉴的地方。
“在组织的内部,不会有成果出现,一切成果都存在于组织之外”。
这样的外部视角是我们最缺乏的,无论是管理、需求、设计、开发和实施的过程中,我们都忽视了这个问题,一上来就把自己沉浸在最擅长的领域……比如系统架构之中去了。最终不管项目结果如何,我们都可以肯定地说,我们是缺乏有效性的。因为我们连判断成功的标准都没有搞清楚。
花去了无数的人力物力,我们对客户或公司领导说,“看,我们用最新的J2EE、AJAX....技术实现了一个无与伦比的系统构架....”,客户和领导听得是云山雾罩。可半年后,能上线的系统在哪里呢?一分析原因,我们就看到了需求的不停变化对系统构架冲击,开发人员的变动,公司投入的不持续性,等等。
其实,我们忽略的是,系统的成果应该是带来价值,而价值是在系统之外的!
因此,有效的软件设计、开发、实施团队,必须要学会这条核心思想。系统必须有效,否则毫无价值。
“对管理者的有效性而言,最重要的人物,往往不是管理者直接控制的下属,而是其他部门的人,即所谓‘旁系人物’,或者是管理者本人的上司。”
这说明了有效性产生于协作,如果不能让他人利用自己的贡献,本人也就没有有效性可言。这条不但是做人做事的规律原则,对我们设计和开发系统,也应该作为设计原则。简单的说,就是我们开发和设计系统组件的时候,必须以方便被其他组件或系统使用为设计原则。
一个功能强大但是不便于使用的组件或系统不是有效的系统。我们研究了那么多设计模式和组件技术,研究分层和分模块开发,但是系统划分的原则其实在于协作,便于系统和开发系统的成员之间协作的就是有效的划分和设计。
不得窥道门,不得悟佛门,不得入窄门,实乃破门。