作为IT界的管理人士,我期望把项目承包给低成本(国外)的咨询公司,但同时又坚信雇佣最便宜的开发师通常并不能把项目的成本降到最低。这个斗争在我的职业生涯中一直没有停止过。我与IT总监或者副主管进行过很多次激烈的争论,我强烈要求雇佣一些真正优秀的开发师而不是雇佣一大批成本低但技术水平也低的写代码的人。
遗憾的是,每次我都是话还没说完就得闭嘴。并不是因为我的观点有问题(显而易见没问题!),而是我很难证明自己是正确的。从成本来看,能够证明他们的观点是正确的唯一证据,就是较低的按小时计算的开销确实有利于公司节约雇佣成本。
想象一个你能想到的任何软件开发项目。如果这个项目要在三个月内完成,那需要雇用多少程序员?5个还是6个?(别嫌我烦)如果同样一个项目要在两个月内完成呢?如何节省出一个月的时间?
IT部门主管的标准答案是——要想加快项目进程,那就增加程序员的数量。这是不对的,但是大家都这么认为。如果你可以通过增加人手来加快一个项目的进程,这样推断的话,也就是说越多的人就意味着更高的工作效率。
要想达到相同目标,其实有很多种方法。如果目标是提高软件开发的效率,你可以:
找到工作效率更高的人来做这个项目
找更多的人来做这个项目
自动化工作
由于目前为止我们还无法真正衡量软件开发的生产率,因而也就很难证明一个人比另一个人工作的速度快。所以财务经理关注的是一小时支付的薪酬高低。这就引出了一个简单的公式,适用于一个规定的时间段:
在某些情况下,也许可以确切地计算出软件项目的投资收益。但多数情况下,怎么计算项目个数,怎么统计需求数量,都没有既定、统一的标准,而且这些标准依情况不同无法简单地套用。
所以雇佣工作效率高的程序员这个方法是很难证明对错的,我们也不会鼓励增加廉价程序员这种方法。那么剩下的方法就只有自动化了。
还记得20世纪80年代美国失业率极高的时候,我们不仅责备外来打工的人,还责怪机器,特别是计算机。工厂里都安装了大型的臂状机器,他们比人类产量高而且比人类精准,这样人类与他们好像根本就没什么可比性。每个人都非常低落,除了这些机器人的发明者。
把你的公司想象成一家为小公司建立网站的公司。基本上你所做的就是一遍又一遍地创立相同的网站,网站上有联系方式、产品概述、购物车以及相关事物。你可以雇一小部分工作效率高的程序员创建这个网站,然后雇一组廉价的程序员一遍又一遍地手动重复所有工作,或者你可以创建一个系统来自动生成这个网站。
我们向财务经理的计算公式中插入一些(虚构的)数字,就得到了图2-1中的等式。
自动化属于我们这行的DNA。但是某些原因致使我们不自动化我们的工作。你怎么能够有理有据地比外包团队更加迅速和廉价地开发出更好的软件呢?制造机器人,把你自己变为自动化。
我编程,我快乐——18 在工作中,将自己自动化
书名: 我编程,我快乐
作者: [美] Chad Fowler
出版社: 人民邮电出版社
原作名: The Passionate Programmer:Creating A Remarkable Career In Software Development
副标题: 程序员职业规划之道
译者: 于梦瑄
出版年: 2010-8
页数: 202
定价: 39.00元
装帧: 平装
ISBN: 9787115233523