Solution Design Principles
"Everything should be made as simple as possible, but not simpler." ~Albert Einstein
This is another of my blog about IT solutions design principles which are general rules and guidelines.
Whether you're a seasoned pro or just starting out, get ready to discover some fresh ideas that will take your IT solution architecture game to the next level!
Use your first principles thinking to understand why. If you haven't read my other blog about it, read here.
Enjoy!
When it comes to solution design principles, we all have some ideas in mind, right?
Here are some of mine.
You don't need all of them but some of them are just necessary. However, each of them should be clearly related back to business objectives and key architecture drivers.
Scalability - a solution must be capable of (dynamically) increasing itself according to the demand (horizonal or vertical). We're in 2023 now people.
Security (all about CIA) - a solution must be secure regarding the communication between components, data at rest/in motion, accessibility of service administrations etc.
Resiliency - a solution must be capable of being stable also at times of intensive load can recover from expectational states.
Fail-over capability - a solution must be able to continue working even if instances of components are not available.
SPOF (Single Point of Failure) - it must be clear which components are crucial to mitigate potential risks.
Accessibility, Availability - a solution must be deployed as close as possible to the users (low latency) and must guarantee a high up-time SLA.
Ownership - All components must have clear ownership / accountability.
Build comprehensive documentation (HLD/LLD)
Technology independence - a solution should be independent of specific technology and there can operate on a variety of technology platforms.
So, besides those functional requirements, there're several other things that solutions architect can consider listed as below:
Cost optimization - finding the perfect mix of technologies and infrastructure to solve the problem, and to spend a minimum of money. (Reuse before buy, buy before build)
User Experience - supporting the UX team find the ideal user interface if you're building a product/process/service or software, guiding users intuitively through the solution.
Performance - support with load testing to ensure the expected number of concurrent users and client services.
There are more based on TOGAF but hey, those are structured set of ideas that collectively define and guide our organization, from values through actions and results.
Thanks for reading my blog!