Each time one discusses in IT about (software and hardware) components interacting with each other, one talks about a composite referred as a system. Even if the term of Information System (IS) is related to it, a system is defined as a set of interrelated and interconnected components that can be considered together for specific purpose or simple convenience.
A component can be a piece of software or hardware, as well persons or groups if we extend the definition. The consideration of people becomes relevant especially in the context of ecologies, in which systems are placed in a broader context that consider people’s interaction with them, as this raises to important behavior that impacts system’s functioning.
Within a system each part has a role or function determined in respect to the whole as well to the other parts. The role or function of the component is typically fixed, actually predefined, though there are also exceptions especially when the scope of a component is enlarged, respectively reduced to the degree that the component can be removed or ignored. What one considers or not considers as part of system defines a system’s boundaries; it’s what distinguishes it from other systems within the environment(s) considered.
The interaction between the components resume in the exchange, transmission and processing of data found in different aggregations ranging from signals to complex data structures. If in non-IT-based systems the changes are determined by inflow, respectively outflow of energy, in IT the flow is considered in terms of data in its various aggregations (information, knowledge). The data flow (also information flow) represents the ‘fluid’ that nourishes a system’s ‘organism’.
One can grasp the complexity in the moment one attempts to describe a system in terms of components, respectively the dependencies existing between them in term of data and processes. If in nature the processes are extrapolated, in IT they are predefined (even if the knowledge about them is not available). In addition, the less knowledge one has about the infrastructure, the higher the apparent complexity. Even if the system is not necessarily complex, the lack of knowledge and certainty about it makes it complex. The more one needs to dig for information and knowledge to get an acceptable level of knowledge and logical depth, the more time is needing for designing a solution.
Saint Exupéry’s definition of simplicity applies from a system’s functional point of view, though it doesn’t addresses the relative knowledge about the system, which often is implicit (in people’s heads). People have only fragmented knowledge about the system which makes it difficult creating the whole picture. It’s typically the role of system or process operational manuals, respectively of data descriptions, to make that knowledge explicit, establishing also a fundament for common knowledge and further communication and understanding.
Between the apparent (perceived) and real complexity of a system there’s an important gap that needs to be addressed if one wants to manage the systems adequately, respectively to simplify the systems. Often simplification happens when components or whole systems are replaced, consolidated or migrated, a mix between theses approaches existing as well. Simplifications at data level (aka data harmonization) or process level (aka process optimization and redesign) can have an important impact, being inherent to the good (optimal) functioning of systems.
Whether these changes occur in big-bang or gradual iterations it’s a question of available resources, organization capabilities, including the ability to handle such projects, respectively the impact, opportunities and risks associated with such endeavors. Beyond this, it’s important to regard the problems from a systemic and systematic point of view, in which ecology’s role is important.
Originally published at http://sql-troubles.blogspot.com.