倒Net

Net学习,自写运行库,书籍翻译,资料下载

博客园 首页 新随笔 联系 订阅 管理

软件工程从上世纪70年代提出这个概念以来,经历了许多次的重生和迭代,发展到今天已经有许许多多的工程方法,让我们再回头看看软件开发的过程,这些方法真的很有效吗?这些方法真的是放之四海皆准吗?没有!不是!到现在为止,可以肯定地说没有一个工程化的方法能让我们满意, 我们还在探索的路上。

软件工程化是人们在软件开发过程中试图用工程的方法来解决碰到的问题,工程化的本质就是可控,成本可控,结果可控,生产周期可供,所有的东西都可控,但我们忽略了软件的本质是人的思维活动,科学技术发展到如今的地步,我们还是无法复制人的思维活动或者说最不能仿造的就是人的大脑,因为它太复杂,复杂得不能用目前的知识去解释,试问如何用一个或一套简单的方法去管理人的如此复杂的思维活动,如何用一套所谓的工程方法去管理由思维活动组成的软件开发?难道软件开发就无法管理了吗?不,复杂的问题其实有简单的解决方法,就是按他的本质去寻找解决方案。我们不可否认的是,软件的管理确实与工程的管理有某些相似的地方,我们需要对软件项目进行预算,就像开发房地产一样,必须要在动工前算一算做这个项目如何花钱,如何挣钱。但这些管理都是软件开发的环境管理,而不是软件开发的管理。我们是不是都在纳闷过?为什么公司在创业初期的时候,我们几个人在很短时间就可以开发一套可用的软件,但公司发展壮大了,我们几十人,甚至上百人,却还是拿不出一个像样的东西交付使用?如果从工程的角度说,投入的人越多,产出应该相应增加,为什么恰恰相反?那让我告诉你,那是管理者太迷信了软件工程管理的方法!我们需要反省的是:我们用一套好无用处的经验公式评估我们的工作量,花上项目的绝大部分时间去产生大量的没有意义的文档,把大量的宝贵时间花在没有意义的会议上,花在没有成型的简单的评估系统上。

人才是最重要的因素。我们没有考虑到人的因素,没有考虑到人的潜能,没有发挥我们人的主观能动性,而是用一些粗暴的管理方式,推动着一群麻木的木偶去敲打键盘,去生产代码,这能出好的成果吗?我们都知道日本人的产品质量是全世界最好的(无论我们对日本国有什么样的情绪,但事实就是这样),为什么其他的国家不行,唯独日本可以做到,内在的因素就是日本人的文化,日本人是真正的把荣誉看得高于生命,同样把这种思想用到生产中的,他们要让世界知道,日本人的产品就是最好的,这关系到他们的荣誉,关系到他们民族的荣誉。也是这样,他们拥有了世界上无人能学到的本领,因为你们的文化不一样,这就是我要说的软件开发中人的因素。人的因素与文化不可分离。文化是无法简单模仿的,这需要时间去沉淀,文化没有优劣,文化只有不同。我们要用合适我们的文化去管理软件的开发,而不是泛工程化的方式去照搬别人一套东西,每个公司有每个公司的文化,每个人有每个人的文化,软件工程化的方式可以用于软件开发的各个阶段,但它只是工具,而不是我们的方法论和价值观。工具是被人来使用的,我们要按照我们文化的方式,去激励我们的员工奋发努力,去发掘他们的潜力,去让他们感受到产品的质量攸关他的荣辱,用革命的精神,用不怕艰难的毅力,完成自己的任务。我们常说最好的软件开发方式就是一个人去开发,这样效率是最好的,但风险是最大。效率的提升是没有浪费有限时间在与人沟通问题,风险最大是领导者无法可控这个资源,他会有灭失和能力问题的可能,所以我们需要加入更多人来参与软件开发的活动,如何才能规避我们的风险的同时,提升我们效率,如何才能让更多人的像一个人一样?这就需要文化或者说是企业文化,用文化作纽带,用文化做溶剂,让更多的人融合到一起,去共同完成一个一个富有挑战的项目。

软件开发中,人的因素才是最重要的,工程化只是一个工具而已,特别是迷信工程化的方式,尤其不可取,诚然好的工程化的方法(如敏捷开发)可以让我们做得更好,但不能保证我们一定做得好,不能让工程化过程牺牲了我们的主观能动性,这就要求管理者在管理的过程中,不能简单用公式去去量化一个人的成果,一个富有创意的设计,一条有经验的建议,可能对软件产品产生不可估量的作用,这就是软件的管理的复杂之处,也是他的美妙之处。管理的最初境界应该是用现成的管理方法去大声吆喝着,最高的管理境界应该是人的自我管理,是没有管理的管理。

posted on 2010-03-11 12:17  anqincmt  阅读(1497)  评论(8编辑  收藏  举报