Biểu đồ xương cá đi học trễ

Thông thường khi xảy ra một vấn đề thì nguyên nhân thường được đổ lỗi lòng vòng. Điều này gây ra sự mẫu thuẫn trong nội bộ, cũng như sự thiếu trung thực, đổ lỗi lẫn cho nhau dẫn tới việc communication giữa các bên thất bại dẫn tới hoạt động hoặc dự án có thể bị đổ vỡ. Cách tốt nhất giải quyết việc này là cần xác định được nguyên nhân cốt lõi [root cause] của vấn đề thay vì chỉ quan sát bề ngoài của vấn đề [mà chúng ta gọi là hiện tượng].

Cách thức mang tính hệ thống và có cơ cấu này người ta gọi là Root Cause Analysis. Có nhiều công cụ ứng dụng để phát triển Root Cause Analysis thì cách phổ biến nhất được nhiều công ty sử dụng là mô hình 5 TẠI SAO ? [5 WHY?] của công ty TOYOTA. Cơ bản công cụ này được hiểu là việc sử dụng câu hỏi TẠI SAO nhiều lần cho đến khi tìm ra được yếu tố cốt lõi nhất [atomic-yếu tố hạt nhân] nhưng phải đảm bảo có thể xử lý được [actionable]. Để mô hình hóa quy trình “5-WHY?” người ta áp dụng mô hình xương cá [Fishbone Diagram hay Ishikawa diagram ].

Lịch sử

– Biểu đồ xương cá [ fishbone diagram ] hay biểu đồ nguyên nhân – kết quả có tên gốc là phương pháp Ishikawa là 1 phương pháp nhằm nhận diện vấn đề và đưa ra giải pháp trong quản lý, lãnh đạo.

– Được ông Kaoru Ishikawa đưa ra vào những năm 1960. Ông là người tiên phong về quản lý chất lượng tại nhà máy đóng tầu Kawasaki và được xem là người có công với quản lý hiện tại.

Biểu đồ xương cá là gì?

– Được xem là 1 trong 7 công cụ cơ bản của Quản lý chất lượng, bao gồm Histogram, ParetoChar, checksheet, control chart, Flowchart và scatter diagram.

– Nó được gọi là xương cá vì biểu đồ này có hình dạng giống xương cá.

Mục đích

– Phân tích biểu đồ nhân quả giúp tổ chức hình dung xuyên suốt những nguyên nhân của một vấn đề, nó có thể bao gồm cả những nguyên nhân gốc rễ mà không phải chỉ là các hiện tượng.

– Phát triển các kế hoạch để xác nhận rằng những nguyên nhân tiềm ẩn là những nguyên nhân thực sự.

– Cung cấp cấu trúc cho nỗ lực xác định nguyên nhân.

Thảo luận về biểu đồ cuối cùng

– Khi giải thích một biểu đồ nhân quả, nhiệm vụ chính của tổ chức là kiểm tra sự hoàn thành hay tính đầy đủ của biểu đồ. Để làm tốt điều này, chúng ta có thể xem xét những điểm sau:

+ Chắc chắn rằng những câu hỏi theo dạng 4W’s và 5M’s hoặc 5P’s đã được áp dụng cho tác động hoặc hiện tượng.

+ Thông thường, mỗi một nhánh chính của biểu đồ sẽ được thêm vào ít nhất từ 3 đến 4 nhánh nhỏ.

+ Xác minh lại rằng nguyên nhân ở cuối của mỗi chuỗi nhân quả là một nguyên nhân gốc rễ tiềm ẩn bằng cách kiểm tra tính logic trong mối quan hệ nhân quả, thông qua tất cả các nguyên nhân trung gian tới tác động cuối cùng.

– Biểu đồ nhân quả quan trọng ở chỗ, nó phân biệt giữa giả định và thực tế. Biểu đồ nhân quả thể hiện những giả định, chi khi những giả định này được kiểm tra với số liệu chúng ta mới có thể chứng minh được các nguyên nhân của hiện tượng đã quan sát thấy.

– Gợi mở ra các hiện tượng vượt ra ngoài giới hạn giúp tổ chức trong việc phát hiện các nguyên nhân gốc rễ tiềm tàng.

– Xác định những nguyên nhân mà tổ chức cho rằng đây là những nguyên nhân then chốt nhất cho sự điều tra tiếp theo. Đồng thời, đánh dấu các nguyên nhân đó lại.

– Làm sáng tỏ các nguyên nhân gốc rễ bằng một hoặc nhiều các cách sau:

+ Tìm các nguyên nhân mà xuất hiện lặp đi lặp lại tại các nhánh xương nguyên nhân chính.

+ Tập hợp dữ liệu thông qua các checksheet hoặc những dạng khác để xác định mối quan hệ thường xuyên của các nguyên nhân khác nhau.

Chú ý:
– Để làm được một biểu đồ xương cá hiệu quả không phải là một nhiệm vụ dễ dàng, có thể nói rằng, những ai thành công trong giải quyết vấn đề kiểm soát chất lượng là những người thành công trong việc tạo ra một biểu đồ nhân quả hữu ích.

– Khi mối quan hệ giữa nguyên nhân gốc rễ và tác động đã được xác định, để hiểu được độ mạnh của mối quan hệ nhân quả này cần sử dụng các số liệu khách quan. Khi đó, đặc tính và các yếu tố có tính nguyên nhân cần được đo lường. Nếu không thể đo lường chúng, tổ chức cần cố gắng làm chúng có thể đo lường được hoặc tìm những đặc tính thay thế phù hợp.

– Sự kiểm tra các yếu tố dựa trên những kinh nghiệm và kỹ năng của các thành viên trong nhóm là rất quan trọng, nhưng lại rất nguy hiểm để đưa ra những quyết định có tầm quan trọng thông qua sự nhận thức chủ quan hoặc mang tính cảm giác. Bởi vậy, việc xác định tầm quan trọng cho các yếu tố phải bằng cách sử dụng các dữ liệu khách quan bao gồm cả tính khoa học và logic.

– Tổ chức có thể sử dụng biểu đồ nhân quả như một dạng văn bản. Văn bản này sẽ được cập nhật song song với việc tổ chức thu thập dữ liệu hoặc thử nghiệm các giải pháp khác nhau nhằm giải quyết vấn đề.

Các bước tạo một Biểu đồ Xương cá

  1. Xác định vấn đề: ghi lại chính xác vấn đề một cách chi tiết [ áp dụng 5w: what, who, when, where, how]. Viết vấn đề vào ô bên phải tờ giấy. Sau đó kẻ một đường ngang, chia giấy của bạn ra làm 2. Lúc này bạn đã có “đầu & xương sống” của con cá trong sơ đồ xương cá.
  2. Xác định các nhân tố ảnh hưởng: ứng với mỗi nhân tố, vẽ một nhánh “xương sườn”. Cố gắng liệt kê càng nhiều nhân tố càng tốt, ví dụ hệ thống, cơ sở vật chất, máy móc, nguyên liệu, yếu tố bên ngoài ..v..v… Nếu bạn có 1 nhóm để xử lý vấn đề thì đây là lúc cần áp dụng các kỹ thuật brainstorming.
  3. Tìm ra nguyên nhân có thể có, thuộc về từng nhân tố [đã tìm ra trong bước 2] , ứng với mỗi nguyên nhân, lại vẽ một “nhánh xương con”. Nếu nguyên nhân của bạn quá phức tạp, có thể chia nhỏ nó thành nhiều cấp.
  4. Phân tích sơ đồ: sơ đồ đã xây dựng là một danh sách đầy đủ các nguyên nhân có thể xảy ra, bạn có thể kiểm tra, khảo sát, đo lường .v..v.. để xác định đâu là các nguyên nhân chính rồi từ có có những kế hoạch cụ thể để sửa chữa.

Ví dụ 
Phân tích các nguyên nhân của vấn đề: “Nhân viên không áp dụng những phương pháp mới đã được đào tạo”. Sau khi thảo luận để tìm ra nguyên nhân, nhóm làm việc biểu diễn bằng 1 sơ đồ xương cá như sau:

・Biểu đồ xương cá, hay còn gọi là biểu đồ Ishikawa hay biểu đồ nguyên nhân - kết quả [ Fishbone diagram, Ishikawa diagram, Cause-and-effect diagram ] là 1 trong 7 công cụ kiểm soát chất lượng cơ bản như liệt kê dưới đây, là một phương pháp nhằm nhận diện vấn đề và đưa ra giải pháp, một trong những yếu tố cốt lõi để xây dựng - đảm bảo - nâng cao chất lượng.

a. Fishbone diagram [Cause-and-effect diagram, Ishikawa diagram]: biểu đồ xương cá

b. Check sheet: phiếu [biểu] kiểm tra

c. Control charts: biểu đồ kiểm soát

d. Histogram: biểu đồ phân bố

e. Pareto chart: biểu đồ Pareto

f. Scatter diagram: biểu đồ phân tán

g. Flow charts: biểu đồ dòng chảy

・Công cụ này do giáo sư Kaoru Ishikawa - một giáo sư chuyên ngành kỹ thuật của trường đại học Tokyo sáng chế vào thập niên 50.

・Đây là một biểu kỹ thuật đồ họa, có hình dạng giống xương cá, lấy cơ sở là lý thuyết thống kê, thu thập các dữ liệu theo mục đích đã định, phân tích các dữ liệu để giải quyết hoặc cải tiến vấn đề. Nó được gọi là cơ bản vì 1. ngay cả những người ít được đào tạo về thống kê cũng có thể sử dụng được và 2. nó có thể được sử dụng để giải quyết phần lớn các vấn đề liên quan đến chất lượng.

・Công cụ này đã được áp dụng hiệu quả từ những năm 1960s và đã được người Nhật sử dụng rất thành công.

2. Tác dụng của việc sử dụng biểu đồ xương cá

  • Đưa ra một cấu trúc, định hướng cho việc xác định nguyên nhân. -> Giúp cho việc xác định nguyên nhân nhanh chóng và hiệu quả.

  • Khi áp dụng biểu đồ này, người dùng sẽ có khả năng tìm ra các nguyên nhân tiềm tàng và nguyên nhân cốt lõi gây nên vấn đề.

  • Nhìn vào biểu đồ xương cá này, người đọc sẽ cóhình dung đầy đủ nguyên nhân của một vấn đề . Việc lập biểu đồ sẽ chỉ rõ từng nguyên nhân, từ đó có thể đưa ra hướng giải pháp cụ thể cho từng nguyên nhân một.

3. Cách tạo một biểu đồ xương cá

Bước 1: Xác định vấn đề. Vấn đề này chính là hệ quả của nguyên nhân sẽ xác định.

Bước 2 và bước 3 là xác định nguyên nhân chính và nguyên nhân phụ. Có thể thực hiện theo 1 trong 2 cách sau.

Cách 1:

  • Bước 2: Động não, suy nghĩ tỷ mỉ kỹ lưỡng để tìm ra tất cả các nguyên nhân có thể có của vấn đề. Ở bước này chưa phân biệt nguyên nhân chính và nguyên nhân phụ.

  • Bước 3: Sắp xếp, tổ chức lại tất cả những kết quả đã động não được. Nhóm các nguyên nhân phụ lại vào trong 1 nguyên nhân chính.

Cách 2:

  • Bước 2: Liệt kê danh sách tất cả các nguyên nhân chính của vấn đề. Có thể áp dụng 5W 1H, trả lời cho các câu hỏi What: vấn đề gì, Who: những ai liên quan, When: xảy ra khi nào, Where: Xảy ra ở đâu, Why: Tại sao xảy ra, How: xảy ra như thế nào... để đưa ra nguyên nhân chính

  • Bước 3: Tiếp tục động não suy nghĩ những nguyên nhân cụ thể hơn, trực tiếp gây ra nguyên nhân chính [Nguyên nhân cấp 1]. Nếu cần phân tích sâu hơn thì tiếp tục tìm ra những nguyên nhân khác nhỏ hơn, trực tiếp gây ra nguyên nhân cấp 1.

Bước 4: Xây dựng một biểu đồ xương cá, hiển thị chính xác mối quan hệ giữa các data trong mỗi category như các bước dưới đây

+Vẽ 1 ô vuông ở ngoài cùng bên tay phải của tờ giấy

+Vẽ 1 mũi tên nằm ngang , hướng đầu mũi tên về phía ô vuông ở trên

+Bên trong ô vuông trên, viết mô tả vấn đề đang cố gắng giải quyết

+Từ trục chính nằm ngang này, vẽ các nhánh chính và viết tên của các category ở phía trên và phía dưới của đường mũi tên nằm ngang trên [Đây như là các cành to của một thân cây chính]

+Từ các nhánh chính này, vẽ các nhánh phụ và viết nguyên nhân chi tiết cho mỗi category [Đây như là các cành nhỏ và các nhánh con]

Mỗi biểu đồ xương cá sẽ có rất nhiều nhánh con. Nếu biểu đồ không có nhiều nhánh con thì nó thể hiện rằng việc hiểu vấn đề còn đang rất hời hợt, chưa hiểu rõ bản chất của vấn đề. Có thể phải cần có sự giúp đỡ của người khác hỗ trợ để hiểu vấn đề, ví dụ như người mà liên quan trực tiếp đến vấn đề.

4. Khi lập biểu đồ xương cá thì cần chú ý các vấn đề sau

  • Cần có sự tham gia của tất cả những người có liên quan đến vấn đề, từ người quản lý đến người liên quan trực tiếp và liên quan gián tiếp đến vấn đề. Vấn đề cần được xem xét, phân tích, cần có sự trao đổi ý kiến giữa các bên liên quan trực tiếp và gián tiếp.

  • Cần nhìn vấn đề một cách tổng thể toàn diện để có thể tìm ra đầy đủ tất cả các nguyên nhân có thể có.

  • Người xây dựng biểu đồ cần biết lắng nghe, tiếp thu ý kiến mà những người có liên quan trực tiếp cũng như gián tiếp đến vấn đề đã đưa ra, tổng hợp, tóm gọn các ý kiến lại.

  • Sau khi xây dựng , cần đưa biểu đồ ra để toàn bộ các thành viên review lại, bổ sung và chỉnh sửa nếu cần. Ngoài ra có thể hỏi thêm ý kiến của một vài người khác có kiến thức về hoạt động của quá trình.

II. Sử dụng biểu đồ xương cá trong quản lý chất lượng dự án test

Đối với 1 dự án phần mềm, việc đảm bảo chất lượng của đợt test, không để bỏ sót bug là hết sức quan trọng. Ngay khi phát hiện ra tester đã để lọt bug [kể cả giai đoạn đang test và giai đoạn đã release cho khách hàng] thì chúng ta cần phải tìm ra nguyên nhân vì sao để sót lỗi để có hướng ngăn chặn cho những lần test sau.

Khi điều tra nguyên nhân vì sao để sót lỗi, tôi thấy có thể xảy ra các trường hợp sau:

1. Đã có testcase để check cho trường hợp đó. => Ở đây chúng ta cần phải tìm nguyên nhân Vì sao bug đó đã không được raise lên cho khách hàng ?

1.1 Đã làm đúng toàn bộ các điều kiện phát sinh bug: môi trường, thao tác v.v, bug có xảy ra nhưng lại không report cho khách hàng do:

  • Tester không nhận thức đó là bug nên đã không report lên.

  • Tester nhận thức đó là bug nhưng lại lack không report lên. Ví dụ tester note lại trong testcase bản cứng hoặc bản mềm, sau đó quên không log trong file defect gửi cho khách hàng.

  • Bug đã chỉ phát sinh đúng 1, 2 lần. Sau đó làm lại thì bug không xảy ra nên Tester đã không report. Hoặc để tái hiện, điều tra thì mất thời gian chuẩn bị môi trường, thời gian test không còn nhiều nên đã không có đủ thời gian tìm hiểu lại, nên không report.

  • Tester nhận thức là bug, có report lên nhưng bị team leader reject.

  • Tester nhận thức là bug, có report lên nhưng team leader đã để sót bug này khi tổng hợp để report cho khách hàng.

1.2 Đã không có đầy đủ các điều kiện phát sinh bug nên khi test, bug đã không xảy ra. Vì thế không phát hiện ra được.        TH1:Thao tác test đúng, nhưng môi trường test không đúng [Trường hợp lỗi chỉ xảy ra trên 1 môi trường đặc định].

  • Khách hàng có require test trên môi trường đó nhưng lại để sót môi trường.

  • Khách hàng có require test trên môi trường đó nhưng khi dựng môi trường lại làm không đúng theo require.

  • Windows không được update theo đúng require của khách hàng.
  • Môi trường không sạch: ví dụ như trước đó đã thực hiện install, uninstall nhiều lần rồi.
  • Thiếu không cài 1 số phần mềm mà khách hàng đã yêu cầu.
  • Cài sai version của 1 số phần mềm mà khách hàng đã yêu cầu.
  • Khách hàng không require cụ thể mà cho chọn môi trường, và khi test testcase đó thì đã test trên môi trường khác.

  • Khách hàng không chỉ định test trên môi trường đó.

TH2: Môi trường test đúng, nhưng thao tác test chưa đúng [Trường hợp lỗi chỉ xảy ra khi thực hiện đúng theo các bước XYZ].

  • Testcase đã ghi thao tác cụ thể và nếu thực hiện theo đúng testcase thì sẽ ra bug. Tuy nhiên tester đã đọc sót testcase, dẫn đến sót thao tác.

  • Testcase đã ghi thao tác cụ thể và nếu thực hiện theo đúng testcase thì sẽ ra bug. Tuy nhiên tester đã hiểu sai 1 số thao tác nên đã thực hiện thao tác khác.

  • Testcase đã ghi thao tác cụ thể và nếu thực hiện theo đúng testcase thì sẽ ra bug. Tuy nhiên tester đã thực hiện không theo đúng tuần tự các bước đã ghi, ví dụ như thực hiện bước 3 -> bước 2

  • Testcase đã ghi thao tác cụ thể và nếu thực hiện theo đúng testcase thì sẽ ra bug. Tuy nhiên trong quá trình thực hiện các bước theo testcase, tester đã thực hiện thêm 1 bước nào đó không ghi trong testcase. Tuy nhiên tester lại nhận thức rằng đáng lẽ phải có thêm bước đó, và cũng không confirm lại với khách hàng khi thấy testcase không ghi bước đó.

  • Testcase đã ghi thao tác cụ thể và nếu thực hiện theo đúng testcase thì sẽ ra bug. Tuy nhiên trong quá trình thực hiện các bước theo testcase, tester đã vô tình thực hiện thêm 1 bước nào đó không ghi trong testcase.

  • Testcase không ghi thao tác cụ thể, và tester có thể thao tác theo nhiều kiểu khác nhau đều sẽ ra kết quả xác nhận. Và thực tế thì thao tác mà tester đã thực hiện không đúng với thao tác để có thể sinh ra bug.

1.3 Tester đã không test testcase đó

  • Khách hàng có require test testcase đó nhưng do leader hiểu sai requirement nên đã không giao cho tester test

  • Khách hàng có require test testcase đó nhưng trong quá trình giao testcase cho tester, leader đã bị giao sót testcase đó: ví dụ in sót, hoặc in bị lỗi, hoặc testcase đó vô tình bị bôi đen đi.

  • Leader có giao testcase đó nhưng Tester đã bị bỏ sót không test testcase đó.

  • Khách hàng cho phép chọn testcase random và leader đã không chọn testcase đó.

  • Khách hàng cho phép chọn testcase random và leader để cho tester tự chọn. Bản thân tester đã không chọn testcase đó.

  • Khách hàng đã không yêu cầu test testcase đó

2. Đã không có testcase check cho trường hợp đó => Ở đây chúng ta cần phải trả lời cho câu hỏi Vì sao testcase đó đã không được add vào ?

  • Testcase do khách hàng cung cấp, khách hàng đã không tạo testcase đó.
  • Testcase do dự án viết theo những chỉ định của khách hàng. Trong nội dung chỉ định thì đã không có nội dung đó.
  • Testcase do dự án viết theo chỉ định của khách hàng. Trong nội dung chỉ định có trường hợp đó nhưng người viết đã bị bỏ sót.
  • Testcase do dự án viết theo chỉ định của khách hàng. Trong nội dung chỉ định thì có nội dung đó, nhưng khi viết testcase đã không cover được hết các trường hợp thao tác.

=>=>Từ việc tìm hiểu các nguyên nhân như trên chúng ta có thể đưa ra biểu đồ xương cá với các nguyên nhân chính và nguyên nhân phụ như sau.

Nhìn vào biểu đồ trên, ta có thể thấy ở tất cả các giai đoạn của quá trình test, nếu chúng ta không làm tốt từng giai đoạn, không kiểm soát chặt chẽ chất lượng từng giai đoạn thì giai đoạn nào cũng có thể là nguyên nhân dẫn đến bị bỏ sót bug. Ví dụ như ngay từ bước tạo file requirement chỉ thị nội dung test, nếu bản requirement có format khó đọc, khó nhìn, dễ gây hiểu lầm, hay nội dung liên tục bị update lại thì sẽ làm cho người được chỉ thị dễ bị hiểu sai, sót requirement -> bỏ sót nội dung cần test -> để sót bug [test lead hay tester]. Hoặc giai đoạn report cuối cùng, nếu việc quản lý file log bug không tốt, thì cũng dễ dẫn đến leader report sót bug cho khách hàng.

Trên đây mình đã đưa ra những nguyên nhân có thể dẫn đến bỏ sót bug. Hi vọng nó sẽ giúp các bạn đang quản lý dự án test cũng như các bạn đang thực hiện việc test có cái nhìn đầy đủ về tổng thể dự án, có biện pháp quản lý chất lượng cho từng giai đoạn để đảm bảo chất lượng chung của cả dự án.

Video liên quan

Chủ Đề