The set of questions need to be asked by Solution Architect during the pre-sale process.
Documentation & Training
- What kind of documentation do you want to see on the project? Who will be reading it?
- Do you need any kind of guide or an online FAQ?
- Are there any speed restrictions, throughput requirements, response time requirements for the system?
- Are there any processed data capacity limits?
- Are there any requirements that vary depends on the time of day, day of the week, user type, etc.?
- What do we need to know about the system performance?
Error Handling and Extreme Conditions
- How the system should behave while I/O errors occur?
- Do we need to track errors by registering them?
- Do we need to group errors in reports by categories, business channels, etc?
External Interfaces & Interoperability
- Are any data coming from external systems?
- How does data exchange with external systems should work? Realtime or by schedule?
- Are there any limits on external systems usage?
- Which parts of the system most probably will be changed soon?
- Which parts of the system have the most priority for future modifications?
- Which data processed by the system should be secured?
- Who, when, where can have access to the system?
- Are there any systems handling authentication, authorization, accounts, identity?
- Are there any systems that should be authorized within the system? What kind of roles and permissions should they have?
Disaster Recovery & Business Continuity
- How often do we need to perform a backup?
- Who will take responsibility for the backup procedure?
- Which data need to be saved in case of disaster?
- How fast the system should recover after a significant disaster?
- Will it be ok if the system will not work 5 minutes per day? What will happen in this case?
- What is the maximum system downtime per 24 hours?
- What is the maximum time for detecting disaster or failure?
- Who is receiving reports regarding system failure or maintenance?
- Which notification channel will be used? SMS? Messengers? Email?
- What kind of messages are in the system?
- What kind of limits were set as an alert reaction?
- What is the maximum incoming bandwidth?
- What is the maximum outcoming bandwidth?
- Which parts of systems need to have performance monitoring?
- What kind of thresholds can be established?
- What are the expectations of the system response time?
- What are the expectations of the system bandwidth?
- What are the expectations related to RAM, CPU, HDD?
- What is the expected amount of users?
- How many users are expected to do any action at a single point in time?
- What kind of load peaks is expecting to be?
- Which are the requirements for caching?
- Which data need to be cached?
- Which scalability requirements are in the scope of design?
- Which scalability requirements are out of the scope of design?
- Which parts of the system can be / must be scalable?
- What is the basis of scalability prediction?
- What is the possible source of growth: users, customers, transactions?
- Which components can be vertically scaled?
- Which components can be horizontally scaled?
- What are the DB/persistence layer scalability requirements?
- Which parts of the system are static and don’t change?