Top 8 Areas to Consider for Application Architecture Review
This article represents top 8 areas to consider when you are going to review an application architecture. Please feel free to comment/suggest if I missed to mention one or more important points. Also, sorry for the typos.
- Hardware and Operating System: Following areas need to be reviewed:
- Hardware and operating system choices
- Financial analysis
- Processes for evaluating hardware and operating system
- System capabilities involved in high-frequency, high volume data transfers
- Software Services and Middleware: Following areas need to be covered:
- Coding standards
- Data structures
- Architecture layers
- Design patterns (stateful vs stateless)
- Design for change
- Communication protocols
- Code review processes
- Unit testing
- Applications
- Infrastructure: In case, the applications are infrastructure applications, one must examine if the functionaility provided is unique and not met by one or more of the standard products.
- Business: As like above, one must validate the functionaility provided are unique enough.
- Integration Approach: Integration touch-points and techniques are reviewed.
- Information Management
- Data values: Business processes/actions around data management (creation, update, delete)
- Data Definition: Data model definitions, data modeling
- Data security
- Hosting, Data types, and sharing: Which DBMS and why?
- Common services: Standardized distributed data management services (consistency checks, data edits, validation, encryption etc).
- Access methods
- Security: Following key areas need to be reviewed:
- Authentication: Process flow of user authentication with the application
- Authorization: Process flow in relation with how users access the application and associated data.
- Access controls including external access considerations
- Audit trails, Audit logs
- Data security (Data at rest, Data in motion): How data is protected in rest (sitting in database) and in motion is reviewed.
- System Management: Following areas are covered as part of system management review:
- Software configuration management
- System administration
- Monitoring
- System audit logs
- Overall Architecture
- General: Areas such as following needs to be reviewed:
- Integration touchpoints
- Computing resources requirements
- Programming languages
- Performance requirements (User requests volume, stress test techniques etc)
- Client-server architecture
- Client: Following areas need to be reviewed:
- Look & feel consistency
- Whether functions other than presentation is performed on UI side
- Screen-to-screen user navigation
- Async and sync coomunication support from the client
- Local data storage
- Application server: Areas such as dedicated vs shared server need to be investigated. Dependencies with other applications on same application server need to be examined.
- Data server: Areas such as dedicated vs shared data server need to be investigated.
- Methods & Tools: It is mostly focused around reviewing the processes laid down for SDLC governance. Following areas need to be reviewed:
- Processes used to manage different part of the projects
- Documentation around processes
- Team awareness of these processes
- Tools in place to support the processes
- Issues management and related processes
- Metrics to review the processes
- Process improvement metrics
I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin.
Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.
Latest posts by Ajitesh Kumar (see all)
- ROC Curve & AUC Explained with Python Examples - August 28, 2024
- Accuracy, Precision, Recall & F1-Score – Python Examples - August 28, 2024
- Logistic Regression in Machine Learning: Python Example - August 26, 2024