How to decide on architecture for your company, with no fear — part 2

Erez Carmel
Israeli Tech Radar
4 min readMay 4, 2023

--

Part 1 recap

In the first part I explained why it is important to align technologically, and how it helps prevent technological confusion. Before even looking at relevant technologies, we need to make sure that we have partners on the way, and how important it is to recruit everyone who is relevant for the benefit of the process.
As soon as we have the answers to the questions of why the process should be done, and with whom it is done, now we are ready to dive into the practical part.

Choosing the right technologies

The search for the right technology is endless. Every day new technologies released, there will always be one technology that will do something better than another, and it is very easy to lose direction already at the stage of searching and choosing the technologies.

Before I start with the decision making, I ask myself one simple but critical question: What is the right technologies for the organization? Not what is the most advanced, not what gives the most options, not what is the trend in the market.
It is important to look at the organization:

  • What are the organization needs?
  • What is currently most important to change to improve the technologic status?
  • What is the knowledge of the developers in the organization?
  • What are their concerns about changes?

There are many questions surrounding the technologies, and you will get the answers to most of them from the people who will actually implement the architecture.
In the first part we talked about recruiting the people of the organization for the benefit of the expected change, and now we will gather the technological people and listen to them.

It is true that we determine an architecture, but in the end it is people who have to use it, and they are human beings with different concerns, needs, abilities, and once you let them be part of the process it is easier to get them to support it and get a sense of belonging.
Gathering a brain storming circle of both experienced and junior developers is a critical step for the process success.
In this circle, which will meet every 1–2 weeks, according to the urgency and need, the urgent problems on the part of the developers, their thoughts on how development process can be improved, will come up for discussion, and thus it will be easier to see the direction of technologies suitable for the organization and the developers.

It is true that when there is more than one person in a thinking circle, there are at least 1000 opinions, so it is important to manage this circle, and to remember that it is an advisory circle, not a determining one, and it is important to make this clear from the beginning to all participants.
It is important that the main point be clear to everyone: the circle helps to understand the current situation, and advises how the development can be improved, but the decision-making remains with the architect who leads the circle. for better and for worse.
We can never make decisions that everyone will agree on. As I wrote, everyone in the circle and organization has their own needs, abilities, and ambitions, and it is important not to get into conflicts with the developers.

Now that we have heard the suggestions and ideas of the developers, our work is much easier. We know what most developers think is the right thing to do, a discussion has already been held about it among everyone, and decisions can be made about the right technologies for the organization itself.

When I say that it is necessary to decide on the right architecture for the organization, it is not only what is right for the technology people who work in the organization now, but also for the purpose of recruiting technology people in the future.
Maybe the organization is strong in certain technologies, but in the market it will be difficult to recruit people with relevant knowledge for these technologies in the future.
Finding the balance between what would be correct and convenient for the organization to implement and what the leading technologies in the market are, it is something that is very important to do to prevent the organization from reaching that point where it has to change architecture again soon.
Many articles on the web will give you a snapshot of the most common technologies are today, and knowledge requirements in recruitment ads of other organizations can help to understand where the market is today.

Bottom line

The architecture success depends on the people who will implement it. Both those who are currently in the organization, and those who will join the organization in the future.

Now we know what the needs and capabilities of the organization are, and what technologies dominate the market, we are ready to make decisions and write an architecture document that will summarize everything we have learned.

In the next article, I will explain how I write an architectural document. Don’t worry, I will add an architecture document template you’ll be able to use.

I will also explain what do we do with the document, and what are the next steps for making sure our decisions are fulfilled correctly.

Stay tuned…

That’s all for today, let me know what you think. See you on part 3.

Happy coding! 🤓

--

--

Erez Carmel
Israeli Tech Radar

Full stack developer, consultant & lecturer, experienced with developing interfaces on various platforms.