I’ve had a number of conversations about Norman Doors over the last few weeks. So, what’s a Norman Door?
Ever tried to open a door by pulling it instead of pushing? It was probably because the door had a handle on it, which we naturally associate with pulling instead of pushing. To quote Don Norman, author of “The Design of Everyday Things”, “The design of the door should indicate how to work it without any need for signs, certainly without any need for trial and error.” While Don Norman’s intelligence in design extends far beyond doors alone, the Norman Door serves as an excellent reminder of the importance of good design and implementation.
Here’s a short, highly-amusing video about Norman Doors:
So, what’s this got to do with API’s? Well, as marked by the “I" in Application Programming Interface, this is the entry point, the door, if I may, into a device, platform or system. However, API’s are not all created equal and, in some cases, they are implemented badly. This is why F5 recommends customers use application services templates (F5 iApps) when deploying via the iControl REST API. So, what’s a services template?
As I explained in “Why you need Service Templates”, think of them as being like restaurant menus. Restaurants provide a service in the form of creating culinary delight. Upon arriving at a restaurant, one is presented with a menu that serves the purpose of describing the available options, but without the many steps involved in each meals creation. For example, if a steak comes with a peppercorn sauce, the customer doesn’t need to know the details of how the sauce is made, or from where the ingredients are obtained, only that it is a peppercorn sauce and it comes with the steak. Yummy!
The menu provides an abstraction of the process–each step of preparation, cooking, timing, and presentation–from the end result. The alternative, years of schooling and experimenting in how to cook everything for oneself.
If you’re serious about Programmable Infrastructure, don’t just validate that a device, platform, or system API exists. Its entirely possible that such an API is cumbersome to implement, or to adapt to architectural changes. With concepts like services templates, the execution becomes extremely simple, as opposed to MANY individual API calls to perform a simple task.
So, if your keen on the benefits of Programmable Infrastructure, be on the lookout for the API Norman Door!