"Before molting the animal must diet away half the mass in its claws or risk getting stuck in its old clothes. Worse, because a lobster is an invertebrate, every anatomic feature that is rigid is part of the exoskeleton, including the teeth inside the stomach that grind food. The lobster must rip out the lining of its throat, stomach, and anus before it is free of the old shell. Some die trying."
Sounds pretty nasty to me. But it resonates with past moments where I had to rip out entire code bases, so that I could make another attempt to grow a project to the next level of complexity.
For a lobster, the molting period is when they are at their most vulnerable, and defenceless.
For software the greatest peril similarly is inbetween implementations, where the motivation driving its development exists only as naked ideas and untested learnings, which, on top of it all, may already have abandoned a previous codebase. Such a moment is of course full of promise, too. Software, to grow, sometimes needs to molt.
In the wild
Surely I'm not the only one who has seen forces of creation behave like this. In the wild, we may have seen the Lobster Model in action at medium scale when OpenGL became Vulkan. Or at large scale, when Mac OS 9 transitioned to OS X. Or at massive scale, whenever Madonna releases a new album.
How wasteful, some might say, to leave a codebase behind, even if it was outgrown. How can this ever be sustainable? Nature, or more specifically lobsters, might have an answer for that. What do they do with their abandoned shell?
They eat it. Bon appetit.