Certain things are wonderful because they are unique. Artwork, musical performances, memories, the important people in our lives. In these cases, we treasure differences.
That is not true, however, for software development. While a service or a feature may perform a very specialized task, the background infrastructure isn’t helped by inconsistencies. Every time you add a different piece of hardware, operating system, software platform or process, you multiply the number of ways you’ll need to maintain your code, impacting quality and driving costs up.
In the technology realm, these inconsistencies are referred to as “snowflakes.” I like to refer to the process of eliminating these inconsistencies as melting snowflakes. Because, just like in real life, snowflakes may be interesting, but they’re not great for software development—they often make you slow down or slip up when you want to move quickly.