Architecture is key, also for Free and Open Source Software

No, I am not talking about software architecture only. For running a business it's important that systems, both business and IT are easy to maintain and adapt. The systems need also to be interoperable, sustainable and a lot more. To obtain this you need a good architecture, but what is architecture?

Enterprise architecture is the complete helicopter overview of all systems, both business and IT. Most architecture frameworks speak about governance, business, data, software and a hardware layer. In a good architecture, you have knowledge of how this layers all are interconnected. Most times when people ask me for an example, I give the following: Just imagine that you take me on a tour of your company, and you show me your datacenter. So we arrive in this datacenter and on one of the servers an orange light is blinking (indicating a piece of the hardware needs replacement). At that moment, I ask which business processes get hurt, when this machine breaks down. Not which software runs on this machine, or which data is on this machine, but how this machine is connected to the business. 

Key in running any operation is that you have knowledge how everything is connected and how software, hardware and data operate together.  From this overview of all systems each organization can distill an architectural rule set. If you are using Ubuntu Linux on several servers, it doesn't make sense to install Suse on the next, or vice versa. When you are using Postgressql on the most servers, it doesn't make any sense to use a different technology for a new solution. It just doesn't make sense. It's easier to maintain and keep overview when the systems are more alike to each other. But also software which you are using, if you are using Odoo Community for one part of the company, why would you ever agree that another department would use an entirely different tooling. It would just complicate the business. 

Data architecture matters

In the last few years I had to give many lectures about data and data management related problems. From the eighties of the last century not only the proprietary paradigm became dominant, but also an application dominant one, where they neglected the importance of well-designed databases. What happened was it that for most business problems new applications were created, not only not looking at the software architecture, but certainly not at the data-architecture. With the emerge of the data driven world, it became more important to have all data sources connected to each other. For this of course you need some architecture. At the software part, this is less important as the software is basically a system on its own, where something goes in, a process happens and something goes out. It would be nice if we have all the designs of the software, which we of course have with free and open source software, but the data part is totally different. If we want to connect all databases to create a single point of truth, a golden record, we need the data -architecture, or data models and with open source software we have these. 

While we are having all the data models, it doesn't mean it is easy to connect all data and generate this single point of truth, but it is at least a good starting point.The learning point you should, get from this, is that you cannot just choose the best solution for a problem, but that this solution should fit in the entire architecture. It could mean that when looking at the entire architecture, you will and have to choose another solution, which fits the overall architecture better. It's not the single application or database that matters most, but the entire landscape of all solutions in the organization.   

Beehive Organization of a Free and Open Source Community