As another example, I want to show you the architecture of the
iRods system. This is a data grid system that was built by
a biologist. And it's a system for storing and accessing big
data. So what I'm going to do, I'm going to do the same thing
that I did for the Linux system. I'm going to show you
here, on the left hand side, this clean prescriptive architecture for the
iRODS system. And I'm going to show you here on the right the
actual architecture of the system. The
descriptive architecture of iRODS. So here,
even if we don't go in and look at the details, you
can see very easily that the system is badly drifted and eroded
with respect to the way it was supposed to be. Continuing
with the examples. What I want to show you now is the
view of the complete architecture of HADOOP. As many of you probably
already know, HADOOP is an open source software framework for storage and
large scale processing of data sets. It's very broadly used. And here
is a picture of the architecture, and I hope you can see it
because the architecture is so complex and so broad and so
intertwined, and in order to be able to represent it here
in one page, I had to zoom out quite a bit.
But also in this case, you don't really have to look
at details. The important point here is that in this software architecture
61 out of the 67 components in the system have circular
dependencies. Which means that they depend on each other in a
circular way and this is normally not a good thing and also
in this case a few developers when shown the diagram had no
idea that the structure of the system was so complex and messy.