Project Brief Overview
In any real-world software development project there will be a set of requirements which describe what the system should do in order for it to be considered a success.
Let's review the requirements for the Task Tracking application we are to build.
The Project Brief
The Task Tracker App is designed to help users organize their daily tasks, set priorities, and track their progress.
This application will provide a user-friendly way for creating, managing, and completing tasks, helping users to increase their productivity and stay organized.
Definitions
Task
A task is a specific action item or to-do that a user wants to complete. It typically includes a title, description, due date, and priority level.
Task List
A task list is a collection of related tasks, grouped together for organizational purposes (e.g., "Work Tasks", "Personal Errands", "Project X").
User Stories
Group Tasks into Task Lists
As a project manager
I want to be able to create multiple task lists for different projects
So that I can keep tasks organized and separate Acceptance Criteria
-
A user can create task lists which can contain tasks.
-
Each task list should have a title and optional description.
Update Task Lists
As a project manager
I want to be able to update a task list’s name
So that I can ensure task lists names remain relevant
Acceptance Criteria
- A user can update task lists name and description.
Delete Task Lists
As a project manager
I want to be able to delete task lists I no longer need, or have created by mistake
So that I can ensure task lists remain relevant
Acceptance Criteria
- A user can delete task lists.
Capture Tasks
As a busy professional
I want to be able to quickly add new tasks to my list
So that I can capture all my responsibilities without losing focus on my current work
Acceptance Criteria
-
Users can create new tasks on a task list.
-
Each task should have a title, optional description, due date, and priority level.
Update Tasks
As a user with a busy schedule
I want to be able to adjust the title, description, due date and priority level of my tasks
So that I can focus on what's most important
Acceptance Criteria
- Users should be able to edit tasks.
Delete Tasks
As a user prone to making mistakes
I want to be able to delete tasks I have created by mistake
So that my task list of tasks is correct
Acceptance Criteria
- Users should be able to delete tasks.
Complete Tasks
As a productive user
I want to be able to mark tasks as complete
So that I know which tasks I have completed and can focus on the next task I need to complete
Acceptance Criteria
- Users should be able to mark tasks as complete.
Task Completion Progress
As a productive user
I want to be able to see my task list’s task completion progress
So that I can stay motivated and understand my productivity
Acceptance Criteria
- Users are informed of their completion percentage of tasks in a task list
Bonus Features
- Users can set reminders for important tasks.
- The app should provide a way to filter and sort tasks based on due date, priority, or list.
- The app should provide a dashboard showing task completion statistics.
- Users can search for tasks across all their lists.
- Implement a tagging system for tasks to allow for more flexible organization.
- Add the ability to share lists or individual tasks with other users.
- Integrate with calendar applications to sync due dates and reminders.
- Implement a Pomodoro timer feature to help users focus on tasks.
- Create a gamification system with points and achievements to encourage consistent app usage.
Project Brief Analysis
The project brief itself is broken down into a few different sections.
Summary
The first is a brief summary of the project – that it is an app "designed to help users organize their daily tasks, set priorities, and track their progress".
Definitions
Next there are some definitions. They're captured here to make sure that we're all using the same words to mean the same things.
Here we have a definition of a Task as a "specific action item or to-do that a user wants to complete. It typically includes a title, description, due date, and priority level". This is great as it tells us the sort of members our Task class might have, but more on that later.
Then we have a definition for a Task List, which is a list of tasks, simple enough. But the description tells us that a Task List has a name member – a useful piece of information when we come to implement it.
User Stories
Next we have a list of user stories. If you're unfamiliar with this pattern, a user story describes what a user wants to do from the point of view of that user.
This little nuance is enough to give us some additional context, over “the system MUST do X”. More context helps us make better decisions during development.
Each user story follows the format as a, I want, so that. In the first case:
As a project manager I want to be able to create multiple task lists for different projects So that I can keep tasks organized and separate
We can see from this little story that there's a requirement of a user being able to create multiple task lists.
Acceptance Criteria
Following each user story we have a set of acceptance criteria.
Acceptance criteria are statements which can evaluate to true or false.
The idea is, when all acceptance criteria evaluate to true, then the user story is considered complete and finished.
For this user story we can see the following acceptance criteria:
- A user can create task lists which can contain tasks.
- Each task list should have a title and optional description.
Our implementation would need to work in such a way to make both statements true.
Summary
- We'll build a task tracking app
- The application uses Task Lists to group related tasks together
- Requirements are defined through user stories and acceptance criteria
- Additional bonus features are available for further practice