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: 
 
  - 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