Problems introduced by ignoring generating kernel and breaking modelling relation
Consider, as an example, the case of displaying a 2D shape—such as a circle—on a computer screen, where the screen itself consists of pixels.
The absence of a generating kernel means that, instead of using geometry to generate the coordinates of each pixel on the screen (to assign them values), we have to fix the coordinates of each pixel manually.
In this metaphor, the 2D shape we are trying to display represents the business function of the software, while the coordinates of each pixel represent the elementary components of the software implementation.
The coordinates of the pixels forming a circle represent the state space of the implementation, including all constructs of a programming language such as classes, variables, values, and so on.
The result is a dysfunctional form, but the fact that the form is dysfunctional is not known at the moment of it’s generation before the moment of it’s actual usage - until production incidents occur.
loss of context : logging, monitoring, alerting, observability, etc are all done at the wrong level - each pixel does not know that it is part of the circle.
Bugs become possible because each pixel is fixed independently from others, since there is no generating kernel
scaling development resources due to amount of work requires breaking up the work into teams each working on delivering only a part of the solution.
But there is nothing built into the system that would guarantee that what one team delivers is linked to what there other one does.
Here TEAM A and TEAM B are in perfect synchronisation, while these are out of sync with TEAM C, resulting in a buggy delivery.
Composition mode is inefficient (sum only)
Even if initial structure is copy-pasted, the copy-pasting itself is done manually and soon a change will have to be applied manually as well to every replica (the code doesn’t know these are replicas).
The increased volume of work - a large number of parameters to fix.
We need to fix each pixel individually.
There is no generating kernel :
Need to fix 12 parameters to get 12 points.
No gain in scale (between effort and results)