Adam Smith与全栈开发人员-DevOps中的生产力

60次阅读
没有评论

问题描述

Adam Smith提出的劳动分工理论认为,通过将工作分成不同的阶段,每个阶段都可以独立学习和掌握,并且不需要沟通就可以进行交接,这样可以提高效率。那么为什么多技能角色如此受欢迎,如果这实际上会降低生产力,那么Smith是错了吗?搜索“全栈开发人员”在Google上的趋势仍然存在,但显然比两年前慢:
Adam Smith与全栈开发人员-DevOps中的生产力
总结一下,全栈开发人员可以几乎完成整个价值链的工作(如果我理解错了,请纠正):
– 与客户讨论并完善可行的敏捷需求
– 决定选择哪种架构、工具和组件
– 编写前端、后端、集成的代码,跨设备兼容且不需要太多测试,或者包含测试
– 分析和提取数据,使用云AI/ML API进行高级功能
– 编写所需的基础设施即代码和发布
– 在出现错误或销售过程时保持在线
– 注意安全相关设计、整体修补、迁移和现代化
– 以详细的时间表记录工作时间,以便雇主更容易开具发票
– …我有遗漏什么吗?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

Adam Smith关注的是劳动分工中的剥削性工作,而不是探索性工作。在工业界的研发部门中,大部分工作都是探索性的,所以它与Adam Smith的理论没有任何关系。但是我们已经看到,在后续的持续改进阶段中,CI/CD的应用可以带来类似的生产力提升,这可能可以追溯到Adam Smith,尽管这需要非常有想象力的人来证明。

方案2

Adam Smith并没有考虑到信息从一个阶段传递到另一个阶段的问题。这是任何重要的IT项目中的一个关键部分。因此,全栈开发人员具有以下重要优势:
– 他们不需要与其他部门的任何人交谈才能完成工作
– 他们不需要等待其他人完成工作
– 在不同层之间,信息丢失的可能性要小得多
关于IT项目中信息传递的重要性,请参考Fred Brook的《神话般的人月》。

方案3

劳动分工的应用范围主要是在大规模的团队中,比如整个国家/经济体,或者在软件开发领域中的大型开发团队。在大型团队中,雇佣更专业的人力资源是更高效的:
– 他们不是“摇滚明星”-在这样的大型组织中,这通常被认为是一个危险信号
– 他们通常更容易找到,比那些具有更广泛专业知识的人更便宜
– 他们通常不会增加离职风险-例如,他们不会因为只使用其技能的子集而感到不满意。
– 在(也许是奇怪的)DevOps比较中,可以应用“牛群与宠物”的原则,原因与上述类似。这些专业资源从业务角度来说,实际上只是人力资源池中的资本,可以根据需要快速调整规模,通常是通过招聘/解雇来实现的。
– 哦,这样的团队只有在有高质量的架构资源的补充时才能正常运作,这些资源对于将产品分解为可以使用专业资源解决的较小任务是必要的。
在小规模甚至是单人团队中(通常是初创公司或甚至是大型组织中的孤立小团队),使用这样的资源并完成工作是低效甚至不可能的:
– 他们根本没有预算/资源来雇佣许多不同的专业资源来覆盖整个产品开发
– 他们实际上寻求/欣赏可以扮演多个角色的摇滚明星,可以在不延误和增加人力资源成本的情况下灵活地切换角色。

结论

Adam Smith的劳动分工理论在制造业中是适用的,但在软件开发中存在一些重要的差异。全栈开发人员不需要自己完成所有工作,但他们需要能够理解整个技术栈的各个方面以及这些方面之间的相互作用。一个全栈团队应该由专业领域的人员组成,他们专注于一个或多个领域,但了解整个领域的范围,并且可能能够在某个层面上介入。在大规模团队中,不同经验的团队成员之间的协作可以平衡上下文切换和复杂的交互。

正文完