In the HacknPlan system, the task is the primary component. It represents a small and specific piece of work to be done, and it can be classified by different aspects or characteristics relative to your project organization.
The lifecycle
A task has a lifecycle that begins when it is created and ends when it is completed or deleted. Throughout its existence, a task can pass through various stages, which typically include the following default ones:
- Backlog: The backlog is a container for future work. If you’re uncertain about when to start a task, then you can add it to the backlog. However, it’s also possible to add tasks directly to boards.
- Planned: HacknPlan is designed for iterative development, so when a task is ready to be started it should be assigned to a specific kanban board, where the work is tracked. This puts the task in the Planned stage, meaning that it will be accomplished during a specific milestone but it hasn’t been started yet.
- In progress: This means someone has already started working on the task.
- Testing: Most of the time, a task is somehow evaluated after is theoretically finished, to verify that it fulfilled its purpose. This stage is for that matter, and the testing will vary a lot depending on the type of task, such as testing a feature in the game, evaluating a concept art or a music track, checking a model works properly in the engine… It’s quite common for a task to move between In progress and Testing stages several times as part of a correction and re-evaluation process.
- Completed: When the task has been done and verified, it goes to the Completed stage. The task keeps assigned to the milestone after is completed, this way you can go back to finished milestones if you want to check something from the past. A task can be reopened at any moment.
If a task is moved to another board the status of the task will be “reset”, meaning it will go back to the Planned stage.
Note: HacknPlan Studio users can customize their stages, adding new ones, removing the defaults or editing the name, logo, color and other properties. However, we strongly recommend keeping it simple; creating many columns could make the board more difficult to maintain and less clear to visualize.
Besides the stage, during the lifetime of a task, it can be assigned to one or several team members. This assignment is a bit open to interpretation, meaning it would represent a different thing depending on your work style. While many producers like to assign tasks to users right from the beginning (so the user-task relation means duty) and keep the assignation during the whole lifecycle, other people have a more agile approach, where the assignation means the user is currently working on the task, so users are assigned (and many times self-assigned) and unassigned during the life of the task.
Classification of tasks
As we said previously, tasks can be classified by different aspects that allow you to organize them properly and help you better manage them. Some of these characteristics are mandatory, which gives you a very reliable and strong structure, and some of them are optional, giving you more flexibility:
- Category: You can classify your tasks depending on the discipline they belong to, like “Programming”, “Art”, “Sound”, “Marketing”… The category is a mandatory field that reflects this classification, which is used to split the kanban board into different role-based boards, extract metrics about them so you know how much you work on each discipline, and also to apply permissions based on those roles.
- Game design element: One of the features of the game design model is the ability to create a dynamic structure of concepts, which allows for better organization of documents and tasks. By assigning a game design element to a task, you are providing context about the topic, feature or concept that the task relates to from a functional point of view. While it is recommended to have tasks under the game design model, it is not mandatory, and you can have tasks without one for things like reminders or non-development-related tasks.
- Board: As we mentioned during the lifecycle explanation, a task can belong to a board or not (which means it’s in the backlog then). A board is nothing but a way to classify tasks by some criteria, which normally is a sprint or iteration of your development cycle. Boards can have start and due dates, but they are optional, so you can use them as regular kanban boards without a deadline on them.
- Tag: You can assign custom tags to your tasks to give them extra meaning or a special condition. For example, you can add a tag that says Impediment in red color so you can see that something is going on on a task just by taking a brief look at the card. You can also use them as sub-stages: you could add the tag Code review to a programming task in the Testing stage for a better understanding of what is being done.
Creating a task
Now that you know more about tasks, let’s create one. To do that, click on the New entry on the left menu or press T on your keyboard. You also have other shortcuts in important places, like the Kanban board or the design element editor. This opens up a task creation dialog.
The task creation in HacknPlan is progressive, meaning there are many possible fields and information to add to a task, but it’s initially hidden not to overwhelm the users and keep it simple. If you need to enter more data, you can click on the Edit fields button and enable (or disable) the fields you want. If there are fields you always need, you can check the Remember fields option, which will save your field configuration as the default for future task creation. Additionally, administrators can visit the section Administration → Modules, where they can set some fields of the task creation to be mandatory. Many of these fields are typeaheads that allow you to select the value by starting typing and selecting from a list of matching values.
The list of fields that can be added to a task are:
- Title: The title of the task. There is an option to create several tasks with the same features simultaneously (Studio only). To do this, click on the Batch button at the top of the creation dialog. When you do this, the title field will allow you to include the names of all the tasks to be created.
- Category: The category the task belongs to. If you are currently viewing a category board panel, it will be set as default. Otherwise, it will be set to the last category you used, saving you time when creating multiple tasks of the same type.
- Design element: The game design model element the task belongs to. It defaults to “none”, unless you are in the game design model page and selecting a specific element, then it will default to that one.
- Assigned users: You can add one or more users to your task card as assignees. You can enforce the assignation of at least one user from the Administration -> Modules section.
- Tags: You can add one or more tags to your task to add extra information or categorization that will be visible on the card. You can enforce the creation of at least one tag from the Administration → Modules section.
- Board: The board the task belongs to. If you are creating the task from a specific board, it will be set as default. If not, it will be set to the default board you have set in Administration → Boards & milestones. If no default board is set, it will default to “none” and the task will be added to the backlog. You can customize how this automatic board detection works in your user Settings → Application, Behavior panel.
- Importance level: It says how important the task is, which is especially useful for bugs or support tasks. It defaults to “normal”, which does not create any visual sign on cards.
- Start / Due date: Although tasks are normally done within the scope of an iteration or sprint, they can also have their own start and due date. This is especially useful for tasks related to marketing, PR or other disciplines that are a bit independent from the development iterations, but we recommend not to overuse this feature. It defaults to “none”.
- Estimated cost: This value measures the effort you estimate will dedicate to finish this task. It will be time or points depending on what you configured for your project. Defaults to zero.
- Description: Add a complete description, links, pictures, and everything necessary to clarify what needs to be done in the task. This field supports markdown syntax, so you can format the text as you wish.
- Subtasks: You can easily add subtasks, a checklist of steps that need to be accomplished before completing the task. The subtasks work well as a reminder and also show a more detailed progress status.
- Attachments: You can attach files to the task from your computer, from the project archive or Google Drive (premium only), that you can also reference from the task description. Additionally, you can drag and drop the files into the task creation dialog, which will upload them automatically.
- Dependencies: Dependencies are tasks that block the current one until they are completed, as a way of visually detecting bottlenecks and making the prioritization of tasks easier.
Tip: If you want to create several tasks in a row, check the option Create & continue at the bottom left corner of the creation dialog, this will open up another dialog automatically after creating the task for the current one.