I work on a variety of projects. They vary from traditional waterfall to modified (incremental) waterfall to various agile approaches including Scrum. As you can imagine, it can be difficult to keep all the rules straight and determine what artifacts, deliverables or work products are due during any given week.
[To add a little more complexity, I perform business analysis, project management, user interface design, and in my spare time, I write software and respond to user problems. I get tired just thinking about it all.]
The subject of deliverables for agile projects seems to be controversial. Some folks appear to believe that the source code and system builds are the only things that really matter. Everything else is a work product, that is, something that can be discarded at the end of the project.
For a small agile project having a short lifespan in a small company, I agree. Focus on the source code. Get the system built and move on.
For a large agile project expected to have a long lifespan in a major enterprise, a few more deliverables will be needed. The following list is food for thought.
I’ve produced most of the following artifacts over the years though I have never seen ALL of them produced for a single project. Don’t even think about doing that!
Comprehensive List of Development Artifacts
- Build Instructions
- Change Control (post-production)
- Completed System
- Operations Guide (Backups, etc.)
- Release Notes
- Final Source Code
- Support (Help Desk) Guide
- User Documentation
Database or File System Deliverables
- Data Flow Diagram
- Data Model
- Activity Diagram
- Class Diagram
- Class Responsibility Collaborator Model
- Collaboration Diagram
- Deployment Diagram
- External Interface Specifications
- Flow Charts
- Network Diagram
- Package Diagram
- Sequence Diagram
- Use Case Diagram
- Defect Reports
- Regression Test Suite
- User Acceptance Test Plan
Requirements Modeling Deliverables
- Business Rule Definitions
- Constraint Definitions
- Use Cases
- Use Case Scenarios
- Vision Statement
- Workflow Diagrams
User Experience Deliverables
- User Interface Flow Diagram
- User Interface Prototypes
- Installation Scripts
- Interim System Builds
- Source Code Updates
- System Architecture Document
Decide which of the above are important for your project. Think about artifacts that will be short-lived (work products) and don’t spend a lot of time on them. Work products are intended to convey information needed during the development process. You will likely archive them but not refer to them after the project ends.
The deliverables are artifacts that will live on and be updated after the development team finishes its work. Examples include final source code, user docs, support docs, some technical docs, etc. The development team may not create all of these but will need to be involved in supplying information and reviewing drafts.
If you want to do enterprise agile, I believe you need to accept a broader definition of deliverable.
What have I missed? Which artifacts does your team use? Let me know.