赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

观点:优秀的开发者并非金钱就能购买

发布时间:2006.07.05 10:21     来源:ZDNET    作者:Robert L. Bogue

 谈到快速开发,我发现,要想让传统的软件开发手段和快速的开发取得成功,其实都需要高度仰仗于熟练的开发人员。这也就难怪人们将寻找的重点放在那些最棒的开发人员身上,因为,具有同样经验的开发人员完成的工作也会有很大的差别。

  很多开发仍然按照所谓的“英雄模式”,也就是软件的诞生是由一位开发人员或者一个小组来完成的。显而易见,拥有优秀的开发人员是非常重要的,但问题是,你从哪里获得他们?

  根据我多年的招聘经验,我可以肯定地说,最好的开发人员是存在的,但找到他们是一个困难的过程,甚至你阅读完1千份简历,你才可能发现一两名最好的人才。

  所以说,为你的工程找到最有才能的开发者的最好方法应该是去培养现有的、有潜力的技术人员,而不是用金钱去购买他们。

  怎样的开发者才优秀?

  显然,这个问题比较的主观。快速开发与传统的开发技术手段都需要开发人员具备一个素质:思考。

  在认知技能的教育目标当中,知识是一个最基本的要素。这是一个数据或者信息回想或者识别的过程。放在开发当中,这就是对C#语言的认识,或者执行一个循环的语句纠正。

  在这之上便是整合和评估。整合是要有能力将不同的要素组合进一个全新的解决方案当中。评估是判断理念、途径或者要素的价值的一种能力。开发人员需要不断地将这种认知的能力应用到他们的工作当中去。

  对开发的理念思考越多,开发人员获得的好处就越多。

  在我们完全打消招聘到最好的开发人员的念头之前,让我们先通过检验技术技能来评估招聘流程。对于那些开发岗位的应聘人员,我一般会给他们一个语言开发测试。因为大部分的开发人员都需要和数据库打交道,我问他们一个简单的问题:给一个具有客户ID和名字的表单,一个有订单ID的命令头的表单,以及其他细节,你如何返回一个没有订单的客户列表?

  对我而言,如果回答不上这道问题就说明应聘者对SQL需要的逻辑知识缺乏完全的理解。这是一个良好的开发者应该具备的基本技能。

  另外一个我喜欢问的问题是:你最喜欢微软.NET的什么?

  显然,你可以说任何你喜欢的技术。这些答案可以反映开发人员的思维。如果一个开发人员说他喜欢IntelliSense(帮助你记住对象界面的视觉工作室),我就知道他喜欢将编程的工作交由编辑器来完成,这不是一个良好开发人员应该有的思维。

  我希望应聘者说他们喜欢文本编辑器以外的答案。我希望他们回答说:“有能力编写灵活的编码。”这些答案表明他们对自己做的工作具有很深的理解,而这对于他们成为一名最好的开发人员至关重要。

  同样,问“你最不喜欢的东西是什么?”也可以了解面试者的情况,如果有人说,他最不喜欢在C#当中忘记分号时,我就知道这位面试者对他的工作缺乏正确的思考。

  虽然诸如“你最喜欢/最不喜欢”这样的问题要好过考察SQL技能的问题,但这个手段仍然不是灵丹妙药。在我面试过的开发人员当中,有超过70%的开发人员回答的都是一些无关紧要的东西。另外有10%的人的答案表明他们的水平比较低。

  由此可见,招聘一名最好的开发人员是一件很困难的事情,我个人认为其难度要比培养一个优秀的开发人员要大很多。

  培养更好的开发人员

  在招聘过程中,很难发现开发人员的一些潜在的素质。例如有些开发人员非常热爱学习,也许他们还不懂关系数据库,但他们非常愿意学习。

  但是在大部分的公司里面,这种学习的热情被顺从的文化给压抑住了。“我们总是这么做”的理念将任何试图将事情做得更完美的努力给消灭。

  但是,你可以做一些事情来鼓励新的开发人员不被压制。

  指导给开发人员配备一名顾问。这个人应该是高级开发人员、开发领导,或者关心提高团队的架构师。这个人不应该是开发人员的直接上级主管或者经理。指导的交流内容应该围绕开发人员的期望展开,而不是企业想让开发人员做什么这些事情。

  检查代码。检查代码是提高开发人员水平的一个有效途径。大部分的公司在这方面做得不好。即使做了,也没有成为开发人员学习的一个机会,而往往成为打击开发人员的一个机会。检查代码,将它看成是培训开发人员的机会,而不是打击的机会。

  经验的提高。为那些想要提高的开发人员布置额外的任务。从长期来看,这可能是最难做的事情。

  利用竞争机制促进学习。除了布置额外工作的方法外,利用竞争机制促进开发人员尽可能地学习也是一个很好的途径。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 程序员辅导课程学习指导 (06-14) · 程序员课程班次说明 (06-14)
· 借应用程序生命周期管理 提高工作效率 (06-09) · 红帽将停止红帽应用"RHAS"服务器开发 (06-05)
· 作为一个合格程序员每天该做的事 (05-31) · 教你如何成为一名Java初级程序员 (05-31)
· 程序员也能做大事 (05-22) · 百度技术副总裁畅谈工程师成长 (05-15)
· 【程序人生】JSP程序员成长之路 (05-10) · 一年Java之路的回顾,反思以及展望 (05-09)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管