Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Applying the Fishbone diagram and Pareto Principle to Domino

Part 2

Dhanasekar Dhandapani (dhanasekar.dhandapani@wipro.com), Lotus Notes consultant, Wipro Technologies
Dhanasekar Dhandapani is a Lotus Notes consultant working for Wipro Technologies in Bangalore, India. He started off his career as a Java guy and later took on Lotus Domino and has been working with it for almost five years, beginning with Release 4.5. His recent projects include an employee details change request system for a large French bank, a Divisional Scorecard system, a Company Centric System, and SMM/Board meeting automation for some of the Singapore Ministries. These days he is concentrating more on developing add-on utilities using Java and C/C++ API toolkits. He can be reached at dhanasekar.dhandapani@wipro.com.

Summary:  Use the Pareto Principle to determine which software-related problems to manage first. This article, part two in our series, introduces you to the Pareto Priniciple, a problem management tool that you can apply to issues with your Domino applications.

Date:  28 Jun 2004
Level:  Introductory

Activity:  11063 views
Comments:  

This article series introduces you to two problem analysis and management tools: the Fishbone diagram and the Pareto principle. In part one of the series, we introduced you to the Fishbone diagram and explained how you can apply it to your environment to help determine the root cause of an issue. As an example, we used the Fishbone diagram to determine the root cause of a Domino server crash. In part two in our series, we introduce you to the Pareto principle, a management tool to help you determine how best to tackle your software-related issues. This article assumes that you are an experienced Notes application developer or Domino administrator with little to no knowledge of the Pareto principle.

About the Pareto principle

Almost a century ago in 1906, Italian economist Vilfredo Pareto devised a mathematical formula to explain the uneven distribution of wealth among people in Switzerland. His observation was 20% of the people held 80% of the total wealth. Though the principle was initially applied to economics, it was hugely popular and successful in explaining the rationale behind other industry problems as well. Software application development, support, and maintenance are no different. The Pareto principle is also referred to as the 80/20 rule. Using this rule, when we analyze raw data of any business problem using Pareto charts, it gives us valuable information that helps us in management decisions. The 80/20 rule is basically empirical and not absolute. The figures 20 and 80 are not important; it may sometimes be 10 and 90 or 30 and 70. We are not concerned with the exact figures as long as it helps us to identify the key factors.

Some of the scenarios in which the Pareto principle can be used are listed below. Please note that it is not limited to the following cases.

  • 80% of customer complaints are caused by 20% of our products or services
  • 20% of a meeting’s duration results in 80% of its value
  • 20% of your products or services generates 80% of your profitability

Applying the same principle in software, we can assume that a vital few factors cause most of an application's problems. If we can correct these few factors that account for 20% of the application design, then the product or the application will have greater probability of success. Because the principle is a generalized one, it can be used in any platform or technology, not solely Lotus Notes. But we are more interested in applying it to Domino application support and maintenance.

When to use it

You may find application of the Pareto principle useful in the following instances:

  • Identifying those few components that cause the majority of the problems in a system
  • When available data is too voluminous to identify those components that cause the majority of the problems and a mathematical method is needed to identify them

When not to use it

In the following instances, you may not find the Pareto principle useful because it may not yield desired results:

  • Sample data for analysis is too low.
  • Available data clearly shows a particular component causing most of the problems, so analysis is not required.

Relevance of the Pareto principle to Notes application support

A typical day-to-day operation in application support is to identify the problem, to study and analyze the problem, to find the cause, and to fix it. The fix may be temporary or permanent. A temporary fix is provided when troubleshooting a problem takes a lot of time, and end users are looking for a quick fix. For instance, support personnel may provide a temporary solution (such as a patch), continue to work on the problem, and then fix it permanently at a later point in time.

An application support contract usually runs for at least one to two years. If the various metrics obtained during this period are not analyzed, then the performance and efficiency of the application will not improve. Therefore, there is a definite need to analyze the metrics. The 80/20 rule plays a bigger role here because it helps the project management team to analyze the metrics and to find those few key factors that contribute to more than 80% of the problems.

After the key factors are identified and fixed, the application will see an improved efficiency. The number of reported issues should decrease drastically. But the application of the 80/20 rule should not stop here. The project team should continue to gather metrics, to analyze, and to identify the next set of factors affecting the system most. The process is iterative.

As mentioned before, the Pareto principle is not used to find solutions to problems, but to find information about those modules, applications, or design elements that cause most of the problems, which can help to make the product or application more efficient.

How to use the Pareto principle

The various steps involved in using the Pareto principle are:

  1. List and sort the problems and their categories
  2. Calculate cumulative percentages
  3. Draw a line graph
  4. Identify the key categories

List the problem type and the module affected

This is the first step in analyzing and applying the Pareto principle. Gather information, such as problem type and the module that it affects in the system, for a period of time (for instance, six months to one year). Enter the information in a spreadsheet in two adjacent columns (one for problem type and the other for module). You can sort the problem types based on module in descending order. The module with the most reported problems appears at the top of the spreadsheet followed by others in descending order.

Calculate the cumulative percentage

In the second step, you find out the percentage of problems in each module. If the sampling contains 500 problems, out of which 100 falls in Module A, then the computation is Module A = (100/500)*100 = 20%. Compute all the modules that have reported problems.

We need to emphasize an important point here. We are using the Pareto principle to find which application module has the most reported problems. You can classify the problems in many ways. For instance, if you are supporting about 1,000 Notes applications, you might classify the problems based on the application. If you support applications across geographies, then you might classify based on geographies and so on. Based on the experience in supporting the applications, you may classify the problems in any category that helps you to identify the majority of issues.

After the computation for all the modules is done, a table is drawn using the details.

Modules% of TotalComputationCumulative %
Module A240 + 24 = 24%24%
Module B2124 + 21 = 45%45%
Module C1645 + 16 = 61%61%
Module D1161 + 11 = 72%72%

Draw line graph

After the cumulative percentage is calculated, you can plot a line graph. Use a graph sheet or spreadsheet to draw a horizontal axis (X axis) corresponding to different modules ordered from most problematic to the least. Draw a vertical axis (Y axis) corresponding to the percentage ranging from 0% to 100%. After the X and Y axes are set, you can plot the points.

For each module and cumulative percentage, plot the points on the graph. Then draw a continuous line joining all the points. Because it is cumulative, the line starts at a lower end and proceeds vertically upwards (exponential). That’s it. Now we are all set to find those key modules that account for most of our problems.

Identifying the key modules

The last step in the process is to find the most problematic modules in the application. Draw a line from 80% in the Y-axis until it reaches the cumulative percentage line graph, and then drop it vertically downward to the X-axis. All modules that fall to the left of the 80% divider line are the few key modules that create most of the problems in the application. The modules that fall to the right of the 80% divider line are less important modules. If those modules falling to the left of the 80% divider line are fixed permanently, there is a good chance that the other less problematic modules will be solved automatically. A major issue may have some regression, so fixing a major issue may sometimes eliminate a few minor issues, too. But this is not always the case.


Example

Let’s take a look at the following example to better understand the Pareto principle’s relevance. The following example demonstrates how to analyze sample data to help us to find the few key factors that contribute to most of the problems in our system. For our example, we have chosen an On Leave application system that tracks when users are on sick leave, on personal leave, and so on. We've also gathered a few help desk call details.

List the problem and the related design element

The following table lists some of the help desk details logged for the On Leave application. The problems and the related design elements are listed and sorted based on the design element.

Related Design ElementProblem
All leave formsUser has to scroll horizontally to access other sections of the page.
All the viewsCategories are present, but no documents appear underneath it.
Annual leave formJavaScript calendar doesn’t display after it is opened.
Annual leave form"Object variable not set" error appears when submitting document to supervisor.
Annual leave formEdit document button is visible in Edit mode.
Casual leave formJavaScript calendar doesn’t display after it is opened.
Casual leave form"Object variable not set" error appears when submitting document to supervisor.
Casual leave formSupervisor is unable to approve leave requests. Approve button doesn’t work.
Casual leave formTable is misaligned.
Casual leave formUser is unable to view the document he submitted to his supervisor.
Casual leave formForm is processed after the document is submitted to the supervisor.
Database access (ACL)When accessing the database, "Views are not initialized…" error message appears.
Help documentHelp document is not available.
Leave By Applicant viewView takes lot of time to load.
Leave By Status viewView takes lot of time to load.
Maternity leave form"Object variable not set" error appears when submitting document to supervisor.
Maternity leave formUsers cannot compose maternity leave request. "Object expected" error appears while loading the page.
Database launch propertyDefault frameset is not loaded in the Notes client as expected.
Print actionUsers are unable to print the leave document.
Reminder agentNo reminder notifications are sent to a supervisor about pending approvals.
Replication settingsMail-in database does not replicate.
Replication settingsReplication does not send/receive documents.
Report formUsers cannot generate reports. "Automation object" error appears.
Report formSearch results are not formatted properly.
Sick leave formUser cannot view the document he submitted to his supervisor.
Sick leave formUser cannot edit the document in draft mode.
Sick leave formLeave balance action button is missing.
Sick leave formUsers cannot apply for half-day leave (application deducts a full day).
Sick leave formJavaScript calendar doesn’t display after it is opened.
Sick leave formField labels and text are not standardized.
Sick leave formSupervisor cannot approve sick leave requests. Approve button doesn’t work.
Sick leave formHR cannot view the supervisor-approved sick leave document.
Sick leave formHR cannot edit the supervisor-approved sick leave document.
Sick leave form"Object variable not set" error appears when submitting document to supervisor.
Web frameset"Object expected" error appears while loading the page.

This table is only a sample, but when analyzing production support, it's best to use data gathered over a significant period of time (for instance, one or two years) to yield better results. The details provided here are restricted to one application for ease of explanation, but it is up to project management to gather data for various applications and to classify the problems based on different categories.

Calculate the cumulative percentage

The next step is to calculate the cumulative percentage of problems that occurred in the design elements listed in the preceding table.

Total number of problems in the sample = 35
Annual leave form % = (3/35) * 100 = 8.6%
Casual leave form % = (6/35) * 100 = 17.1%
ACL % = (1/35) * 100 = 2.9%
Help document % = (1/35) * 100 = 2.9%
Views % = (3/35) * 100 = 8.6%
Maternity leave form % = (2/35) * 100 = 5.7%
DB launch property % = (1/35) * 100 = 2.9%
Reminder agent % = (1/35) * 100 = 2.9%
Replication settings % = (2/35) * 100 = 5.7%
Web frameset % = (1/35) * 100 = 2.9%
Sick leave form % = (10/35) * 100 =28.6%
Report form % = (2/35) * 100 = 5.7%

The above lists the percentage of problems found in individual design elements or groups (for views). The next step is to calculate the cumulative percentage. Create a table with the percentage listed in descending order.

Design Element% of TotalComputationCumulative %
Sick leave form28.60+28.6 = 28.6%28.6
Casual leave form17.128.6+17.1 = 45.7%45.7
Annual leave form8.645.7+8.6 = 54.3%54.3
Views8.654.3+8.6 = 62.9%62.9
Replication settings5.762.9+5.7 = 68.6%68.6
Report form5.768.6+5.7 = 74.3%74.3
Maternity leave form5.774.3+5.7 = 80%80
ACL2.980+2.9 = 82.9%82.9
Help document2.982.9+2.9 = 85.8%85.8
Database launch property2.985.8+2.9 = 88.7%88.7
Web frameset2.988.7+2.9 = 91.6%91.6
Reminder agent2.991.6+2.9 = 94.5%94.5

Draw a line graph

The following line graph is drawn from the preceding table data using Microsoft Excel and plotted with the cumulative percentage against the related design elements. The X axis is plotted with the related design elements and the Y axis as the cumulative percentage.


Figure 1. Line graph
Line graph

Identifying key design elements

The final step is to identify the few key design elements that cause most of the application problems. Applying the Pareto principle (80/20 rule), draw a line from 80% on Y axis until it meets the line graph. Once you reach the line graph, drop the line vertically down to the X axis as shown in the following graph.


Figure 2. Line graph
Line graph

All the design elements that fall to the left of the 80% line are the few key design elements accounting for most of the problems reported in the On Leave system. Now we have narrowed down the design elements that create most of the problems that annoy users. From the graph above, we can say that the following are the design elements accounting for more than 80% of the problems in the On Leave application:

  • Sick leave form
  • Casual leave form
  • Annual leave form
  • Views
  • Replication settings
  • Maternity leave form
  • Report form

The project management team can now concentrate on analyzing these design elements. It is highly possible that working on the design elements will indirectly fix the issues occurring with other design elements.

Sometimes the 80/20 rule has to be slightly altered. For instance, if the 80/20 rule is applied to an application support project and the results indicate that the majority of problems are reported in 60% of the applications, then it does not help the team to identify those few applications creating the majority of the problems. In this case, the rule can be modified to 70/30 or 60/40, which will identify the few problematic applications.


Conclusion

In this article series, we discussed two important software quality techniques: the Fishbone diagram and the Pareto principle and their importance in the Domino environment. We have also talked about the various steps involved in applying each of these techniques and used Domino examples to illustrate both techniques. We hope you found the introduction to the Fishbone diagram and to the Pareto principle useful.


Resources

Read part one of this article series, "Applying the Fishbone diagram and Pareto principle to Domino, Part 1."

For more information about the Pareto priniciple, see "Pareto's Principle - The 80/20 Rule."

About the author

Dhanasekar Dhandapani is a Lotus Notes consultant working for Wipro Technologies in Bangalore, India. He started off his career as a Java guy and later took on Lotus Domino and has been working with it for almost five years, beginning with Release 4.5. His recent projects include an employee details change request system for a large French bank, a Divisional Scorecard system, a Company Centric System, and SMM/Board meeting automation for some of the Singapore Ministries. These days he is concentrating more on developing add-on utilities using Java and C/C++ API toolkits. He can be reached at dhanasekar.dhandapani@wipro.com.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Lotus
ArticleID=12908
ArticleTitle=Applying the Fishbone diagram and Pareto Principle to Domino
publish-date=06282004
author1-email=dhanasekar.dhandapani@wipro.com
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.

Special offers