5年资历的笨蛋

来源:互联网 发布:java面向对象举例 编辑:程序博客网 时间:2024/04/28 02:06

        有时候我看到有五年(或更久) 资历的程序设计师,一直都在同一个团队,做同一个产品,做得久不是问题,问题是他还在做同样的工作。如果他当初被分派到E x c e l的项目,负责开发M a c i n t o s h版特有的功能,那么他就一直做下去,五年下来成为此特定领域的专家;如果他当初被分派到负责编译器的优化工作,那么多年后他还是与世隔绝地做着同样的工作,当然已经变成专家了。
        从项目的角度来看,为了发展最精良的产品而把旧人留在原工作小组,是个不错的主意,任何人都是做自己熟悉的事情时速度最快,但是如果没有适当地教育他们,结果就适得其反,您等于是剥夺了他们扩展新视界、学习新技术的机会,对程序设计师不利的话,最后也等于是对项目、甚至公司不利。
        假定有一位新聘的程序设计师,在第一年时成为档案转换的专家,于是在以后的四年里专门为各种产品的档案格式写转换的程序,这件工作绝对是重要的,但是他的技术只有在第一年里大幅提升,其余的四年都在重复旧的工作,没有学新的技术,事实上他是停滞不前了。他有五年的工作资历,但不是五年的工作经验,他只是用五年的时间重复第一年的经验罢了,他的五年,其实是五个一年。如果他在后面的四年里接触应用软件的其他部分,他的技术范围就会比较宽广,如果他一直在开发某一个Windows 或Macintosh 的应用软件,每年都在一个主流领域中负责不同的工作,那么他五年下来可能具备完整的历练,他会知道以下的各种技能:
        ◆ 如何制作使用者界面函数库,包括菜单管理程序(menu manager)、对话管理程序(dialog manager)、窗口管理程序(windows manager);并且利用这些函数库来作为使用者界面的基本组件。
        ◆ 如何使用线上求助函数库(help library),为应用程序中的各个对话框提供适宜的辅助说明。
        ◆ 如何运用绘图函数库(graphics library) 在屏幕上显示各种不同的形状,位对映图(bit map),处理调色板,控制各种不同的显示装置等。
        ◆ 如何自打印机打印输出结果,并让每种打印机都发挥最高质量,充分运用每一种打印机的独特功能,例如支持P o s t S c ri p t的打印机,就能绘出水印和极细的线。
        ◆ 如何处理国际版中不同语言的字码问题,例如双位字节(double-byte),某国特有的时间和日期的格式、文字排列方向等等。
        ◆ 如何处理在网络环境中执行应用软件所可能发生的各种问题。
        ◆ 如何与别的应用软件交换资料,从最简单的剪贴簿,到极复杂的Windows 动态数据交换函数库(Dynamic Data Exchange library) 或对象链接与内嵌的函数库(Object Linking & Embedding library)。
        ◆ 如何撰写跨平台的程序,让本软件能够在市面上流行的各种操作系统— M S - D O S 、Wi n d o w s、Windows NT、OS/2与Macintosh—上执行。
        ◆ ??
        您大概可以看出来了,以上是一位在微软的Wi n d o w s或Macintosh 的应用软件有五年开发经验的人应该养成的技术—如果他在不同的领域都锻练过,新的要求、新的工具都会促使程序设计师学习与成长。
        请比较以下的两种方式:当您在建立一个新的部门时,有一位专才和一位通才让您选择,两位都是五年经验,您会比较倾向用谁?
        通常项目经理在分派工作时,很自然会让最擅长这件工作的人去做这件事。他会让最精通档案转换的人去做档案转换,这位仁兄做了五年的档案转换,肯定没有人比他更行了。除非所有的档案转换专家都扬言再不让我做自己感兴趣的东西,我就跳槽,否则项目经理是不会改变主意的。
        项目经理的理由是:“如果不让最擅长做档案转换的人来做,反而派一位新手负责档案转换,不就慢得多吗?”再不然就是异曲同工的:“如果没有把每件工作都派给能做得最快的人,那不就徒然增加开发的时间吗?”
如果您把项目当成一件临时任务,着眼点是追求时效,那么,这样的想法并没有错。但是如果您把项目当成一种长远的理想来追求,那么,您就应该培养组员各方面的专长,固然目前的工作速度会慢些,然而几年后您就拥有一个阵容坚强的团队,任何一位组员,都有能力处理任何一种问题。万一出现一个难缠的错虫时,您不必去找那唯一的一位专家,任何一位程序设计师都能解决这个错虫。如果您要在产品中增加一项跨领域的功能,任何一位程序设计师都能做,而且所有的程序设计师都能了解如何共享子
        系统和其他人的程序,就可以避免重复写同样的程序,并且有能力改善整体的产品设计。最终来说,通才的培养对整体效率还是有利的。
        您的组员在新的领域中摸索时,难免会多花点时间,也因此才会学到足够的经验,花在学习的每一分钟,将来可以节省更多时间,因为他们可以在各种不同的领域应用学到的技巧。所以,持续性的训练、培养是必要的投资,以后会带来不可限量的回馈。
        不要让程序设计师的学习停滞不前,要让程序设计师有机会磨练不同领域的技术,培养十八般武艺样样精通的组员。

原创粉丝点击