Decomposition and task manager: how to effectively break a project into tasks. Personal experience
How quickly a digital product will be released depends on many factors: how long it will take to develop the design layout and code, how many bugs will be found in it during the testing stage, and so on. Each level of approval will have its own conditions, which inevitably affect the timing and quality. How to effectively manage this process so that the client is satisfied and the employees do not burn out after the release, as well as which task manager turned out to be the most effective for us, told the head of the Fusion Tech's Project Department.
At the very beginning of the journey, at the project planning stage (project management), and right up to implementation, the following factors will influence the speed of the final product and its quality:
- how the task is described (how detailed and accessible it is for all team members to understand);
- what parts it is divided into (how it is decomposed*) and whether it is divided at all.
If the team does not understand the task, then the output will not be what was expected at the beginning of the work. Without a clear technical specification the result will be unpredictable. But why is it so important to divide the project into separate components?
ADVANTAGES OF DECOMPOSITION*
*Decomposition of tasks into small parts makes it easier to understand, evaluate, and ultimately complete one large task faster and more efficiently.
Decomposition helps to:
- take a look at the entire project, better understand its overall structure;
- correctly plan upcoming tasks and outline the relationships between them;
- highlight priorities;
- manage work more effectively and distribute resources (people, time, money) between tasks;
- monitor progress and results.
Breaking down tasks into small parts increases the accuracy of project planning and helps you see which functions that may not be obvious at first glance need to be included.
For example, let's take the creation of a business messenger. It would seem that the main feature of the product is messages, but not everything is so simple. If you break down the task into pieces, additional functions will appear:
- presence/absence of formatting when typing;
- notification of a new message;
- saving a message as a draft;
- editing or deleting a sent message;
- “pinning” or adding it to the “Favorites”;
- marking as read;
- emoji and much more.
A real case from our practice
A long-time partner contacted the company to improve an application they had previously developed for online nanny booking. The task was to add another section - a new “Type of work”, which differs from the existing one in several parameters. It sounds quite easy, but upon subsequent decomposition we found a lot of nuances:
- you need to create a new page with an additional set of parameters;
- some old components need to be rewritten because they are not ready for change;
- layout adjustments are required on a number of pages;
- many other additional features that grow like a snowball when you dive deeper into the task.
Thus, taking into account the peculiarities of the old code and complex business logic, our estimate for the complete implementation of a task with tests increases from 1-2 days to 2-3 weeks.
If you do not decompose the task, then all these little things that cascade together will not be taken into account in time, which will affect both the deadlines and the quality of the final product.
DISADVANTAGES OF DECOMPOSITION AND HOW TO AVOID THEM
Breaking down tasks into parts makes your work much easier. But there is also a downside to the coin - if the decomposition is overly detailed, then it can become too complex and difficult to coordinate all the details. Maintain a balance:
1) You should not decompose the entire project at once; as a rule, plans change and are clarified during the work process. It is better to use the “rolling wave” method - when the entire project is divided into large parts, and during the work the nearest blocks are detailed.
2) Break down the task into small parts together with the entire team involved in the project - experts in their field, who themselves know well what to do and how to do it correctly in order to avoid mistakes.
TOOLS FOR DECOMPOSITION
Task managers which are already familiar in the IT play as assistants in breaking down tasks into smaller ones. They are used by all team members: from technical specialists to sales and marketing ones. The advantages of a task manager are obvious: convenient assignment of tasks, visibility of the workload of all team members and clear deadlines.
Among the most popular task managers are the following:
- Jira;
- Wrike;
- Trello;
- Asana;
- Things;
- ClickUp;
- Todoist;
- Habitica;
- Basecamp;
- Worksection;
- and many others.
WHAT TASK MANAGER DID WE CHOOSE AND WHY?
At the startup stage, we used Trello - it's a great tool for small projects. But as the team grew and the level of complexity of tasks increased, it became cramped for us. About three years ago we switched to another popular service.
We spent a long time choosing between competitors; we considered the familiar Jira, Monday, and the free open source Redmine. But in terms of functionality, convenience, support and cost, ClickUp turned out to be the most attractive for us at that time.
Pros of ClickUp:
1) Convenient hierarchical structure of the system, intuitive interface, flexible settings and custom fields in tasks, a huge number of integrations. For example, on projects we use integration with Gitlab and Github, we pull branches from repositories (data stores) to specific tasks, within one task you can see all the commits, the state of the branch, comments, and so on. This is very convenient for a code reviewer or technical lead who monitors the quality of the code and architectural solutions.
2) In addition to the basic set of any task manager: creating project and task boards, there is also a Notion for compiling documentation and a knowledge base, a time tracker, and a dashboard and goal designer. In ClickUp Docs, for example, we maintain knowledge bases for projects, where documentation and useful links are stored, to which all team members have access - there is no need to “run around” across different products and look for the necessary information. Another plus is that the knowledge base is immediately linked to the project space. You can use it to create project documentation, build a hierarchical document with deep nesting and built-in links to external resources.
3) We use ClickUp to work on projects and it is also convenient to manage tasks within departments and their interaction with each other. The system allows you to place the necessary data and internal boards of project managers in one place: you can quickly switch between tasks within one tool.
THE PROCESS OF CREATING TASKS IN TASK MANAGER
At ClickUp we use templates for different types of projects. Each template has its own set of blocks that need to be filled out by the PM, QA, or the person assigned the task.
In general, the process of creating a task in the task manager can be depicted as follows:
We write down the name of the task → assign the person responsible for the task → add other participants → set deadlines → describe the details → upload additional files → set priorities.
Depending on the task (development, bug fixing, research, and so on), this scheme can be expanded or narrowed. Using the most popular tasks as an example, we will show how this happens:
- Development: if you need to create a new feature, then the task structure will necessarily contain a User Story, Acceptance Criteria, links to design, documentation, parent or other tasks related to it.
- Bugfixing: if the goal is aimed at correcting errors, then in addition to a description of the bug itself (what, where and under what conditions occurs or does not occur), you should add preconditions and reproduction steps, expected and actual results, screenshots and screen recording.
- Research: in addition to development or bug fixing tasks, we also use Spike tasks. They are needed when you need to create a new, previously unknown product. Typically, such a task describes what final result we want to obtain and what tool or technology should be used for this.
These examples allow you to clearly understand how requirements change depending on the specifics of the project, as well as how decomposition and the task tracker together break down the general thing into parts in order to dive deeper into the task, more accurately plan budgets and deadlines, and set the right expectations for the customer. It’s up to you to decide whether to use them or not, but our team recommends approaching the project carefully or applying to specialists for lack of resources.
March 6, 2024