How Aristotle’s Four Causes Helped Me Explain The Evolutionary Architecture
I have been working as a Technology Architect and have been trying to design/build a product which would help us achieve “Data Democratisation”. Over the period of time, as we are understanding the needs better, we have been making certain changes. Sometime the changes are much more faster and frequent. Recently a developer asked a question — Why are we making changes so fast?
In this article, I am trying to find a suitable answer to the above question.
When a developer asked this question, for a moment I thought this does not make any sense to me. The reason being, the changes being done are to only make the product better and stronger.
What I wanted to tell the developer that we are trying to build an Evolutionary Architecture —
An evolutionary architecture supports guided, incremental change as a first principle across multiple dimensions.
But for him to understand this was too much. I was looking for something better. My quest to give him a better answer led me to the Four Causes explained by Aristotle.
What is this “Four Causes”?
As rightly explained on the Wikipedia page —
The “four causes” are elements of an influential principle in Aristotelian thought whereby explanations of change or movement are classified into four fundamental types of answer to the question “why?”.
Now let’s try to better understand these four causes.
Consider we want to build a table for dining.
As per Aristotle, we can consider following 4 causes for this —
- Matter — The cause of which the object should be made up of. In table’s case, this might wood.
- Form — The way the object should look like. In table’s case, the design.
- Agent — The cause which would help build the object. In table’s case, the carpentry
- End/ Purpose —This is the final cause for which object will be used. Here the table’s purpose cause will be for dining.
Coming back to the Product Architecture
When I tried to relate the above mentioned caused to our product architecture, there were a lot similarities. It goes something like this —
- Matter — In this case the material cause will be the tools and technologies being used.
- Form — In this case the formal cause will be the target architecture.
- Agent — Int this case the agent cause it set of developers building the product. Here is combination of software engineers, data engineers and ETL developers.
- End/ Purpose — In this case end cause is to build a product to achieve — Data Democratisation.
If I look back at the journey, we have made evolutionary changes in the tools/technologies, the target architecture and even the various set of people have contributed to product building but what is constant so far is end cause — Building the product to achieve Data Democratisation.
My final answer was — the changes are going to be constant. There are going to be changes in the causes like matter, form, agent but at the end, the final cause will remain constant.