Article

Design principles for the computer scientist: No hidden interfaces

4 min read
June 17, 2025
Design principles for the computer scientist: No hidden interfaces

Decoupling = interfacing!

Interfaces are unavoidable and often even desirable in order to be able to decouple and divide complex systems into manageable components (“minimum linkage, maximum coherence”). But it should always be clear to the person who wants to make a change to component 1 what the consequences of that change will be in the linked component 2 and beyond. So there must be insight into the interfaces made. A well-installed decoupling point ensures independent components that can work independently of each other. The internal workings of the component are invisible to the linked outside world and can be changed without consequences for the environment as long as the function to the outside remains the same. But whether the change has an impact on the function to the outside world must be clear. This can be done through good documentation about the interfaces in a system and/or testing and scenario analysis.

Invisible interfaces and modularity

Invisible interfaces are present in many application landscapes. The Dutch system of government master data administrations is one of them. Does every owner of an administration realize the consequences for all customers of changing the data model (an object, its meaning, attributes or relationships)? The internal coherence of the data in the system is crucial to the outside world because the interconnectedness is so great. This requires meticulous documentation of data models and connection conditions and a well-controlled change process.

The frequent application of the modularity principle in the application landscape also raises the issue of insight into the coherence of the landscape as a whole. After all, the cohesion of the domains (CRM, financial, HRM, transaction systems) remains if you make domains modular. Changing the CRM module can have an impact on the financial module. The interfaces must therefore be visible!

Invisible interfaces and traceability

From an audit perspective, it should be possible to trace from the output, the input that led to that output. This is also the starting point for many applications for making BI-reports and analyses. But that requires a lot of the recording of metadata when registering the source data and processing it. With the current techniques for Big Data analysis and certainly AI algorithms, this is becoming increasingly difficult. In fact, the use of AI goes against the principle of avoiding invisible interfaces because you are dealing with a probabilistic processing process instead of a deterministic process.

Code building and regression testing.

The fact that regression testing is still required in the construction of (complex) code underlines that documentation alone is not enough to avoid invisible interfaces. Testing remains necessary to bring them to light in complex systems. It always turns out to be difficult to develop truly independent components that continue to meet the interface characteristics as it was documented to the outside world. And so with a new release, certain functions “fail” because the impact of a change elsewhere in the landscape was insufficiently visible.

The importance of documentation and agreements

Documentation makes things visible by describing them. A interface must be documented in order to know how it works and to assess the impact of a change in the component. Anyone who has ever drilled into the wall near a socket or water pipe knows the value of knowing where those pipes run. Wall and water pipe are independent components, but they are physically linked. That is why there is a yellow sign with the letter K on it at waterways along the side. So that when dredging the canal, it is clear where the connection to that cable is located.

It cannot be overemphasized; Document all interfaces and maintain this documentation!

In addition, agreements are needed about the changeability of the interface itself once it has been realized. Think of backward compatibility, being able to run two successive versions side by side and the like.

Conclusion

As a computer scientist, you have to make all interfaces visible and documented, because you cannot foresee how the interface may be affected by a new development in the future. In order to be able to determine the impact on the system as a whole in the event of changes, insight into all interfaces is essential.

Read the other information science principles here:

  1. Meaningless identity designation
  2. Decoupling points for complexity reduction and flexibility, maximizing independence of components
  3. Language consistency
  4. Clear distribution of responsibilities and functional separation for administration
  5. Delegating decision-making authority as low as possible
  6. Detaching authorization from identification/authentication
  7. Single registration of master data
  8. Separating data and metadata in storage and processing
  9. Applying standard patterns without deviations
  10. Separating application function from data storage
  11. Device-independent development
  12. Choose a Storage Structure
Rutger Gooszen
Rutger Gooszen

Principal Architect

Rutger has over 15 years of experience as a Lead Architect/Business Architect in complex chains and in coaching a team of architects to develop and…
Discover more

Related insights

Construction principles for information professionals (2): Decoupling for complexity reduction and flexibility
Article
2 years ago | 3 min read
Construction principles for information professionals (2): Decoupling for complexity reduction and flexibility

In this series of blogs, I will focus on the enduring construction principles of information science that ensure better "information structures." These principles have sometimes been forgotten in the rapid progress of technology, resulting in unstable or poorly maintainable and extensible "information structures." In this second blog, I will delve into the art of decoupling. A well-designed system has so-called decoupling points, imaginary divisions in the complexity of the whole, which allow the parts to be developed, implemented, and (eventually) replaced as independently as possible. This promotes interoperability without central control. In its ultimate form, this is known as "service-oriented architecture (SOA)," which has been developed in various forms.

Construction principles for information professionals: (3) Unambiguous and consistent language
Article
2 years ago | 6 min read
Construction principles for information professionals: (3) Unambiguous and consistent language

In this series of blogs, I will delve into the enduring principles of information architecture that ensure better "information structures." Sometimes, these principles have been overlooked in the rapid advancement of technology. In this blog, I will focus on the necessity of clarity and consistency in language within a "system" or "domain" as aspects such as privacy protection, information security, and information management heavily depend on it.

Construction principles for information professionals: (4) Responsibility allocation and segregation of duties
Article
2 years ago | 4 min read
Construction principles for information professionals: (4) Responsibility allocation and segregation of duties

In this series of blogs, I will focus on the enduring construction principles for information systems that ensure better "information structures." These principles have sometimes been forgotten in the rush of advancing technology, resulting in unstable or poorly maintainable and expandable "information structures." This time, I'll discuss the importance of clear responsibility allocation and segregation of duties within an organization. A recent incident at the municipality of The Hague, where an employee was able to forge passports for criminals due to inadequate segregation of duties in the work processes, serves as a reminder of the consequences that can arise when things go wrong.

Construction principles for the information scientist: (6) Disconnect “who you are” from “what you are allowed”
Article
2 years ago | 4 min read
Construction principles for the information scientist: (6) Disconnect “who you are” from “what you are allowed”

Still-valid information engineering construction principles guarantee better information constructs. They are sometimes, in the pace of advancing technology, a bit forgotten, resulting in shaky or poorly maintainable and extensible information constructs. This time, the focus is on the need to decouple identification/authentication (who you are) and authorization (what you are allowed to do). How many login combinations do you have in use? Probably more than 30. Still every day, people struggle with login names and passwords for all those service providers visited online. In theory, the solution is simple but in practice it is still laborious.