Skip to main content

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