This is part one of a series of blog posts on the Core Principles of NaviNet Open.
Unlike the rigid forms and functions that are the fruits of other engineering disciplines, software is highly malleable. Agile, on-the-fly development methodologies, design patterns, implementation frameworks, and massive computational power allow software engineers to render ideas in ways that would be unthinkable in the non-virtual arts. But the points at which software connects to the real non-virtual world are far less fungible and forgiving.
The data model is one such point. Most software projects begin with a data model. Here, business meets software architecture. Software engineers must first assert that a business runs in a particular way, with well understood entities working together in specific ways. Then, they can create a robust information map of those entities and relationships. This map is the information over which the software logic computes and processes. If the map changes, the software loses its way and must be revised.