Dan McKinley基于在Etsy的工作经验,发表了一篇关于软件开发中技术选型的论文,主张优先采用成熟可靠的"无聊技术"而非盲目追求最新技术[1]。
论文的核心观点是资源有限性。作者指出每家公司大约拥有三个固定的创新代币,应当将其集中投入到业务创新而非技术本身[1]。他强调,MySQL、PostgreSQL、PHP、Python、Memcached等"无聊技术"具备易于理解和已知失败模式的优势[1]。相比之下,新技术面临的"未知未知"风险远高于成熟技术的"已知未知"风险[1]。
论文指出采用"最佳工具"思维存在的问题在于对"最佳"的定义往往过于短视,更明智的做法是选择在"最差位置"最少的工具[1]。在引入新技术前,应先考虑用现有技术解决问题的可能性,且需要在公司层面进行充分的可见性和讨论[1]。
Etsy的实际案例印证了这一理念的可行性。该公司用PHP、MySQL、Memcached和Gearman构建的活动源在五年内自然扩展了20倍,无需进行特殊优化[1]。
Dan McKinley presented a technology philosophy centered on prioritizing mature, stable tools over cutting-edge solutions in software development [1]. Drawing from his experience at Etsy, McKinley argued that companies should concentrate their limited innovation resources on business objectives rather than technological experimentation [1].
The core premise of McKinley's argument rests on the principle that each organization possesses approximately three "innovation tokens" with a fixed supply [1]. He advocated for established technologies such as MySQL, PostgreSQL, PHP, Python, and Memcached, emphasizing that these "boring technologies" offer both comprehensibility and well-understood failure patterns [1]. McKinley distinguished between "known unknowns" and "unknown unknowns," noting that the latter—inherent risks in new technologies—far exceed those associated with mature tools [1]. Rather than pursuing the "best tool" in isolation, he recommended selecting tools that minimize overall complexity through global optimization rather than local optimization [1].
Before adopting new technologies, McKinley stressed the importance of first exploring solutions using existing tools, with any decisions requiring company-wide visibility and discussion [1]. He illustrated this approach with Etsy's experience: an activity feed built using PHP, MySQL, Memcached, and Gearman naturally scaled twentyfold over five years without requiring specialized optimization [1].