How to make sense of your current architecture?
Dhanush Hetti
Hands-On Startup Entrepreneur | Product-Led Growth from Launch to Scale | CTO | CPO
What is your architecture? This is the fundamental question for many in engineering. Especially people who join an engineering team that has working software. This question seems very simple and a logical one. Surprise surprise every company I have been at, this simple question has been the hardest question to answer.
First you ask your peers or your manager, then you slowly work your way up to your Chief Architect and CTO. I bet you the answer will be very different based on who you talk to, leaving you with more questions than answers.
Why is it so hard to get a definitive answer to this question? This is the second logical question you would be asking before you give up and get on with the routine or just writing code based on your limited knowledge and being apart of the broader feature factory
Let me try to take a stab at answering why it is hard. As a software company evolves with time, some of the knowledge is lost to attrition, systems have evolved beyond their creator, documentation has gotten stale, and the engineering organisation has become a feature factory to serve the ever growing demand for new features that needs to be shipped yesterday.
Any fool can know. The point is to understand. - Albert Einstein
Don't be surprised if no one has the answer to the above question of what the current architecture is. Most of the time none of the developers really know why we do things the way we do them. New engineers jump in to writing more code than asking these first principle questions or trying to make sense of the current architecture. People who cannot get answers just leave after 6 to 12 months in frustration. These are the people who you should keep. This article is written for these people who care about what they do and they don't know how to find the right answers.
No matter what your title is, if you are part of the engineering team it is important to make sense of the current architecture and understand why certain things are done the way it is done. These questions unanswered and unchecked could become an architectural ticking time bomb waiting to explode with serious business consequences. Engineers who just code without asking any questions are adding to the technical debt
No architecture is perfect and there is no one size fits all architecture. I have seen successful businesses build on monolithic architectures to micro service based architectures. It is important to make sense of the current architecture in order to help make future decisions to evolve your tech stack to meet the future demand. You have to know the past and the present to make the right decisions for tomorrow.
How do you make sense of the current Architecture?
I suggest to follow these 3 simple steps to get a sense of the high level architecture and how it interacts with each of the underlying systems.
I am sure many onboarding programs will cover the system architecture and best practices. This is not enough as most of the time the architecture has evolved beyond what is documented.
领英推荐
Use the product like a customer would and talk to non tech teams by asking questions about the underlying systems
Understand the history of the company evolution - Ask your most tenured colleagues
Build a Context Map of the business to get a high level view of the architecture
By the end of this exercise an engineer should know at a high level what the architecture of the enterprise would look like. What are the systems that is supporting the business, what those systems are doing, and how they help create the overall architecture. Last but not least you will understand the dependency between these systems and how each system interacts with each other.
This context map should ideally be kept up to date and evolved over time. This is extremely useful for future decision making and allocation of capital. For CTOs and Chief Architects, this is the starting point to any strategy you put forward to evolve your business. If you don't have a context map you are shooting in the dark and your decisions are more likely to be wrong. The success of your strategy depends on how well you make sense of the current architecture of your enterprise.
Dhanush Hetti
CISO & VP of Technical Operations at Aliaswire — Ex PayPal, Paydiant
3 年Very insightful article. Excellent writing! Thank you for sharing this Dhanush Hetti
MTS Senior Engineer
3 年Well written Hetti, keep it up !
Education Professional @ Westford Public Schools | Business consultant
3 年Thanks for the knowledge share and enrichments you are doing.
Consulting Partner @ fractal.ai
3 年Love the practicality of this. An outside-in approach helps engineers experience an architecture, which in turn helps them make the right development decisions in terms of performance tradeoffs, scalability, portability, etc. And maintaining a market-based context helps minimize the duration between MVP and PMF, as well as minimize the potential for any self-inflicted, non-market-based pivots.