Architecting at 99x
99X is a company that specialized in building software products and platforms. During the last decade, we have gathered immense knowledge and experience in architecting software products and platforms. This knowledge base is an attempt to share such learning for the benefit of the community.
#
Why Architecture?Let's put things into perspective. As we all know, architecture is vital for any digital product. We typically call 'structure of structures' as the architecture. The architecture comprises the most crucial design decisions of which the cost-of-change is of the highest.
Suppose you are going to build a house. The house's foundation should deliver expected qualities based on soil in the land, the size of the building, and not forget the requirements of the residents. The needs of the residents are prone to change over time; however, fundamentals such as the house's layout, the strength of the base, and electrical and plumbing lines are difficult to change after initial laying out. In this essence, the digital product architecture is not much different from the architecture of a building. That's why the architecture decisions need to be carefully analyzed and provisioned as they are costly to change later.
#
The Challenge for ArchitectsThe architects have to take these decisions one way or the other with the limited information available at the early stages of the development. There is no right or wrong decision at this level, and one must balance the different tactics to gain the most optimal solution to achieve the business outcomes. So the architects need to be savvy with experience to find their way through to take these decisions for the best interest of the software product at hand.
After analyzing the software product or platform's quality attributes, the architect must make these decisions and address the tradeoffs across them.
Let me take an example to explain this. Imagine you are a startup with a short time window and limited financing to enter the market. What's most important here is to keep the Architecture simple enough for faster software delivery to the market. And if the software product is in the financial domain that handles payments and transactions, there is no shortcut for security. Therefore, though speed is needed, the product must comply with the required level of Secops, such as secure coding, vulnerability assessment, and active monitoring.
And one of the main challenges with software products is that things change over time due to market dynamics. So the architects need to address the changes depending on their impact.
#
Establishing the ProcessesProduct teams should establish processes at the project's inception and keep track of the product architecture drift.
Also, with the rapid phase of changes, there should be practices to share the learnings between architects to make their decisions effective over time.
So in this knowledge base, we will cover different processes software products and platforms companies should follow when it comes to architecture. In addition, we will continuously share case studies to help you learn from both our success and failures for a better world.