# Modularization requires legible interfaces Legible interfaces enable someone to build on top of a module without understanding what is inside of it. [[Creating legible interfaces is expensive]] ### Ways that an interface can be legible * Interfaces can remain legible by not changing, but this is rare. * Interfaces can remain legible if the people who change them update the ‘documentation if you will’ but this is usually an afterthought. * Interfaces can remain legible if there is a party whose job is to maintain the interface. This requires coordination that often doesn’t happen. [[Program and project management is important and valuable]] I’m sure that there is a lot of thinking and literature around this in the computer science and possibly program management communities. ( The real test of an interface is how much work it takes to combine a node with another node. [[Connections create new knowledge]]. Interface quality creates the endogenous part of the friction in combining nodes that [[Jerry Neumann]] mentions in [[neumannOneProcess2020]]. ### Related * [[The Architecture of Complexity]] * [[Modularization enables pieces to be used in many different technologies]] * [[Modularization enables the higher level technology to improve continuously even if pieces improve discretely]] * [[Modularization allows different groups to work on different pieces]] <!-- #evergreen --> [Web URL for this note](http://notes.benjaminreinhardt.com/Modularization+requires+legible+interfaces) [Comment on this note](http://via.hypothes.is/http://notes.benjaminreinhardt.com/Modularization+requires+legible+interfaces)