Технологічні рішення
Технологічні рішенняСАНТА-КЛАРА, Каліфорнія — 10 січня 2025 року — Компанія GlobalLogic Inc., що є частиною...
GlobalLogic оголосила про партнерство з Nokia для прискорення впровадження передових 5G...
GlobalLogic надає унікальний досвід і експертизу на перетині даних, дизайну та інжинірингу.
Зв'яжіться з намиAuthors: Andriy Sydor, Senior Consultant, Quality Assurance, GlobalLogic Ukraine
Andrian Yablonsky, Senior Consultant, Engineering, GlobalLogic Ukraine
Any big task consists of small ones. It can be decomposed into components – this is called decomposition.
How to decompose complex problems? How to estimate large (and not so) projects as accurately as possible? Which techniques are effective and which are better not to use? We will talk about this and more in this column.
A large system or product is always a complex where the user sees only the top. The lion’s share of the work of developers, testers, and analysts remains outside the attention of end users. Therefore, when decomposing projects, always take into account the high-level goals that the end user and customer need:
We have highlighted several important tips that will help you decompose tasks correctly:
Every time you decompose your task, we recommend that you be guided by ROI, that is, the value you will bring to the customer. Remember that the task is measured in money, time and result.
Demonstrate the result of working on the task each day. This will help you to easily and clearly understand what you have done in a certain time interval. You can prepare a report and demonstrate which new or additional functionality has been successfully implemented during this time. Thus, your project becomes a project driven by value , where you really create value every day. This should be done from the very beginning: from components, through vertical decomposition to each user story.
We advise you to make a user story for one day, and not for 81519 story points, which will be for the entire sprint.
Tasks, ideally, should last no more than two hours. We recommend that you try to set a timer for every two hours and write down what you managed to do during that time. This will help you to understand more clearly what you spend your time on, and to learn to more accurately estimate the deadline for completing a particular task.
Take breaks for 10-15 minutes after a two-hour assault on the task to give yourself the opportunity to rest and structure the information in your head. This will help to complete the task faster and more efficiently.
Tackle difficult tasks in the morning when your brain is fresh. But again, no more than two hours. If you have a task that takes more than two hours to complete, spread it over several days, but take small steps.
Remember the “Pareto Principle” : 20% of effort is 80% of the result . Don’t try to create a perfect system that will solve all the world’s problems. Do what needs to be done today, what is required of you first.
It is impossible to evaluate and set priorities forever. Create a roadmap for 2-3 circles, no more.
Any projects come to an end. This is your time to present your own ideas and recommendations.
Have you split a big task into subtasks? Good. But don’t leave them “for later”, because they tend to grow like a snowball. We advise you to immediately execute, get feedback, and move on.
It was theory, and now – to practice. The technique that we recommend to use can be applied in any cases of life. So, let’s consider the way to achieve goals on the example of a simple desire – to buy a Mercedes car.
Of course, cars of this brand are different, so first you need to clearly understand which car you dream about. What we talked about above – divide the goal into smaller steps and go through them one by one.
To practice this technique, you can write down all your dreams, then analyze them using the SMART technique, and turn them into goals.
A moment of psychology. After analysis, you may see that your dreams, even old ones, have not turned into goals. Why so? When we start planning something, we understand that the path will be quite long and difficult. Therefore, it is easier for us to give up on the dream, and instead focus on what we really want. That is why it is important to give priorities and deadlines to all goals. This will help to effectively plan actions and allocate resources.
Now let’s give an example of how to achieve the goal.
Let’s imagine that you need to test a certain iOS application. To do this, you need to compile the application build, install it, perform active actions and receive result logs.
During this process, it is important to remember that your solution must be easily extensible and scalable. The solution, which is easily deployed, is very attractive, and accordingly opens up new opportunities for the customer.
This is how we divided this testing by points in the pictures below:
There are different approaches and evaluation techniques, however, the main focus is to remember what you did. A typical mistake of managers, leaders and developers is that they are optimistic enough in their forecasts and agree to deadlines that are not realistic.
The next thing that leads to underestimation is the involvement of people in the team when you no longer have time to bring the project to the end. There is Brooks’ law , which clearly states that if the project does not meet the deadlines, the involvement of new people will delay the implementation of the project for an even longer period. New people need to be trained, and mentoring usually takes a lot of time.
Therefore, different approaches should be used at different stages of tasks.
Quite a simple technique. Top-down decomposition. The idea behind this technique is to establish a project budget and further distribute it between different stages or tasks. That is, this technique allows you to clearly understand how much money the customer is ready to spend on his project or on some specific activity. Next, knowing what typical activities we can have for a certain type of tasks, we divide this budget into testing, development, research.
The disadvantage of this type of estimate is its inaccuracy, and the budget is allocated on the basis of rough assumptions. Therefore, it is very important here to make a simple assessment, show deliverables, ask additional questions, and if there are additional changes from the customer that were not agreed upon initially, issue them as a change request.
Compared to the previous technique, this one is more accurate. It can be used when we are already doing certain similar projects, and when a new customer appears or a new project enters, we have the opportunity to find similar projects.
Slide 45.00
This technique uses the division of tasks into smaller subtasks. Next, the manager and the team evaluate these tasks and identify possible risks. Based on this, three evaluations are obtained – pessimistic, realistic, and optimistic. There are various formulas for calculating the average value that should be used when estimating the budget you need.
The simplest formula is to add all three grades and divide by three – (P+P+O)/3. A more accurate formula is the estimate when we multiply the realistic estimate by 4, add the pessimistic and optimistic estimates and divide by six – (P+P*4+O)/6.
One of the techniques that gives the best result in terms of evaluation, but is quite difficult to apply and is quite time consuming. If you absolutely clearly understand what tasks you should perform, you have performed them several times and have statistics collected over several years, then accordingly you describe all tasks from bottom to top and make a budget.
This concludes our story about decomposition and evaluation techniques. We hope that our tips will be useful to you!