初创公司生态系统往往扮演着“技术专家工厂”的角色,这是一个由早期公司特定需求驱动的新技术采用循环。在这些环境中,工程师往往被要求使用缺乏成熟生态系统或文档的工具来构建复杂的系统。这种选择通常被框定为对“能力”或“创新”的追求,但文章作者认为,这些技术往往缺乏内在的强大能力;相反,它们提供了一种与初创公司高风险、高回报目标相契合的“潜力”。这种动态允许工程师专注于抽象的工艺——通过创建通用工具来解决问题——而不是成熟业务领域的特定细微差别。

这个循环的一个主要机制是当初创公司未能实现快速增长时出现的“防御性蹲守”。当公司停滞不前时,工程组织可能会停止尝试重新发明商业模式,转而专注于为假设的未来规模做准备。这往往导致采用不太了解的技术(例如作者在经历中的 Clojure 或 HBase)来为未来的增长提供杠杆。由于公司目前并未扩大规模,这些技术选择作为一种准备状态被“固化”在系统中。工程师开始专注于系统的技术完整性——最小化代码库中的风险并完善抽象模型——即使底层的商业模式仍然存在缺陷或未经证实。

这种环境创造了一种特定类型的专业人士:当他们工作的上下文是其他人的软件时,最感到快乐的技术专家。作者指出,行业标准的面试问题——侧重于数据结构、递归和计算复杂度——正是这种对抽象关注的直接结果。虽然批评者认为这些并不反映“真实”的软件任务,但作者坚持认为,它们对于构建必须处理病态情况的通用工具至关重要。最终,初创公司的失败或成功变成了“工厂”主要功能的次要结果:提供一个让工程师能够学习构建和抽象的空间,即使他们构建的产品最终被丢弃或被更大的实体吸收。这种新颖与过时的循环确保了技术专家的技能组合保持高度需求,即使这让工作与其最终的实际应用产生了距离。