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