Do you conduct an architecture review every few Sprints?
There are 2 main parts to any application. The UI which is what the customer can see and provide feedback on, and the underlying code which they really can't know if it is healthy or not.
Therefore it is important to conduct a 'test please' on the internal code and architecture of the application.
Ideally conduct a small 'Code + Architecture Review' for every sprint. Assuming a 2 week sprint, schedule a 4 hour (2 architects x 2 hours) review.
The following are items that are addressed in an architecture/code review:
Background information/overview of the project
- Current system
- Objectives of the system
- Number of users (internal, external, edit, read only)
- Current technologies
- Current environment (SOA, SOE)
Points for discussion
- Rich client
- Web client
- Smart client (any disconnected users?)
- Persistence layer (e.g. Database)
- Business layer
- Integration - external systems
Requirements for 'package' software
- Reporting Services
- Accounting packages
- Usage Telemetry
- Performance Monitoring
- Data migrations
- Data reporting
- User experience
- Staged implementation
- In parallel
- Disaster recovery
- Change control/source control
- Build Server
- Design patterns
- Reliability (failover servers?)
- 'Sellability' i.e. is the solution appropriate for the client?
Note: If you are using Enterprise Architect, be aware of technical debt:
- Add a datetime of the last time the diagram was modified so we have an indication of when it is out of date
- On your diagrams, be aware that some parts are done and some are not.