
Projects on which developers work can often be viewed as one (or several) large tasks. And in order to make it easier to solve a big problem, it should be divided into smaller ones.
Asana - collaborative task management application is perfect for this. Under habrakatom description of this system and one use-case that we successfully use when developing websites. The article is large and with pictures. Who cares only how we use Asana at work, you can go directly to the example, or for example in the pictures.
Also on Habré has already been a
review of this system , but it is outdated, and the system has progressed much further since then.
What is asana
Asana is not just a list of tasks, but a whole system of small tools that will help replace almost any application for managing tasks, relationships with clients, projects and much more. I must say that there is only the English version.
The responsiveness of the application is so high that sometimes it seems that this is not a web - but a locally installed program. Almost everything can be controlled using only the keyboard.
Immediately into battle
This is what my desktop looks like (this is with a monitor width of 1280, with smaller sizes - the site adapts differently):

')
If it looks massive or difficult, then this is only a first impression. Let's sort everything out on the shelves.
How does it work
The first in the hierarchy are desktops (workspaces). They are convenient for dividing access into groups (one desktop for work, another for a family, etc.). One desktop can be accessed for free up to 30 users, further chargeable. There are two types of desktops - standard and custom projects. This article will only consider standard desktops. Who cares about their own projects - you can read
on the blog .

All desktops and projects are immediately visible, but in order to focus it is better to go to the desktop in which we want to work. This is done by clicking on the title of the project.
Users can be added to both the entire desktop (all projects will be available), and only give access to one project.

There are always two sections in each desktop: My Tasks and Inbox and three types of categories (maybe it’s not categories but it’s like): projects, tags and users.

If you select one project, tag or user, only those that match the selection will be shown in the task window.
In My Tasks are all tasks that are assigned to this user.

In the inbox are news feeds of all changes to tasks (adding new, commenting, assigning, etc.) to which this user is signed.

Now we will look at all tasks of the project:

Visually, tasks are simple or priority heading. Headings are used to visually divide tasks into categories, while their functionality is the same as that of ordinary tasks. The list shows:
- headline
- assigned user avatar
- tags
- a priority
- parent task (if any)
The status of the tasks assigned to the user and the title can be changed directly from the list. Also, to create a header, simply add a colon to the end of the name.
Completed tasks are placed at the top of the list, and so that they disappear from there - they can be archived (for example, by the end of the day when the review of the completed day is done):

When opening a task, the following details are available: title, description, assigned user, the project to which the task belongs, child tasks, deadline, tags, files, subscribers, comments and activity feed.

Basic functions are also available here:

Of the interesting features there is:
- The description may contain links to other tasks or other users (smart auto-completion appears after entering the @ sign)
- Subtasks are nothing but the same tasks that are quickly accessed through the parent task.
- One task may not belong to the project at all (for example, child tasks) or to the set
- A term can be either one simple date or a recurring one (during the repetition, the same task is created only with a term extended by a specified interval)
- A task can only be assigned to a person (with the possibility of change), but you can follow the task (all changes will appear in the Inbox)
- The task can be assigned to a person who is not added to the desktop / project. To do this, you need to specify his email, he will receive a notification to the mail with the ability to register and get access to this desktop or task (depending on what you chose during the appointment). Even if a person does not want to register, he can simply reply to this letter and his answer will be a comment in this task.
- The comments also work smart auto fill

Where you can learn more or see examples of work
To feel the full power of the application, you need to try it at work. And it is advisable to initially view
Asana in 2 minutes (eng) and
How to use it (eng).
Example of use for a small web studio
We are a team of 5 people who make sites on the tracks (Ruby on Rails):
- Project Manager / Task Manager / Customer Relationships
- Designer / UI / UX
- Front-End Dev / UI / UX
- Back-End Dev / Models / Database
- Back-End Virgins / Controllers / Helpers / Tests
For each site we create a project. All tasks are separated by priority headers that correspond to the pages of the site (see the picture above with the tasks). The order of tasks in the list is not important for us, for this we use tags. Here is a list of priorities for performing tasks, depending on the tag (descending):
- bug
- urgently
- (task without tag)
- incomplete description
- Do not rush
- for the future
There is also a tag
documentation that is assigned to informative tasks. They do not need to perform. Much more information is stored in the priority headers for each page.
For subtasks, we use a text list where each element is preceded by empty square brackets, and at the end of each element is the name of the person who will have to perform the task. The subtask is indented two spaces from the parent subtask.
Almost all tasks go through the following life cycle:
- Task created by Task Manager
- Subtasks and links to those who will have to complete them are added to the task description.
- If there is some additional information - it is added to the comments.
- The task is assigned to the person specified in the first unfulfilled subtask.
- The subtask is performed, the symbol x is put in the subtask brackets, item 4 is repeated
- If there is no more subtask, the task is assigned as completed.
But of course, not all tasks run smoothly, in different situations different actions are needed:
- If after completing a subtask, you need to share some information that may be useful when performing the remaining subtasks - you need to unsubscribe in the comments
- If, when performing a subtask, it turns out that one of the previous subtasks was performed incorrectly / buggy then write about it in the comments, empty the brackets of this subtask and reassign the task to the one responsible for this subtask
- If, when performing a subtask, it turns out that something is missing in the description, we assign an incomplete tag to this task and reassign it to Task Manager.
- If in order to perform a certain subtask, it is necessary to perform a certain subtask from another task, remove the assignment from the current task, and write in the comments of another task that after its completion we need to assign us back the current task
- If you have completed a certain subtask and have already reassigned it to someone else, and then you suddenly remembered that you didn’t finish something:
- If the one to whom you assigned the task already specified priority (today, later, upcoming) you need to write him and ask the task back
- If not, then you can safely select the task back.
The same is only in the pictures.
That's what Tax Manager is doing.

But that's all (including Task Manager)

Why we do not use embedded subtasks
When we started using this scheme, there was no subtask yet. And now, as far as I understand, they are in beta release (I once indicated that I agree to beta features, and in the project we use the labeling of subtasks which they themselves recommended in their video as a possible scenario of using the system).
But even when subtasks became available to us, we were faced with the inconvenience of using them. If you have only one-level subtasks - then everything is simple. Although even in this case, they do not suit us as when assigning a subtask it will appear in the Inbox of the corresponding user and in his Personal Tasks, and we tried to ensure that in Personal Tasks there were only tasks over which a person can already work, and even in Inboxes There must be an excess of unnecessary events. And if your subtasks have their own subtasks, then it’s already visually impossible to evaluate all the subtasks of one task, and this will complicate the understanding of progress and the number of subtasks. It also brings the fragmentation of comments and files that are directly related to tasks.
results
At the end of each day, you can analyze the statistics .:
- Number of closed tasks per day
- The number of remaining assigned tasks for each team member
This is how we have been working for about a month, during this time:
- Productivity has increased significantly
- The time spent on reddit, reader and other non-work related sites has dropped from an average of 2 hours per person to 30 minutes (RescueTime)
- No one else complains that he has nothing to do.
- Fewer bugs and fewer forgotten things.
- More realistic timing
UPD. Now the subtasks
are officially announced .