Content
Any information or media provided by a source.
Context
Any meta or contextual information that needs to go along with content.
Source
A contributor, creator, or curator of content.
Besides helping create definition, the three pillars of structure allow for elemental growth paths. This means that elements within the structure of Humanic can evolve as needed without refactoring the entire operating system.
Abstraction in harmony
While structure helps define a backbone for Humanic, the pillars and elements should exist as a cohesive experience. No single pillar’s abstraction is useful without the the harmonious entanglement of its counterparts. This is why harmony as a concept must be understood and respected when envisioning, or extending the Humanic experience. Without harmonious abstraction, Humanic is an amalgamation of ideas.
Where the intention of this structure is to define elements, and abstract them at scale, harmony is intended to consolidate these elements in order to seamlessly addresses user intent. The easiest way to understand harmony within Humanic is to conceptually build the system from the ground up. Let’s start at our most crucial element — intent. Without having an intent, there is no rationale for a user to interact with a system to begin with.
Intent is the first thing a user will participate in–knowingly or unknowingly.
Think about pulling your phone out of your pocket. Chances are it’s not just to put it back in your pocket, you want to create a note, ask a question, or check the time. All of these are intentions.
Once an intent is defined a Function becomes defined. Any defined Function requires an Engine in order to fulfill a users request for that intent. This is what powers any given Intent, and is made interactive by the use of Mechanisms. Mechanisms are interactive tools for users to understand and communicate with the operating system. Think of Mechanisms as translation points between the user request and a system function. They could be radio buttons, combo boxes, date/time pickers, or any method in which a user interacts with the system. Mechanisms are made more evident to users through the use of Behaviors. Behaviors are allusions or metaphors that lead the user to understand how a mechanisms will affect a function.
If the previous paragraph was too much of a dive into this logic, here’s a more practical analogy. Imagine you’re in a car, and you want to go forward. This is communicated to the literal engine through a throttle mechanism. The throttle is interacted with through a behavior, and since you’re in a car, this is likely you pressing your foot into a pedal. If you were on a motorcycle your intent, engine, and mechanism would be the same, but your behavior is what differs. You use your hand and twist on the a handle in order to control the throttle (a mechanism).
Let’s stick with this car analogy for a minute. In the paragraph above, we described an intent being transformed into a function. If we were to analyze the parts described we had one user defined concept, and three system defined concepts. The user defined the intent, and the system (or company) defined the engine, mechanisms, and behaviors. If we were going to go further down this path into the experience spectrum, we would see that the interface, and constitution were also not user defined. If those were to be analogized, the interface would be the way this pedal, in this particular company’s make and model of this car, looks. The way your foot rests on the pedal is setup in the way the company intended, and is the color and material it is because that is what the company intended. And every one of this company’s cars comes ‘standard’ with this sort of pedal. It’s not defined by you, the user. Nothing you interact with in the car is. The way you roll down the windows, the way you turn it on, lock the doors, open the gas cap, or even the colors available to you aren’t defined by the user. They are defined by the company.
It’s not defined by you, the user…They are defined by the company.
Now let’s take this analogy a little further. For the sake of adding some additional tangibles to this situation, we’ll say the car we were using was a Fiat500. Now having driven a Fiat500 recently, I can tell you there were at least two strange behaviors, mechanisms, and interfaces that I dealt with in the car itself. One: In order to lock the doors, you push in the door handle. Two: The controls for both windows are buttons in the center console. These were all selected by Fiat. I did not select the mechanism for the door handle, or the behavior or interface for the window controls. Now in almost every car I’ve ever been in, these functions (locking the door, rolling up/down the windows are done via some interaction with the door). The function here is not the issue for me, the user. The issue for me is the other three parts. I didn’t find it intuitive that the door handle being pushed in was the way to lock it. I would have preferred a different mechanism, let’s say the same one found in a Honda Civic where a rocker button engages or disengages the lock along with an indicator that shows a lock/unlock icon or color. Say I also wanted to move the window control mechanism to the door, but using a button found in a Nissan Altima. I as a user, have an idea of how I want things to look (interface) and how I want to interact with them (behaviors and mechanisms).
I don’t really care what Fiat, Honda, or Nissan want me to do. Nor do I think any of them single handedly can build the perfect car for me, and everyone simultaneously. But that’s the constraint they deal with working in the real world, with physical objects. But those who build digital things have the capability to stop building an application for the lowest common denominator while allowing ourselves to contribute in our strongest suit. Maybe our Map engine is the best one out there. Maybe it’s our scroll bar interface. Maybe it’s our swipe to like behavior. The point is — we don’t all need to rebuild everything, every time. We can build, iterate, and contribute to the best human experience possible, by focusing on the original user intent, and the requirements for that intent.