DevOps已经被广泛视为一种能够改进开发人员与运营人员之间协作关系、简化软件开发实践甚至将一部分运营任务交由开发人员解决的工作方式。然而软件开发者兼博主Jeff Knupp对此持不同看法,他认为实际情况恰恰相反,DevOps概念已经演变成一股无形的力量、逼迫开发人员去处理那些他们全然不擅长甚至不了解的任务。
在最近发表的一篇博文中,Knupp就DevOps与全堆栈开发人员这一话题展开讨论。“DevOps运动的影响如此广泛,甚至足以与另外两大令我无法忍受的事物相提并论——x86架构与单核心处理器。但这却又是不争的事实:我已经受够了这种无脑跟风,”Knupp表示。“是什么让我对其深恶痛绝?根本原因在于:并不是每家公司都是新兴企业,但在DevOps的影响下、他们似乎都希望假装自己属于新兴企业。”
开发人员最终可以通过工作积累转型为其它角色,例如数据库管理员、质量保障员或者测试人员,但很明显企业不会愚蠢到让原本就只接触过这几种职位的员工转去搞软件开发,在线广告企业AppNexus公司软件工程师Knupp指出。(他表示他本人与所在企业的运营团队保持着良好的合作关系。)“最初旨在提升软件质量的实验性方案最终沦为一场闹剧,大部分才华横溢的开发人员被迫承担起超负荷的额外工作(即使额外负担不重,这类多余的内容也根本没有存在的必要)以及原本压根没被纳入设置的底层岗位。”全堆栈开发人员概念实际上让他们变成了技术工具的操纵者,他解释道。
在一次采访中,Knupp表示现在专门面向传统运营以及数据库管理员的工作机会已经越来越少,这是因为开发人员在无意之中已经接过了这部分职责。与此同时,开发人员自然也就失去了本来应该用在编程上的宝贵时间。Knupp指出,他目前所持的立场是在汇总了亲身观察、在工作中的实际体会以及读者在博文中的回复后建立起来的。“如果他们本身就是DevOps的推动者,那么必然会对这些博文嗤之以鼻。但那些开发人员出身的读者却对文章内容表示认同与支持。”
不过在咨询企业BenchmarkQA公司当中,DevOps拥护者Jeff Roth就对Knupp的抗议表示反对,认为这只是不值一哂的“聒噪之声”。通过将任务按照构建、编码、功能自动化以及单元测试等类别加以划分,开发者团队完全可以将整个软件开发流程尽收眼底,BenchmarkQA公司咨询服务副总裁Roth表示。开发人员能够“从更为宏观的视角审视整个项目,而不再局限于‘我负责编写代码’这样浅层次的整体认知。”在Roth看来,DevOps的***优势在于能够通过可重复的方式以更快速度生产更多高质量的开发成果。
尽管如此,Roth还是在一定程度上对Knupp的观点表示了肯定。“我并不反对术业有专攻这一论断。我们肯定没法强迫一位业务分析师转型成开发人员,”他解释道。“我也不一定非要让开发人员负责质量保障事务。”总而言之,专业知识、协作关系与知识共享之间需要找到合适的平衡点,只有这样才能人尽其才、物尽其用。
Roth与Knupp也都认为如今DevOps的根本定义已经变得有些混乱。“目前DevOps拥有十来种不同的定义,”Roth表示。“维基百科上给出的定义倒是很值得参考,但DevOps与敏捷概念比较类似——我们很难用一种描述将其彻底涵盖在内。”就他而言,Roth认为DevOps是一种帮助业务人员、开发人员以及运营人员在由设想到生产的软件交付过程中各自找到最适推进途径的原则性机制。
“作为一项运动或者一种事物,DevOps已经失去了本应具备的全部含义,”Knupp抱怨道。“没人能确切解释这个词汇到底想表达什么意思。”他同时强调称,DevOps已经“被众多企业所扭曲,变成了开发人员需要承担所有工作”这种荒谬的思路。
英文原文:http://www.infoworld.com/t/application-development/devops-killing-the-developer-242047