4 ms·
Perfection is an interesting one. It states: > “A perfect interface is one which is impossible to use incorrectly, even by accident.” It illustrates the point
by apo 7y ago
Perfection is an interesting one. It states:
> “A perfect interface is one which is impossible to use incorrectly, even by accident.”
It illustrates the point by showing how a non-expert can build a complex model from well-designed parts without even knowing what the end result should look like.
But then later:
> "... Even an ugly, rickety shed would be more useful than a hypothetical, flawless pagoda."
Documentation represents the compromise between a perfect interface and shipping pressure. The gap can be minimized but never eliminated.
- djakjxnanjak 7y agoI’ve worked on projects designed by architects. They had big, beautiful interfaces defined by types. When I implemented the interfaces, working systems magically appeared. But it was my job to implement the interfaces. They didn’t get organic adoption from other engineers. Nobody was voluntarily choosing to implement their system via the big beautiful interface. These projects ultimately failed. Projects I’ve worked on that succeeded had small, comprehensible interfaces. Engineers can quickly understand how to use them and see what the benefits are. The pitch is “our service does this one thing you need,” not “build your entire project by implementing the interface of our type-safe general data processing system.”
- jimmaswell 7y agoThat almost sounds like the problem where you need to make people think they came up with an idea themself to get them on board with it.
- ajxs 7y agoIt most definitely sounds like a problem with these other engineers. Maybe I'm a bit out of touch here, but my view is that if engineers are not implementing services as per the architect's specifications, then they are not doing their job. If you hire an architect to design your house, and end up with a run-down shack because the design was complex and the builders didn't feel like working to the plan you'd be within your rights to seek legal recourse against them.
- IshKebab 7y agoDepends - sometimes architects specify things that turn out to be impossible or impractical to build.
- djakjxnanjak 7y agoPerhaps it’s all good when the implementers work for the architects, but when the architects are designing an interface that is going to be sold, it has to be something people want to use.
- lmm 7y ago> Documentation represents the compromise between a perfect interface and shipping pressure. The gap can be minimized but never eliminated. Never say never. Some perfect code, needing no more documentation than the types, does get shipped - look at some of Edward Kmett's work. Sometimes you can't figure out the perfect solution and have to resort to the crutch of documentation. But it's not inevitable.