Pyramids, Rivers, and Broadband in Wealthy Neighborhoods - How Hierarchy Creates Efficiencies
Egypt, Sudan, Nigeria, Greece, Spain, China, Mesoamerica, North America, the Roman Empire, Medieval Europe, India, and Indonesia all built pyramids. Why is that? The answer is a hierarchical architecture. It is the only design and building methodology that will allow massive, complex structures to be built with the materials on hand (stone) during the time of an ancient civilization. A hierarchy is a system of structure where subsequent elements are reliant upon prior elements, and all elements in the structure are linked via this dependency. A hierarchical structure has elements of ranking, levels, and peering between levels. When developing a complex application, the same logic applies.
If an application is organized in a hierarchical structure, then it follows a process of logical flow of data and algorithms from top to bottom. By structuring which modules are called by other modules at different layers, the programmer creates a structure that is easier to understand and troubleshoot.
A Program Hierarchy is very useful in determining the flow of input data, for instance. As an analogy, think of a large rainstorm falling on hilly terrain. The gentle rain falls on a hill, and the run-off from this rain creates a small stream. These streams then form a junction to form rivulets, which in turn junction across the region to form raging rivers that eventually will find their way to an ocean or sea. Like the original drops of water, the data that is inputted into an application will flow through the levels to a known conclusion, if the program is organized hierarchically as the hills and valleys of the terrain is organized in elevation. This process allows a programmer to validate test data points inserted into the logic of an application. Test data will have a known outcome after being processed, following a pattern that is made predictable through the use of a hierarchical architecture.
A key to developing an application in a hierarchical fashion is through the use of algorithms that manipulate data and perform functions in a predictable pattern. The concept of peering is important with algorithms. In a complex program, there is rarely a single process that is being performed. Instead, there are classes or stages of algorithms that are manipulating different kinds of data. One section of a program might be classifying users based on demographic data that is being pulled from different sources, and another section of a program might then create a map of telecom broadband upgrades to broadband switches in neighborhoods by ranking local neighborhood demographics and income (I hate to tell you, but this is how the phone company determines what neighborhoods get newer, faster broadband availability first...). It would be inefficient and complicated to perform this kind of sorting and ranking over and over again for each type of demographic input (average income, number of vehicles per household, number of children in household, average level of education, etc.). Peering the same type of algorithms on the same level of an application allows for a more logical, natural flow of data manipulation, allowing for both greater efficiency of programming (more things done with fewer lines of code through reuse) and greater ability for a number of application developers to work in tandem.
As an example of the use of hierarchies in personal life, look to how complex volunteer organizations are organized. Neighborhood groups are peered together, and the leadership of a neighborhood organization might meet in city wide councils to discuss and unify a position important to the communities as a whole. The city wide volunteer councils might then send representatives to a state-wide organization that interfaces with government groups at the state level to advocate for individuals in neighborhoods across the state. In this way, a person’s desire for change has a way of flowing from their block all the way to a state capital and be heard by the correct people who can affect change for the better. See how the forces that cause drops of water to form the Amazon and blocks of stone distributing the weight of The Great Pyramid of Cholula can also allow an individual to be part of a democracy? Hierarchy Rules!
No comments:
Post a Comment