Building the house of your dreams
Imagine you want to build the house of your dreams. You have your piece of land, some money in your pockets and above all, you have the dream: you know (more or less) how the house will look like from the outside, you are sure (somehow) what will be the layout of the interior and you are certain (in a high level) what specialists you should bring to make this happen. All you need is the “yellow pages” and some optimism; the specialists will do the rest.
And then they come: the plumber, the flooring guy, the electrician, the painter and the furniture company, yet for some reason, instead of a house being built, your dream house, the one you put all your efforts, money and hopes, you find yourself in a total chaos.
You ask yourself, what went wrong? How come all these specialists turn out to be so incompetent? How come they keep moving around the construction site, misusing the material, shouting and fighting and wasting the time?
“Building a house is very political” someone may tell you. Well, you know it very well, it is not. Building a house requires first of all one crucial step: Design.
When you build a house, you don’t go to the “yellow pages” and randomly find experts. Before you even start, you go to one person: The Architect. Obvious, isn’t it?
Between building a house and Banking Projects
I like the thought that a banking project is pretty much like a building a house, a dream house. The customer – the Bank – has a dream: replace the old IT systems with flashy new ones that will improve the bottom line, increase productivity and provide a better customer service.
The interaction between you – the house owner – and an architect is always the same: you present your budget and your dream and expect the architect to come back to you with an initial layout (a Conceptual Design). But your expectation goes beyond just a nice layout; the architect should include in the design some additional elements that you may not be aware of (and shouldn’t since the architect is the expert): a proper functional design (you don’t want the kitchen in the middle of the master bedroom), a proper structural design (you don’t want to wake up in the middle of the night without your roof), compliance with regulations (you don’t want the local authorities to kindly ask you to evacuate your dream house since it doesn’t meet the local regulations) and more.
In a banking project, the architect (solution architect) should play exactly the same role: translate the dream and the budget into an appropriate solution that will satisfy the needs and willingness of the bank.
It should start with understanding what is that dream that the bank presents; in our language is called “understanding the bank’s requirements” from a business, functional and technical perspective.
The Solution Architect then must provide the bank with that “layout” – the Conceptual Design. Once this design is agreed (and we know there will be disputes over that design), the Solution Architect should proceed with a Detailed Design of the solution, yes, just like you would expect with the design of your house.
Then, and only then, the experts may come in: business, functional and technical experts. They should follow the design, implement it as dictated by the architect.
So how should we position the Solution Architect?
Yes. There will probably be questions and even objections to the design by the implementation team, just like when building the house: a plumber may indicate to the architect that a pipe can’t run through the planned path due to some engineering constrain; an electrician may complain that there is not enough space for the outlets in a room and so on. We consider these “hurdles” to be part of the building process and we count on the architect to adjust the design accordingly. In a banking project, we should expect exactly the same: a technical expert may make the Solution Architect aware of an engineering constrain; a functional expert may raise an issue with the functionality of the current software version. The Solution Architect should be the one that adjust the design accordingly and enable the implementation team to proceed with the project and fulfill the objectives: to provide the bank with their dream (within the budget, of course).