SOW Items
SOW Items are the building blocks of a Statement of Work, breaking down deliverables into manageable, testable components with clear acceptance criteria. Each SOW Item represents a specific requirement that must be satisfied.
Overview
SOW Items exist within Statements of Work (SOWs) and cannot be created independently. Each SOW can contain multiple SOW Items that collectively define the complete scope of deliverables.
SOW Items provide structure to a Statement of Work by:
- Breaking down complex requirements into smaller, testable units
- Establishing clear hierarchical relationships between requirements
- Defining specific acceptance criteria for each requirement
- Linking directly to test procedures that verify requirements
- Enabling tracking of individual requirement completion
This granular approach ensures that every aspect of the project scope is clearly defined and testable, while maintaining a clear relationship to the parent Statement of Work.
The SOW Item Model
- Name
id
- Type
- string
- Description
Unique identifier for the SOW Item.
- Name
sowId
- Type
- string
- Description
ID of the Statement of Work this item belongs to.
- Name
title
- Type
- string
- Description
The title or short description of the SOW Item.
- Name
description
- Type
- string
- Description
A detailed description of the requirement.
- Name
parentId
- Type
- string
- Description
ID of the parent SOW Item (if this is a sub-item).
- Name
priority
- Type
- string
- Description
Priority level (e.g., "high", "medium", "low").
- Name
order
- Type
- number
- Description
The relative order of this item within its level.
- Name
status
- Type
- string
- Description
Current status (e.g., "drafted", "in-development", "tested", "approved").
- Name
ownerUserId
- Type
- string
- Description
The user ID of the item owner.
- Name
createdAt
- Type
- timestamp
- Description
Timestamp of when the item was created.
- Name
updatedAt
- Type
- timestamp
- Description
Timestamp of when the item was last updated.
Creating SOW Items
Via the UI
- Navigate to a Statement of Work
- Click the "Add SOW Item" button
- Fill in the required information:
- Title
- Description
- Priority
- Parent item (if applicable)
- Click "Save Item"
Via the API
// Create a new SOW Item
const newItem = await apiClient.sows.items.create(
"sow_id",
{
title: "User Authentication",
description: "Implement secure user authentication with MFA support",
priority: "high",
parentId: "parent_item_id", // Optional, for hierarchical nesting
}
);
Hierarchical Organization
SOW Items can be organized in a hierarchical structure, allowing for a logical grouping of requirements:
- Parent Items: Represent high-level requirements or feature sets
- Child Items: Detail specific requirements within a parent item
- Nested Levels: Support multiple levels of nesting for complex requirements
To create a hierarchical structure:
- Create top-level SOW Items first
- When creating child items, specify the parent item ID
- Use the drag-and-drop interface to reorganize items visually
Ordering Items
The order of SOW Items can be customized to reflect priority, sequence, or logical flow:
- In the UI, use drag-and-drop to reorder items
- Through the API, update the
order
field of items
// Reorder SOW Items
await apiClient.sows.items.reorder(
"sow_id",
"parent_id", // null for top-level items
["item_id_1", "item_id_2", "item_id_3"] // Array of item IDs in desired order
);
Relationship to Statements of Work
Understanding the relationship between SOW Items and their parent Statement of Work is crucial:
- Containment: SOW Items always belong to a specific Statement of Work
- Completeness: The collection of SOW Items defines the complete scope of the Statement of Work
- Shared Context: SOW Items inherit context from their parent SOW (e.g., project goals, timelines)
- Versioning: When a SOW is versioned, all its SOW Items are also versioned
To navigate between a SOW and its items:
- From a Statement of Work detail page, you can view all associated SOW Items
- From a SOW Item detail page, you can navigate back to the parent Statement of Work
Managing Acceptance Criteria
Each SOW Item should have one or more acceptance criteria that define when the requirement is considered satisfied. See the Acceptance Criteria documentation for details on how to define and manage these criteria.
Best Practices for SOW Items
- Be Specific: Each SOW Item should represent a single, clear requirement
- Appropriate Granularity: Break down complex requirements, but avoid excessive fragmentation
- Consistent Naming: Use consistent naming conventions for clarity
- Complete Information: Include all relevant details in the description
- Logical Hierarchy: Structure items to reflect logical relationships
- Testable Design: Ensure each item can be verified through testing
API Reference
Endpoint | Method | Description |
---|---|---|
/api/v1/sows/{sowId}/items | GET | List all items for a SOW |
/api/v1/sows/{sowId}/items/{itemId} | GET | Get item by ID |
/api/v1/sows/{sowId}/items | POST | Create a new item |
/api/v1/sows/{sowId}/items/{itemId} | PUT | Update an item |
/api/v1/sows/{sowId}/items/{itemId} | DELETE | Delete an item |
/api/v1/sows/{sowId}/items/reorder | POST | Reorder items |
For complete API details, refer to the API Reference.