Akshay Karthik ยท Architecture/Feature Review Questions

May 03, 2020

When faced with a new challenge, I tend to jump directly into vim and hack away. That's great for personal projects, but for something more long term, I use this checklist to make sure I think through all aspects of a problem space.

This is a starting list, and it is by no means conclusive but rather a starting point for discussion with developers, PMs, designers, etc.


Requirements

  • What is the high-level feature?
  • Who are the users?
  • What are the high level flows?
  • How many users/how often are they hitting the feature/system?

External Considerations

  • Third Party Dependencies
  • Security/Privacy/Legal Requirements
  • Reporting/Metrics/Monitoring

System Design

  • What are the dependencies to this feature?

    • APIs
    • Databases
    • Frontends
    • Cloud Services
    • For each dependency:

      • What happens if the application fails
      • What are your isolation boundaries?
      • Is there a degraded experience possible?
  • Ops Questions

    • What's the monitoring approach?

      • Backup/restore strategy?
      • Downtime requirements
  • Data Questions

    • Storage/Retrieval requirements
    • Performance Requirements (data structure/indexes)
  • Frontend Questions

    • Error/Loading States
    • Responsiveness
    • Permissions/Visibility

Implementation

  • Does your team have all the knowledge it needs to accomplish the task?
  • Who are the right resources to reach out to for questions/concerns?

Delivery

  • How is this tested?
  • What's the rollout like (feature flags? beta users?)
  • What is the support story? (Support tools? Documentation?)
  • What is the monitoring story? (Production Monitors, Alerts, Etc.)