惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
量子位
A
About on SuperTechFans
G
Google Developers Blog
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research

nedshed.dev

You need a Windows Remote Desktop, not an OpenClaw Tragic blimps, cooking mice, and epic penguins Meet Gitcasso — Syntax Highlighting for GitHub Comments NBA x Ghibli The Auteur, The Cat, and The Flood of GPUs Disneyland on VHS The new stuff is always simple Surrendering to grooves in latent space Assertions are just temporarily embarrassed snapshots Rich Hickey's Glossary and Decision Matrix Bootstrapping boundaries version = f(changelog)
Breaking changes and broken brands
Ned Twigg · 2023-12-07 · via nedshed.dev

Besides setting it to 0.x to indicate commitment issues and low self-esteem, the second-most-popular use of the breaking version digit is to communicate only the really breaking changes.

For example, let’s say you invent concrete 1.0, a product where people can pour a liquid into a mold, and it will harden like a rock. Very useful for making floors!

https://picryl.com/media/employees-of-the-del-valle-group-sp-pour-concrete-08e422

But to make a wall with it, people have to build a giant mold to pour it into, and then the whole mold gets thrown away afterwards. What a waste!

https://constrofacilitator.com/wall-formwork-advantages-types-applications/

But then, a breakthrough! You build a factory full of molds in the shape of large blocks, and pour the liquid yourself. Now people can just stack the solid blocks to the heavens, no molds required!

https://jenikirbyhistory.getarchive.net/media/romanian-soldiers-work-to-place-a-cinder-block-on-a-c341d4

So what is this, a new feature for concrete? concrete 1.1? No, of course not. You can’t pour it anymore, this is a breaking change. concrete 2.0.

Concrete is a sound, it roughly means “pour this liquid and it will become a rock”. One, two, one point two are also sounds, and they roughly mean that you need to learn that there is more to communicating with other people than counting the number of ideas you personally have had. Other people are not counting your ideas, and they’re not impressed by twos or even by ninety-fives.

If you require your users to change the methods and tools that they use, some of them will keep using the old thing. Eventually, many of them will switch to your new thing, possibly even most. But probably the modal user is going to plan to switch at some point, but actually just abandon the project they were using concrete 1.0 on anyway.

This is true, and it is okay. It is okay for you to abandon the old thing, and it is okay for other people to keep using it. But once you release concrete 2.0 and put your marketing and leadership behind it, you severely damage the ability of your users to maintain and improve concrete 1.0 on their own. You permanently break search and tagging for your 1.x hold outs, and even your 2.x users will forever encounter weird non-sensical results at the bottom of their queries, forever.

Probably your team is bad, and the thing you built is bad also. But maybe the thing you built is good, a lot of people use it, and it matters whether you release a 2.x or launch a new brand. Ask yourself two questions?

  • how many things have you made?

  • how many of them are good enough that anybody cares what version it is?

Maybe I’m the only idiot, but I have made a lot of things, and there is only one thing that anybody really uses. And it’s quite strange, a mixture of luck and curse that now it’s my job to solve this one weird annoying class of problems for a zillion people.

Are you a genius? Or a monkey with a typewriter? If I’m in a zoo full of monkeys, I’m a genius. But if I’m connected to the internet after it’s had thirty years to spool up? I’m a monkey with a typewriter and a dowsing rod, and if people care what version my thing is, I have found water and I am not so confident in my dowsing skills that I want to force my whole userbase with me into the wilderness to find the next wet spot.

Generated by DALL·E

I publishing breaking changes all the time, because I’m an engineer.

But if I’m asking my users to change the methods and tools that they use? Well then I’m gonna find a new name.

This is not concrete 1.1. Nor is it concrete 2.0.

It’s a cinderblock. Obviously. If I really want to leverage the success of concrete, and emphasize the lineage between my old product and the new, I’m in luck because sounds compose! You can combine them! Don't "preserve" your brand, grow it! Prefix it, suffix it, hyphenate it! All of these operations preserve search and tagging. ConcreteBlocks 1.0, Blok by Concrete.

If you really want to go the "2" route, do it like this: Concrete2 1.0. At least that gives people a chance to tag things #concrete vs #concrete2. But you really lose a lot of information with the brand_preservation_token thing (you lose almost as much as 0.x), and you don't get much (anything?) in return.

Summary image

And if the difference between #concrete and #concrete2 requires a significant change in methods and tools, then you are really taking two different things and smashing them into one sound, which will never be the best symbol for either of the underlying artifacts. LeTaylor Jameswift might be the both the basketball player and best popstar in history, but they would not sell as many jerseys or albums as their constituent brands could on their own.