Pareto Principle and influence in software development

Tram Ho

Pareto Principle

The Pareto principle, the pareto rule or the 80/20 rule shows that in many events, about 80% of the results are due to 20% of the causes. Stemming from the Italian economist, sociologist and philosopher Vilfredo Federico Damaso Pareto who made important contributions in the study of income distribution and the analysis of personal choices observed and indicates that 80% of the land in Italy is owned by 20% of the population.

In the future, the statistics industry has developed strongly. By the collected statistical results, the business management thinker Joseph M. Juran found that the 80/20 rule affecting many other areas of life proposed this rule and named it after. Italian economist Vilfredo Pareto.

Specifically, when considering something owned by a sufficient number of people, there always exists a number k (50 <k <100) such that k% of that thing is owned by (100 – k)% number of people in it. However, k will vary from 50 in the case of uniform distribution to almost 100% when a very small number of people own most of the resources. There is nothing special about the number 80, but many systems have a value of k in this range.

The reason why the number 80 appears so much is because mathematically, the 80/20 rule obeys the power function distribution law (also known as Pareto distribution) for a specific set of parameters and many Natural phenomena have been experimentally proven to show such distribution. The conclusion from Pareto’s observation is that the distribution of this form and modern society is heavily influenced by exponential functions other than primitive society not dominated by exponential functions (primitive societies). Humans are very fair to hunt for the result that there will be no TH 80% of the results are divided among the top 20% of the best-ranking people and equally divided, so Pareto’s conclusion will not be true in time This period). So, as society develops, the power function will be replaced by another function when expressing the distribution, which can be a step forward by moving back to the original society so that everything can be fair distribution through subsidies if socialist is successful around the world =))

But we live in a modern society where 82.7% of the world’s income belongs to the top 20% of the population, so let’s look at some of the effects of Pareto efficiency. in all areas of life. In this viblo, with the spirit of monthly report, I will take some examples of Pareto efficiency for software development industry. Of course, each of the examples below has a sample that is large enough and influenced by Pareto efficiency. When the two above conditions are not met, the number 80 is no longer valid.

1. Capacity estimation

We have a shortened URL shortening system. This is a read-heavy system. The number of requests requesting redirects is much larger than the number of requests that make shortening URLs. Assume this ratio is 100: 1 between read and write.

Now we need to use the cache to make the system work really well, assuming the system responds to 20,000 requests / s. So the number of requests in a day would be:

20K * 3600 seconds * 24 hours = ~ 1.7 billion

To caching all of these requests, we need a RAM capacity of up to 1.7 TB (with each request using 1MB of memory) a very large number leading to increased server costs. Moreover, not all of these 1.7 B requests come from 1.7 B shortened URLs, but k% requests come from (100-k) hotest URLs. Applying the pareto rule we have 80% of requests coming from the 20% hotest URL. So now the amount of RAM you need to cache is:

0.2 * 1.7B * 1M = 340GB.

2. Fix bugs

When releasing a software product to customers, there is always an accompanying feature that receives feedback, the feedback is mostly bugs related to software. When getting feedback, the engineers will find ways to fix it, but there will be many bugs related to each other, so when we finish fixing a bug, some bugs will be fixed. And when the list of feedback gets too long and the engineers don’t have enough power to solve it all?

To optimize our bug fix efforts, we can apply the Pareto rule by selecting the 20% most reported bugs to prioritize handling. When thoroughly handling 20% ​​of these bugs, 80% of related bugs will eliminate.

And Microsoft, with its huge ecosystem, which receives the most number of feedback in the world, has pointed this out, along with the notion that up to 80% of a software’s code is written in 20. % of total project time or 80% of total project time is the hardest to code 20%.

3. Testing

Applying Pareto rules in QA activities also helps us reduce testing time and increase performance. For example, in the testing process we can apply some of the methods described in the link below: https://blog.qatestlab.com/2011/02/25/pareto-principle-in-software-testing /

4. Conclusion

Above I have mentioned the impact of the 80/20 ratio or Pareto’s law that really affects many areas of life. However, to say again, the Pareto rule and the 80/20 ratio should not be something we should be pursuing exactly, trying to correctly apply this ratio to every problem that needs to be solved but should follow chasing its effectiveness.

Reference: https://en.wikipedia.org/wiki/Nguyen_lý_Pareto

Share the news now

Source : Viblo