System Design Checklist