Thursday, February 8, 2007

Runtime software structures

Software architects need to start worrying about runtime software structures on a larger scale than they do currently.

The software landscape is changing from simple client-server models, to a mesh of connected systems, linked by real time calls across the network. As the world increasingly becomes a network of live systems feeding data to each other in real time, the software architects' emphasis will need to change from static structures to runtime structures. This is because devices and computational structures will be needed to constantly monitor several raw streams, for data that needs to be aggregated, compiled and analyzed.

Traditionally software architects focus on static structures while conceiving solutions. Classes, frameworks, libraries, etc, are all static structures that focus on how the written code is structured or layered. Runtime structures, in contrast, are dynamic and may change based on certain system events.

User community world over will start to realize, how their everyday choices impact real time supply chains. This may lead to a change in people's interaction behavior as well. As systems are getting linked, more and more users are interested in getting a dashboard view of the system.

Interaction design then changes from active (initiated by the user) to reactive (response to an event). In his book In the Bubble, John Thackara refers to this as "In the flow" and asserts that a process control paradigm will increasingly become more important.

This also involves a change in user mental models. An important aspect being talked increasingly in solution design is the concept of personal dashboards that would provide people with information they should be looking at or acting on.

All this is great. However, in my humble opinion, the system should force the users at some point to review past data and performance and make some critical decisions. This could be in form of change in policies, or change in the process itself.

An important question to ask is what will be this sub-system and how will vast amounts of information be analyzed and sorted. Lastly, but not less important,is the fact that if everything is reactive, then how do we engage the human operators to make decisions and develop foresight. In the environment where every action is a reaction to an event, what kind of institutions will this create and what will be the impact on social structures.


No comments: