magic starSummarize by Aili

Against Innovation Tokens

๐ŸŒˆ Abstract

The article discusses the concept of "innovation tokens" proposed by Dan McKinley, which has become popular in the programming community. The author argues that while the model can be useful as a heuristic, it has significant flaws and may be counterproductive. The author proposes an alternative model of "boundary tokens" focused on maintaining consistency in the technology stack rather than restricting innovation.

๐Ÿ™‹ Q&A

[01] The "Innovation Token" Model

1. What is the "innovation token" model proposed by Dan McKinley? The "innovation token" model suggests that software teams have a limited supply of "innovation tokens" that they can use to select innovative technologies, while boring technologies can be chosen for free. This implies that there is a clear distinction between innovative and boring technologies.

2. What are the author's main criticisms of the "innovation token" model? The author argues that the "innovation token" model is flawed and may be counterproductive. The main issues are:

  • It assumes there is a clear distinction between innovative and boring technologies, which is often not the case.
  • It can lead to teams avoiding innovative technologies altogether, even when they may be beneficial.
  • It focuses on the "innovativeness" of a technology rather than its operational overhead and consistency with the rest of the architecture.

3. What is the author's alternative proposal, the "boundary token" model? The author proposes the "boundary token" model, which focuses on the consistency of the technology stack rather than the innovativeness of individual technologies. The key idea is to minimize the number of boundaries between different technologies, as each boundary introduces additional operational overhead and complexity.

[02] The Importance of Consistency

1. Why does the author argue that consistency is more important than restricting innovation? The author argues that the increased operational overhead from using multiple inconsistent technologies (e.g., Haskell and Ruby) is often greater than the overhead of using a more innovative but consistent technology stack. Maintaining a consistent set of tools and technologies allows for better team alignment, easier knowledge sharing, and reduced friction at the boundaries between different components.

2. Can you provide an example the author uses to illustrate the benefits of consistency over innovation? The author uses the example of using a custom task scheduling system instead of the ubiquitous Cron tool. While Cron is a "boring" and well-known technology, the author argues that a custom scheduling system can be more consistent with the rest of the application architecture, leading to lower operational overhead in the long run.

3. How does the author's perspective on programming language design support the importance of consistency? The author notes that many influential programming languages have had a significant impact by making "everything into one thing", rather than bundling together many different tools and technologies. This allows developers to focus on solving problems within a single, consistent cognitive model, rather than having to juggle multiple different concepts.

Shared by Daniel Chen ยท
ยฉ 2024 NewMotor Inc.