杂谈:技术高手还是软件工程?一个并不矛盾的命题

        一直以来有一个困惑,似乎软件工程的规范模式与胆敢孤身入虎穴的顶级高手是两类完全不同的人。不过现在,我的看法改变了。软件高手和规范的开发也许并不矛盾。

        早期的软件开发,因其涉及人群很少,因此给人以神秘的感觉。那个时代的软件开发者整天面对一屋子的机器和各种设备,忙于编写神秘莫测的数字编码。这的确给人以曲高和寡的感觉。然而,随着高级语言、操作系统的出现,越来越多的人参与到软件开发者的行列中,看起来软件开发似乎也日益成为一种非常常见的工作。然而,高手的光环却依然神秘。今天认为的高手,通常被认为是掌握了操纵系统底层软、硬件核心机制的黑客、系统安全专家、操作系统设计者、编译器开发者等依然神秘的人们。而从事应用软件开发的开发者,则似乎已经成为普通的程序员。在人们的印象中,普通程序员的开发需要规范化的软件工程来管理,而高手则已经进入出神入化的境地,可以自由自在地在软件系统中翱翔。于是乎,在不知不觉中,在高手的自由和软件工程的规范间似乎立起了一道高墙,将二者隔离在两个世界里。然而,事实真应该是这样吗?以下是两个主要观点。

(1)高手是制度的破坏者吗?

         在软件工程出现的早期(大概在20世纪70年代),也就是所有软件开发者都被认为是高手的那个时代,也许没有人会产生这样的疑问。因为那个时代的软件工程恰恰是为高手们准备的利器。然而,这一切在现在的时代已经悄悄发生了变化。软件开发似乎已经成为人人可以轻易实现的“梦想”。于是乎,软件工程成为了管理“螺钉”的方法,旨在将一群非高手组织成的团队变成一支能够有效开发软件的可工作团队。与此相反,高手们似乎不需要遵循这一规则,因为他们几乎可以一个人完成一支并不高效团队所完成的任务(至少对中小型项目组来说如此)。于是乎,在管理领域,我们时而就能听到一些关于“高手” 和“制度”间发出的摩擦声。例如,某团队中的高手不听话,是应该留下还是应该换人。由此看来,高手似乎成了“破坏”制度的“捣乱者”。他们狂妄自大,不守纪律,阻碍了整个团队整体威力的发挥。

         在这一现象的背后,我想不妨作以下思考:第一,难管的未见的是真正的高手。第二,真正的高手未见得难管。第三,也是最重要的一点,如果真的碰到高手,是否应当考虑给他更大的压力挑战自己。其实和武林高手一样,软件高手也希望不断学习新的武功。所以,对于这一问题的解决,不妨考虑两个方面:他是高手吗?如果是高手,他在做应该由他完成的重要任务吗?

         这个问题的最后一点,就是要让高手服气,其实是件不容易的事情。毕竟纯粹靠“管理”能力成为领导,要让人服气是很难的。如何做到不出现“外行指导内行”,的确是值得深思的问题。所以,对于大多数技术企业或部门来说,一般的技术管理者会来自具有技术背景的人群。

(2)系统的底层细节只对特定领域起决定作用

         在另一方面,随着软件工程的教育日渐深入人心,越来越多的人开始认识到管理在软件开发中的重要性。于是人们认识到,需求是重要的,设计和模型是重要的,过程是重要的,方法学是重要的。而关于软件底层的核心机制,则似乎只和开发底层硬件驱动等的设备制造商或安全领域的专家有关。甚至在很多时候,人们越来越提倡在开发的早期不必考虑、甚至绝不允许考虑设计和实现的细节。而“高手”的能力,恰恰体现在对底层细节的把握上。

         对于这个问题的思考,可以借鉴一下棋界的经验。下过围棋或者其他棋的人都明白,一个9段高手和一个业余选手相比,二者的差别不但在宏观上存在巨大差异,而且在细节上也无法相提并论。真正的高手,一定具有极强的思维力量,这让他们能够在宽广和深邃的抽象世界里遨游。这点恰恰适合于软件高手,也正是他们生产率极高、产品质量优秀的保证。实际上,对底层系统的深入理解,不仅有助于我们编写出高质量的软件,而且也有助于避免很多错误。软件的调试能力、测试水平,对于软件设计者来说同样是非常重要的。因此,在XP方法学和敏捷开发中,人们越来越多的开始在强调纪律的同时强调开发者应当不断提高自己的技术水平,努力成为具有足够技术能力和规范行为的真正高手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值