Skip to main content

Knowing the limitations of an architecture is the key to preventing technical debt

Monolithic applications. Microservices.
There are different types of architectures and they all have their pros and cons. Believing that one type of architecture ONLY has advantages and no disadvantages is not going to help your team and your organization.
For instance, the microservice architecture has a lot of advantages, but if you don’t understand the microservice to microservice dependencies, it can easily get out of control and it becomes a disadvantage.
When pros and cons of a specific approach are summarized at the beginning of a given project, what gets forgotten is noting down the disadvantages and making sure that they don’t turn into technical debt for your tech teams.
It is very acceptable to have limitations in your architecture or a specific part of your system as there is not such thing as perfect architecture. We are always on the path to achieve that architecture elegance and staying on that path without reaching the perfect elegance is a norm in software engineering dynamic environment.
Now it is time to review your architecture and note down these limitations and put checks and balances around them in order to prevent these limitations turning into technical debt and spreading through the healthy components of your architecture. Knowing and controlling your limitations is the key to preventing technical debt.
Thank you for reading.
Almir Mustafic (Solutions Architect & Software Engineering Leader)

Comments

Popular posts from this blog

10,000 foot level view in technology

10,000 foot level view in technology: How useful is it? What can be done at this level? If the 30,000 foot level is the CTO level, then consider the 10,000 foot level as the level that software engineering managers and directors operate at. To achieve the success at 10,000 foot level, you as a software engineering manager need to dive deep into technical details, help the team lay the foundation from BOTH organizational and technical side. It is the little moves that get the team to this level. Once the team’s applications and results at that level, then you as a manager have ability to perform the high level analysis and troubleshooting without necessarily being in code on daily or weekly basis. Therefore, your ability to troubleshoot technical issues at the 10,000 foot level is a testament to the great work of your team. Go TEAM !! Almir Mustafic

great software engineering skills?

great_software_engineering_skills = great_coding_skills + all_around_problem_solving_skills Yes, you can be a great Java developer. Yes, you can be a great C# developer. Yes, you can be a great Python developer. However, don’t associate yourself with a programming language because you are limited by the boundaries of that language. What you should be is a problem solver and your horizon automatically expands. I know :) You can still have a favorite language, but don’t associate yourself only with it. Happy Saturday! Almir.

With the trend of Javascript Frameworks comes more responsibility

With the trend of front-end Javascript frameworks, there is more and more logic pushed to the client side in the Javascript code. With all this comes more responsibility when we talk about security. It requires a lot of discipline. Front-end and back-end (API) developers need to work very closely together so that secure information is not revealed in the Javascript code. Almir Mustafic