写点什么

低成本意味着低质量?

  • 2012-08-29
  • 本文字数:1447 字

    阅读完需:约 5 分钟

很多人反对将低成本资源与低质量之间划等号。确实,不见得一定是,即低成本 IT 人员不见得就会交付低质量产品。不幸的是,当大多数公司出去搜寻“低成本”供应商时,他们通常会陷入企业管理中最常见的谬论:劳动力是可代替的。

Jeff Nicolas,银行业从事软件管理工作,在其博客 Does low cost mean low quality 中对此观点进行了分析。

Jeff 认为,问题在于大多数企业对于 IT 的错误理解,即能够从任何 IT 人员获得相同的产品,因此没必要为一个更好的人支付更多的钱。问题不在于你付多少钱,而是劳动力可替代观点背后错误的思维过程。

Kent Beck 的《解析极限编程》一书在谈论XP 哲学时,提到过泰勒的科学管理理论。瀑布式软件开发过程正是继承自泰勒主义。泰勒主义社会结构主张分离计划与执行步骤,而且基于事情通常会按照计划进行,和人们通常是可转型的假设。在这种信条中,工人(软件工程师)只是机器中的齿轮。这也暗示了人力资源的可替代性。

事实上,IT 工人是熟练的专业人才,而且是不可互换的。这点适用于熟练的蓝领工人,同样也适用于熟练的IT 劳动力。当企业将IT 工作外包给最低出价者,其想法总是工作可以同样的由任何人完成。这普遍是不对的。要做到最好,通常要将特定系统的软件开发交给已经工作过一段时间的人来完成。这就是稳定性的重要性。拥有同样技能的新人(不是凭简历、试卷上的一堆名词缩写,而是真正的动手技能),一般需要3 个月来上手,6 个月后才能熟练。这不叫可替代性。

Jeff 认为,因为 IT 劳动力的不可替代性,就难以将高成本人力替换成低成本人力。通常企业是通过与中介签订提供某种技能人才的合同来得到低成本人力,很难衡量真实的 IT 技能。从简历中很容易看出应聘者具有某学科、某种程度的学位,曾工作于哪些领域,但是这都与技能无关。就好比要成为伟大的足球运动员,并非只需要练习多少小时和打过多少比赛就行。即使接受了相同的训练,也还是会涌现出一些比较突出的选手。IT 行业也是同样道理。然而,当我们走向低成本供应商时,往往却忽视了这个事实,只是想要躯体。当我们偏离招聘高度熟练专业人才而只是期待 IT 躯体时,我们走入低质量的地界。

为什么中介开的价钱低?最低出价者依靠一些技巧和策略来使他们出价最低但仍有利可图。在 Jeff 之前工作的公司,其所在部门刚开始向外包中介要人时,往往被送来的应聘者的技能都不够好。经过多次拒绝,中介意识到该部门并不像其他部门那样来者不拒。这时中介才开始提供真正好的应聘者。因为公司与中介的合约,高技能应聘者的成本与技能不足者相同。Jeff 所在部门从此合约中受益,却苦了其他部门。

有意思的是,在 Odd-e 顾问 Bas Vodde 近期的博客 Singaporeans, wake up! Why software is eating your island 中,分析为何新加坡本地人不愿做软件开发工作。其中提到一个原因:新加坡人认为软件开发工作相对销售、市场或项目管理职位的报酬低。而企业方面却抱怨好的工程师开价过高,人才难寻。此观点得到一些新加坡人的认同

事实上,不仅在新加坡,其他国家也存在类似观点,赞同欧美企业将软件开发外包到低工资国家。

但Bas 引用某芬兰游戏公司的CTO 的话说,他们进行离岸开发的唯一理由就是他们无法在本地找到足够人手。他认为软件开发的报酬和工作环境其实不错,华尔街日报在 2012 年 6 月评选中认为软件工程师是美国最好的职业。

无论如何,按照 Jeff 的说法,很多企业寻求 IT 低成本时就变成寻找 IT 躯体。

因此,低成本与低质量绝不相等,同样高成本也不一定等于高质量。然而,当成本成为组织的主要目标,质量通常沦为低优先级。

2012-08-29 01:202380

评论

发布
暂无评论
发现更多内容

MEDO 项目开发中遇到的问题汇总

陈皮

翻译: Effective Go (7)

申屠鹏会

翻译 Go 语言

Docker搭建PHP+Nginx+MySQL+Redis

书旅

Docker 镜像 lnmp

高效程序员的45个习惯:敏捷开发修炼之道(1)

石云升

读书笔记 敏捷开发

毕玄大佬的分享以及给我的感悟

白色蜗牛

Java 程序员 技术 职场 架构师

华为的“少年天才”攀登者,出发向智能存储的“奥林帕斯山”

脑极体

Apache Mina和Netty的历史

dinstone

学习技术先从学会使用搜索引擎开始

我是程序员小贱

真正的异步API网关Agate

dinstone

Async API Gateway

1 时间复杂度总结

我是程序员小贱

解析 HashMap 源码之基本操作 put

shengjk1

Java hashmap

如何隐藏你的数据库密码

Rayjun

安全 服务器

docker入个门

书旅

Docker 容器 Dockerfile

你生日那天的宇宙什么样子知道?我全部给你吧!

我是程序员小贱

Spring如何选择类构造器

申屠鹏会

翻译 Go 语言

让你起飞的20个Linux命令骚操作

我是程序员小贱

Rust特征与泛型区别点

编号94530

rust 泛型 封装、继承、多态

鲲鹏一粤,智算万里

脑极体

翻译: Effective Go (6)

申屠鹏会

翻译 Go 语言

troubleshoot之:使用JFR分析性能问题

程序那些事

Java 性能分析 jfr

阿里、力扣、政采云的15位专家分享前端面试与招聘视角

三钻

面试 大前端

Elasticsearch学习

张明森

为什么考研,考研能给你带来什么?说说我的感受!

我是程序员小贱

1 学习性能优化的要点

我是程序员小贱

解析 HashMap 源码概括

shengjk1

Java hashmap

【DevOps】我们忽视了Daily Build(每日构建)吗?

Man

DevOps jenkins 每日构建

MySQL 基准测试

多选参数

MySQL

解析 hashMap 源码之基本操作 get

shengjk1

Java hashmap

如何学习一个框架?

云帆

平均负载是什么?

我是程序员小贱

敏捷到底是个什么鬼?

刘华Kenneth

程序员 敏捷 change

低成本意味着低质量?_语言 & 开发_申健_InfoQ精选文章