• 当和一些朋友聊天的时候,经常会谈起现在的程序员的素质。朋友感叹道现在的程序员做完程序测试都不测试,发现一堆错误;做一个功能不动脑子想想到底有没有更佳的解决方案;对新技术跟进的主动性太差,诸如此类。又说道想当年的程序员是多么的细致、善于思考而且专业。感叹啊……感叹啊……。当然我的这些朋友大都已经不在开发工作岗位上,而是在管理工作岗位上。每次说到这些内容的时候我一般比较沉默。我在想难道程序员的素质真不如以前的前辈吗?

    我不否认程序员个人能力的不同会影响最终的工作效果。但对于这个问题我们需要再认真的分析一下:

    我们先回到对程序员评价的标准上,对程序员的要求到底是什么?我认为上面提到的种种程序员的问题是传递商业价值的过程中暴露出来的。也就是说用户在使用或配合建造软件的过程中发现问题才会间接反应程序员的问题。这里把测试部门的测试也当成用户的使用,因为在测试过程中发现的问题一样要拿到程序员的手中返工或改正,这也是浪费金钱的一种方式。总之我们考核程序员是传递商业价值效果的考核。我们列表对比现在和过去的细节情况:

    过去

    现在

    素质考核

    传递商业价值的效果

    传递商业价值的效果

    工资考核

    个人对于整个IT部门的绩效考核

    个人对于IT部门中某个业务单元的绩效考核

    这里需要说明一下的是,在过去IT部门的人员很少所以人员的考核是在整个IT部门的范围内考核程序员的绩效情况。现在的情况是由于职责划分,原来的开发部门分解为若干业务单元。比如专门负责需求的需求业务单元、负责测试的测试业务单元、负责后期维护的运行维护业务单元等等。试想一下,如果传递商业价值已经不作为考核的一部分,取而代之的是你写了多少行代码或者是否听话的干活。反正换了我,我也会对本业务单元负责的,毕竟工资是这么来的。

    我们再比较一下过去和现在在团队上的区别:

    过去

    现在

    团队

    因为IT需求不高,骨干一般全身心投入项目中。其他一般程序员数量不多,沟通没有问题。

    因为骨干程序员的紧缺,他们被分配到若干项目中。分时多任务的进行中。其他一般程序员数量庞大,沟通有时出现问题。

    对于团队上的区别和企业的IT信息化需求是紧密相联系的。在过去企业还处在努力实现人手一台计算机的阶段,精力大部分放在硬件或系统部分。但是现在随着软件系统需求的爆炸式增长,人员不可避免的增多。但在软件项目疯狂吸取人员资源的过程中,领导往往忙于应对人员的调配和各自业务单元利益当中。大家可能都没有发现:高质量的骨干人员出现断档,而且缺口越来越大……

    技术也是非常关键的因素之一,我们来看看过去和现在的对比:

    过去

    现在

    技术

    基本上一种平台技术解决所有问题,比如所有应用都基于FoxBase或主机平台。好在企业信息化要求不高,所以基本够用。

    基于多种技术平台,.netjava等等。新概念多多,Web2.0 SOA等等。一边是厂商的不停忽悠,另一边是企业信息化项目需求的爆炸。

    显而易见,我们现在面对的技术和过去面对的技术从信息来源、厂商数量、平台数量、需求层次都已经不能同日而语了。如果说原来客户吃稀饭加咸菜就算一顿好的早点的话,现在的客户你不给他做出,西式、广式、粤式、川式的早点就算你失职。

    总结上面的内容,我认为考核方式是致命的。如果选择一种适当的考核方式会促进IT人员的努力。反之会抹杀IT人员的创造力。有一句话是:如果你期望得到一堆搬砖头的程序员,那么你就会得到一堆会搬砖头的程序员。

  • 2009-02-03

    350公里的速度 - [Essay]

    春节前看望老同事,老同事看着我的一身打扮奇怪的说:你是去爬山吗?为何身穿冲锋衣?这确实是一个好问题,我确实最近全部是穿着冲锋衣脚踏旅游鞋。回到家中仔细回味这个问题,我发现我找到了答案……

    我每一次离开家,离开亲爱的老婆和儿子,我感觉我一次又一次的出发,向着我的目标更进一步。从心情上这无异于一次野外的跋涉,我时刻提醒自己,路上 的风雨、同行的旅伴、精彩的景色都会过去。就像我媳妇的经典签名一样:我必归来,与你同在。当然在我这里的话就得更改为:我必归来,与你们同在。身穿冲锋 衣,让我感觉更能与我每一次出行的心情相吻合。如果你还不能理解的话,想像一下下面的场景:

    一个冬天的凌晨5点25分,匆忙脚步之后,猛地推开楼门,天上繁星闪烁吸引了我的注意……太美了,欣赏若干秒后踏上了160多公里的上班之路……

    一个平常的下班时间,穿插在那北京地铁汹涌的人流中,抢上那南三环拥挤的出租车,支付那15块永远不变的车费,欣赏那每一次看到都激动不已的北京南站,激动那我是以350公里的速度奔向家人的身边……

    儿子每天早上都沉浸在冲向家长被窝时的感觉,我也沉浸在那350公里的速度中……

  • 从大连医院的病床旁回到家中感觉自己在为了很多人活着,晚上儿子问我要是赶不上去北京的火车会怎样?我说就赶下班。他继续问:要是下班也没有赶上 呢?我说我就开车去。他:车坏了呢?我:…………我说爸爸想陪着你们娘俩,天天在一起,早上送你上学,晚上接你回家……但是爸爸也有理想,就如同你也有去 达喀尔开拉力赛的理想一样,但是追求一些事情的时候就要放弃一些其他的事情……爸爸会尽可能的多陪你们,再过6-7天爸爸就和你们待7天,这7天你不用去 幼儿园,咱们天天在一起……现在睡觉吧……

    感觉实在是不能解释太多,因为本身就对不起家人。唉……

    一个不合格的父亲,实在是很痛苦啊

  • 儿子放假了,我估计他自己都不知道放假这个概念。一直去的幼儿园以前也有假期合班,但这次因为幼儿园装修,所以必须找另一个幼儿园解决儿子白天的活 动场所和一日三餐问题。无奈的99爸爸和99妈妈找到另一个幼儿园,硬件设施实在赶不上原先的幼儿园,儿子有时候回家也会抱怨一下:现在的幼儿园太小了。 我听后心里很不好受,一直有种愧疚的感觉。

    这几天听说99回到家说:准备去幼儿园是不愿意去,但是一去就高兴了。但让父母最放心的不是儿子到幼儿园之后的感受,而是每次看到老师脸上的微笑-------一种发自内心的微笑。99妈妈说以前幼儿园的老师根本没有这种微笑……

    我突然感觉轻松了很多,硬件条件再好又有多少用处呢?指纹识别、教室电话、网上监视系统、占地较大的 活动操场……这一切一切比不上老师对孩子们发自内心的微笑。因为你能从微笑看到她们的心,她们的爱。

    我们又是如何面对我们的工作的呢?我们为了坚持不知对错的选择而尝试说服同伴、我们每天10点的开会都还有迟到的队员、我们以技术人员自居而拒绝对 某些问题思考……我们还不如幼儿园中的老师,她们起码能让孩子的父母放心。我们能让我们的客户放心把项目交给咱们吗?咱们对得起客户的孩子吗?

    你能想得到当自己把孩子交到老师手上的心情吗?

  • 所见:
    IT部门的领导出差来到开发中心,一个没有会议的下午所有软件人员聚在一起由1-2个项目负责人演示项目的最新开发成果,所有it部门的软件人员全部在场。大家讨论一些软件功能和可能遇到的问题。

    所想:
    一般只有1-2个人负责某个项目,特殊的项目知识积聚在这1-2个人的脑子中,就应该经常找一些机会让这个项目的负责人员对全体it 软件员工进行show case。这样的话知识尽可能的传递,认识的gap在缩短。并尽可能的达到共同认识。

    所得:
    在很多的企业活动中,有很大一部分的工作是Share Understanding,可能大家想到的就是开会,其实有很多种方式。想要有创造力的高效率,就只能尽可能的透明化。

  • 2008-06-27

    再见,Jay, SunLufen - [Essay]

    晚上去不了欢送了,要回家。我也害怕我去了会更难过,虽然痛苦的记忆一般犹新,但是每每想到他们我就能强烈感受到与他们共事所带来的快乐……

    再见

    保持联系

  • 一般只有痛苦的经历才会在记忆中长时间的停留,对于我来说锻炼的印象,或者说是最享受的是:

    在夏天的早上,太阳出来不久,每在双杠上做一个俯卧撑看着汗水一滴一滴的掉到地上的感觉。

    在冬天的早上,在同一个地点,拿毛巾擦过之后,手被粘到冰冷的双杠上的感觉。

    关于项目的记忆,现在能回忆起来的也就是几个令我痛苦异常的项目……

  • 2008-06-17

    强弱结对 - [Essay]

    周末和儿子一起玩一个玩具,一个很有意思的智力玩具,从简单得到4岁娃能享受的智力玩具。在玩的过程中儿子不停的问我:这样对吗?我说你认为呢?

    其中发现两个事情:
    1、孩子对自己的不确定,无信心
    2、家长的权威

    这和强弱结对编程很像,如果熟练的一方一直想要保持自己的权威这样的话会对刚进项目的人非常大的心里打击。

    1、无法自己独立思考。这样非常容易不熟练的一方容易丢失沟通信息。
    2、自信心建立缓慢。一整天面对大量的代码,一整天面对把你支来支去的伙伴。你肯定感觉很沮丧。
    3、日后成为熟练程序员后也会同样的对待新手。这很显而易见,当权威总能有较好的结果的话,每个人都会去追求权威。这样就会恶性循环……

  • 经过很多天的反复格式化和重装系统,我的笔记本中的软件已经趋向稳定。感觉有些心得,所以与大家分享。

    先说说我的硬件环境:Dell D620,2G 内存,80G 硬盘

    先展示一下我的Ubuntu环境:

    Ubuntu 7.1 Server 64 bit 作为 Host 操作系统,负责虚拟机的管理并提供操作 Guest 虚拟机的图形界面,能够浏览网页与聊天。主要思路是Host没有具体任务,大部分日常工作相关的事情全部在虚拟机上完成,虚拟机的灵活程度可以说已经很好 很强大了。只是虚拟机中的Windows运行速度有些差强人意,但是灵活啊,你不用考虑到Windows的不稳定,你也不用考虑使用Ghost来恢复映像 文件,一个硬盘就是一个文件。虚拟机也提供了很多非常有特色的功能,比如说基于某个硬盘的数据新建另一个硬盘等等。这种灵活无比的方案在我折腾了一个晚上 映射Host的USB端口到Guest后而遭到放弃。实在不像一个Desktop机器,最后总结出来Ubuntu+VM的方案只适用于服务 器,desktop需要更多的特性。

    我在心灰意冷之后发现微软已经发布 Windows Server 2008,所以决心一试:

    Windows Server 2008 64位 装完之后所占用的内存和硬盘让我大吃一惊,别管怎么说,新产品嘛。先说说好的地方:

    1. 画面更精致了(看出投入了大价钱)
    2. 搜索功能更强大了(有些不会用,但可以代替Launchy)
    3. 网络连接图标不闪了
    4. 关机更快了

    但是还有一些不爽的地方:

    1. 有一些软件没有64位的版本,比如:招商银行专业版的64位版本还在开发团队的手中,当前无法使用
    2. 内存占用较大
    3. 硬盘占用较大

    就在我在享受Windows2008所带来的好处与缺点的时候,又发现了一个好东西:PortableApps

    此软件可以使我日常所用的工具放置在一个u盘中随时带走。这极大的减少了必装软件的数量,提高系统稳定性。经过几天的试用,我决定再次格式化计算机……

    这次以Windows XP为主操作系统

    已经平稳运行好几天了,说说得到的好处吧:

    1. 因为采用大量的portable软件所以ghost备份文件相对较小。
    2. 兼容性达到最高,几乎所有windows的软件都能够运行。
    3. 内存与硬盘占用较少,腾出空间给真正需要的应用。

    总之,这回比较理想了,作为桌面用机,兼容性和快速恢复才是王道。

  • 其父影响,孩子也开始极度关注越野车。而且知道我分不清什么霸道、帕杰罗、帕拉丁,于是在路上看见越野车就赶快讲给我听。

    终于有一次路上看见对面来了一辆越野车,我很兴奋地说:“看!帕杰罗!”

    然后从后视镜里看见我那亲爱的儿子懒洋洋地、不屑地、轻描淡写地说了一句:“改装过的帕杰罗。”

    借用一句九九的口头禅:我倒!

    大周末的,小孩却不贪睡,还不到六点就钻进我们的被窝,开始捣乱,后来又拿过床头的闹钟,按着后面的按钮自己录音玩。我们被闹得睡意全无,干脆陪着他一起玩。其父拿过闹钟录了一段“吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮”,我录了一句“山羊上山山碰山羊角;水牛下水水没水牛腰”,九九见了,抢过闹钟:“我也录一段,辘辘辘辘辘辘辘辘。”以很快的速度交替伸吐着舌头。我和他爸对视一眼,翻倒在床上,乐得差点儿岔了气。

    最近这些日子每天在临睡前都要看上一段“汽车总动员”,一开始看的是英文版的,后来又弄了个中文版的,两个版本交替看着,自得其乐。

    看英文版的时候学会了闪电麦坤的一句台词:“Speed!I’m speed!”

    看中文版的时候学会了那个可爱的板牙在直升机里冲着莎莉和麦坤唱的一句词:“莎莉和麦坤亲呀亲嘴吧。”

    这孩子最近对大人的提议不满意的时候总是说“啊不”或者说“不不不不不”,于是我干脆在有时候叫他“阿不”,他对这个绰号不满意,于是抗议我:“啊不不不不不!”

    早上收拾停当,九九照常选好了他要带到幼儿园的车,娘俩准备出门。给他背小书包的时候我建议他把小汽车装进书包,这样就可以把手解放出来,可是九九反对,以下是他一口气说完的原话:

    我还是拿在手里吧,这样我想它的时候就低头看看它、然后再把脑袋转过来看外面;要是放到书包里,我想它的时候还得打开书包把它拿出来,那多累啊!

    ……我倒!