Thoughts on Architectural blue print
Earlier this year had a wonderful time when I was on vacation in Barcelona. One of the things I visited was La Sagrada Familia. The amazing cathedral in Barcelona, designed by the famous architect Antoni Gaudi, I recommend a visit if you ever is in Barcelona. After I came home I started to think about issues I often find when I come to companies and looks at their Analytical system(s), it is often a mess and when you ask an architect for a blue print of their vision/architecture of what they are to achieve with the analytical system(s) they are building, the documents are often on so high level that it can’t be used support any design for what they should build or it is a chart of what tools they should use or a list of reporting requirement. I find it very strange that in our industry, analytical system design and implementation, there is a very strong ad hoc approach. I would say that analytical systems are one of the harder things to design and implement in such way that it is maintainable, scalable and have a long life span. I would say that without a vision/architectural blue print of how/what/when/were/why data for analytical use is to be produced and consumed is such way that the solution will be stable over a long time, you will not succeed, long term.
Some would blame the agile movement when it comes to project/sprint approach but I disagree. Once again, the La Sagrada Familia, is a project that has been ongoing for over 100 years and is planned to be fully finished by 2026, 100 years after Antoni Gaudi died but the Cathedral is functional today and can hold service and also be used as a huge tourist attraction, so it is already delivering business value even it its built one sprint at a time, but still the blue print vision/architecture is followed, they know what to build and how and when, since they have a blue print to follow, knowing what needs to be achieved. One great example is that the highest tower, the mid tower, is not built yet, but the pillars that shall hold up the tower is already designed and built to handle the stress of the mid tower when it is built. Without the vision and the blue print that would not have been done.
So is this possible in our industry? I would say that it should be mandatory to get that blue print in place before you build anything, the blue print is not about the exact analytical function, but on how the system framework should work, how things should be implemented and where in the architecture they should be implemented, and what we want to achieve with this system, from a non-functional requirement view. We need to be engineers in our mindset, not “coders”, everything can be solved with code, but it is seldom maintainable and/or scalable in the solution as whole. The mentality – let’s try it out and see if it works, will not create a stable, maintainable analytical system, neither will the approach – the end user wants this, so let’s build exactly that, without understanding how it affects the whole system, will also fail from a long term perspective.
One thing that I think drives our industry into the “coding/build” mentality instead of the “engineer/design” mentality, is that we are one of the few industries that gets payed to redo bad solutions. That is not very common, in other design/building industries, there you are responsible of your design/product and if you made something wrong, you will have to redo it – without payment, you might even be sued for more money since you might have wreaked some ones daily work or living. So you take care, and think it through on a full scale before committing to building anything.
But our industry don’t have to design or plan how our solution will work in a whole, because the people hiring us, will pay us to redo it later, they might even pay us three, four, five times to get it right and then after a few years pay us again to rebuild the whole solution because it was not scalable and/or maintainable, since we didn’t really understand how the whole system should work. Our accountability is almost none existent.
So before we build our next analytical system(s), please get the non-functional requirements inplace, draw the architectural framework and set the how/what/when/were/why things will happen in the architecture, before we build the first analytical function/report.