Neurath's Boat

philosophy

Neurath's boat is an old metaphor that describes how we build knowledge; but is also a good metaphor for other activities like SoftwareDevelopment.

Normally, ships are repaired in dry docks. But imagine yourself out at sea, and your boat sometimes leaks. You're nowhere near a dry dock, so you have to fix the leak while still standing on the boat, standing on other planks, which might not be perfect either.

This is exactly how we build software. Rarely do you find that a piece of software 'perfect.' Normally, that kind of software is some greenfield project that isn't even making money yet. When you fix a bug, or build a new feature, you have to rely on the stuff you've already built. This is part of the reason why LegacyCode is so problematic -- nobody knows how it works, and nobody wants to clean it up, so you have to rely on things that themselves have many unknowns.