Phase 1 — Define
This is the most important phase. Most failures originate here. The objective is not:
What should we build?
The objective is:
What system should exist?
Before generating anything, determine:
Business Capability
Example:
Customer Administration
Domain
CRM
Subdomain
Customer Management
Actors
Administrator
Sales Representative
Customer Service
Use Cases
Create Customer
Update Customer
Archive Customer
Search Customer
Data Requirements
CustomerModel
AddressModel
ContactModel
State Requirements
CustomerState
Service Requirements
CustomerService
CustomerApi
Only after these decisions are made should generation begin.
Mini Exercise
Write the Define phase for one feature before thinking about components or files.
Example
For support tickets, you might define:
- domain: Customer Support
- subdomain: Ticket Management
- actors: administrator, support agent
- use cases: create, assign, close, search tickets