 
{"id":53910,"date":"2020-11-13T12:11:00","date_gmt":"2021-02-09T14:41:27","guid":{"rendered":"https:\/\/www.globallogic.com\/ua\/insights\/blogs\/%d0%b4%d0%b5%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%b7%d1%83%d0%b9-%d1%86%d0%b5-%d1%80%d0%be%d0%b7%d0%ba%d0%bb%d0%b0%d0%b4%d0%b0%d1%94%d0%bc%d0%be-%d0%b2%d0%b5%d0%bb%d0%b8%d0%ba%d1%96-%d1%82%d0%b0-%d1%81\/"},"modified":"2025-01-31T04:51:25","modified_gmt":"2025-01-31T04:51:25","slug":"decomposition-and-estimation-techniques","status":"publish","type":"insightsection","link":"https:\/\/www.globallogic.com\/ua\/insights\/blogs\/decomposition-and-estimation-techniques\/","title":{"rendered":"\u0414\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0443\u0439 \u0446\u0435: \u0440\u043e\u0437\u043a\u043b\u0430\u0434\u0430\u0454\u043c\u043e \u0432\u0435\u043b\u0438\u043a\u0456 \u0442\u0430 \u0441\u043a\u043b\u0430\u0434\u043d\u0456 \u0437\u0430\u0434\u0430\u0447\u0456 \u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0438"},"content":{"rendered":"<div class=\"classic_editor_content\">\n<p style=\"text-align: right;\"><em><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Authors: Andriy Sydor, Senior Consultant, Quality Assurance, GlobalLogic Ukraine<\/span><\/span><\/em><\/p>\n<p style=\"text-align: right;\"><em><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Andrian Yablonsky, Senior Consultant, Engineering, GlobalLogic Ukraine<\/span><\/span><\/em><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Any big task consists of small ones. It can be decomposed into components &#8211; this is called decomposition.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<h3><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Decomposition<\/span><\/span><\/h3>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">A large system or product is always a complex where the user sees only the top. The lion&#8217;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:<\/span><\/span><\/p>\n<ul>\n<li><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">To make the product beautiful<\/span><\/span><\/li>\n<li><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">To work quickly<\/span><\/span><\/li>\n<li><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">So that there are no mistakes<\/span><\/span><\/li>\n<\/ul>\n<h3><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Decomposition rules: practical tips<\/span><\/span><\/h3>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">We have highlighted several important tips that will help you decompose tasks correctly:<\/span><\/span><\/p>\n<ul>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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 <\/span><\/span><strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">driven by value<\/span><\/span><\/strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> , where you really create value every day. This should be done from the very beginning: from components, through vertical decomposition to each user story.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">We advise you to make a user story for one day, and not for 81519 story points, which will be for the entire sprint.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Remember <\/span><\/span><strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">the &#8220;Pareto Principle&#8221;<\/span><\/span><\/strong><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> : <\/span><\/span><em><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">20% of effort is 80% of the result<\/span><\/span><\/em><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> . Don&#8217;t try to create a perfect system that will solve all the world&#8217;s problems. Do what needs to be done today, what is required of you first.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">It is impossible to evaluate and set priorities forever. Create a roadmap for 2-3 circles, no more.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Any projects come to an end. This is your time to present your own ideas and recommendations.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Have you split a big task into subtasks? Good. But don&#8217;t leave them &#8220;for later&#8221;, because they tend to grow like a snowball. We advise you to immediately execute, get feedback, and move on.<\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<h3><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Setting goals and ways of their implementation<\/span><\/span><\/h3>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">It was theory, and now &#8211; to practice. The technique that we recommend to use can be applied in any cases of life. So, let&#8217;s consider the way to achieve goals on the example of a simple desire &#8211; to buy a Mercedes car.<\/span><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49809\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0007-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" \/><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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 &#8211; divide the goal into smaller steps and go through them one by one.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">To practice this technique, you can write down all your dreams, then analyze them using the SMART technique, and turn them into goals.<\/span><\/span><\/p>\n<p align=\"justify\"><em><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">A moment of psychology.<\/span><\/span><\/em><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> 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.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Now let&#8217;s give an example of how to achieve the goal.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Let&#8217;s imagine that you need to <\/span><\/span><a href=\"https:\/\/www.globallogic.com\/ua\/insights\/blogs\/qa-automation-2\/\" target=\"_blank\" rel=\"noopener\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">test<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> a certain iOS application. To do this, you need to compile the application build, install it, perform active actions and receive result logs.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">This is how we divided this testing by points in the pictures below:<\/span><\/span><\/p>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49810\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0008-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" data-wp-editing=\"1\" \/><\/p>\n<\/div>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49811\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0009-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" \/><\/p>\n<\/div>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49812\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0010-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" \/><\/p>\n<\/div>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49813\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0011-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" \/><\/p>\n<\/div>\n<h3><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Evaluation techniques<\/span><\/span><\/h3>\n<p><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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 <\/span><\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/The_Mythical_Man-Month\" target=\"_blank\" rel=\"external nofollow\" target=\"_blank\" noreferrer\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Brooks&#8217; law<\/span><\/span><\/a><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\"> , 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.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Therefore, different approaches should be used at different stages of tasks.<\/span><\/span><\/p>\n<h4><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Top-Down<\/span><\/span><\/h4>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49814\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0013-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" \/><\/p>\n<\/div>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<h4><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Analogous<\/span><\/span><\/h4>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49815\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0014-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" \/><\/p>\n<\/div>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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. <\/span><\/span><br \/>\n<span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Slide 45.00<\/span><\/span><\/p>\n<h4><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Three Point<\/span><\/span><\/h4>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49816\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0015-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" \/><\/p>\n<\/div>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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 &#8211; pessimistic, realistic, and optimistic. There are various formulas for calculating the average value that should be used when estimating the budget you need.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">The simplest formula is to add all three grades and divide by three &#8211; (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 &#8211; (P+P*4+O)\/6.<\/span><\/span><\/p>\n<h4><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">Bottom up<\/span><\/span><\/h4>\n<div class=\"img_container\">\n<p class=\"imgyoutube\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-49817\" src=\"https:\/\/www.globallogic.com\/ua\/wp-content\/uploads\/sites\/3\/2020\/11\/0016-1024x576.jpg\" alt=\"\" width=\"604\" height=\"340\" data-wp-editing=\"1\" \/><\/p>\n<\/div>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">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.<\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"vertical-align: inherit;\"><span style=\"vertical-align: inherit;\">This concludes our story about decomposition and evaluation techniques. We hope that our tips will be useful to you!<\/span><\/span><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0414\u0435\u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0456\u044f &#8211; \u0446\u0435 \u0442\u0435, \u0449\u043e \u0434\u043e\u043f\u043e\u043c\u0430\u0433\u0430\u0454 \u0432 \u043e\u0446\u0456\u043d\u0446\u0456 \u0431\u0443\u0434\u044c-\u044f\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0454\u043a\u0442\u0430 \u0447\u0438 \u043c\u0435\u0442\u0438. \u042f\u043a \u0437\u0432\u0435\u0440\u0448\u0438\u0442\u0438 \u0449\u043e\u0441\u044c \u0432\u0435\u043b\u0438\u043a\u0435? \u0420\u043e\u0437\u043a\u043b\u0430\u0441\u0442\u0438 \u043d\u0430 \u043d\u0435\u0432\u0435\u043b\u0438\u043a\u0456 \u043a\u0440\u043e\u043a\u0438! <\/p>\n","protected":false},"author":12,"featured_media":49821,"parent":0,"menu_order":0,"template":"","insight":[41],"insight-subcats":[63],"insight-industry":[791],"insight-services":[],"insight-partners":[],"class_list":["post-53910","insightsection","type-insightsection","status-publish","has-post-thumbnail","hentry","insight-blogs","insight-subcats-agile","insight-industry-cross-industry"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insightsection\/53910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insightsection"}],"about":[{"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/types\/insightsection"}],"author":[{"embeddable":true,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":2,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insightsection\/53910\/revisions"}],"predecessor-version":[{"id":101624,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insightsection\/53910\/revisions\/101624"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/media\/49821"}],"wp:attachment":[{"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/media?parent=53910"}],"wp:term":[{"taxonomy":"insight","embeddable":true,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insight?post=53910"},{"taxonomy":"insight-subcats","embeddable":true,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insight-subcats?post=53910"},{"taxonomy":"insight-industry","embeddable":true,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insight-industry?post=53910"},{"taxonomy":"insight-services","embeddable":true,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insight-services?post=53910"},{"taxonomy":"insight-partners","embeddable":true,"href":"https:\/\/www.globallogic.com\/ua\/wp-json\/wp\/v2\/insight-partners?post=53910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}