Hyrum's Law
Over the past couple years of doing low-level infrastructure migrations in one of the most complex software systems on the planet, I’ve made some observations about the differences between an interface and its implementations. We typically think of the interface as an abstraction for interacting with a system (like the steering wheel and pedals in a car), and the implementation as the way the system does its work (wheels and an engine). This is useful for a number of reasons, foremost among them that most useful systems rapidly become too complex for a single individual or group to completely understand, and abstractions are essential to managing that complexity. Defining the correct level of abstraction is a completely separate discussion (see Mythical Man-Month), but we like to think that once an abstraction is defined, it is concrete. In other words, an interface should theoretically provide a clear separation between consumers of a system and its implementers. In practice, this the
Hyrum's Law Hyrum's Law An observation on Software Engineering Put succinctly, the observation is this: With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody. Over the past couple years of doing low-level infrastructure migrations in one of the most complex software systems on the planet, I’ve made some observations about the differences between an interface and its implementations. We typically think of the interface as an abstraction for interacting with a system (like the stee
Explore this link on the map →related reading
- Hyrum's Law and API Design and Management | What does it mean?blog.axway.com
- The Law of Leaky Abstractions – Joel on Softwarejoelonsoftware.com
- Magic Ink: Information Software and the Graphical Interfaceworrydream.com
- Up and Down the Ladder of Abstractionworrydream.com
- Thought as a Technologycognitivemedium.com
- Abstractioncs.cornell.edu
- Frank Chimero · What Screens Wantfrankchimero.com
- Magic Ink: Information Software and the Graphical Interfaceworrydream.com
- Las leyes de la interfaz. | Hipermediacioneshipermediaciones.com
- Essays on programming I think about a lot | benkuhn.netbenkuhn.net
- How to write complex softwaregrantslatton.com
- Design with materials, not features | thesephist.comthesephist.com