但是没有一个人,即便是所有雇员全加起来,也都做不了他的工作。 这样运转会伤害到每一个牵涉其中的人,(当然)雇主除外。这个旨在提高软件质量的实验已经变成一场闹剧,最具天赋的雇员劳累过度(然而有价值的工作少之又少),而低层次的职位根本不存在。 这就是这一问题的关键所在。“全栈”工程师,使之前那些由不同能力水平的人分别担任的职位变得多余。大公司喜欢这一点,因为这意味着,他们可以雇佣尽可能少的人来完成等量工作。然而,在这个过程中,真正的开发在开发者工作所占的比例越来越小。这就是为什么我们会看到那么多开发者都不能通过FizzBuzz:他们从不须真正编写任何代码。现在这个问题太常见了,你能想象面试厨师时要问他,每天有多少时间真正用来烹饪吗? 什么都可以做,什么都不精通如果你是一个中等规模软件的开发者,那么你需要一个适当的部署系统。请马上说出下述这些系统各自的优缺点:Puppet、Chef、Salt、Ansible、Vagrant、Docker。现在实施你的部署方案吧!你是不是都没有注意到,上面列出的系统中有一项是完全无关的? 我们需要专业化的原因是:人类所能保留的知识有限。任务切换无疑是昂贵的。强迫开发者去担当其他传统专业人员的角色,意味着他们将:
另外,要强迫开发者承担“全栈”职责,公司需要付给雇员们远高于完成其中大部分任务的市场平均价格的工资。如果一个开发者1年赚10万,你可以雇佣4个每年10万的开发者来做一个两人的任务,一半时间做开发,一半时间做发布管理。或者,你也可以只雇一个每年75k的发布管理员,然后两个开发者做全职开发。要注意到兼职发布管理的开发者,在没有发布需要管理时浪费的时间了。 不要扼杀开发人员所有这一切的效果就是毁掉“开发者”的角色,并代之以“全能技术工人”。我所认识的每个开发者都沉迷于编程,因为他们真地喜欢(一度)。当你强迫那些聪明人执行额外的任务时,你就伤害了每个牵涉其中的人。 并非每个公司都是新创公司 。新创公司可以选择不让开发人员身兼多职,他们这样做是出于必要。你的公司很可能在你没有创造出一些资源之前有着极大地制约。请不要混淆“精益”与“以最少雇员运营”的概念。看在上帝的份上, 让开发者写代码吧! 原文链接: Jeff Knupp 翻译: 伯乐在线 - yixingqingkong |