top of page

การประกันคุณภาพซอฟต์แวร์ ตอนที่ 1 : มุมมองด้านคุณภาพ

Quality view.jpg

Quality Assurance หรือ QA เชื่อว่าทุกคนที่อยู๋ในวงการซอฟต์แวร์เคยได้ยินชื่อนี้ ทั้งในตำราเรียน การอบรม และชีวิตการทำงาน ตัวผู้เขียนเองยังเคยได้ยินชื่อ QA ที่เป็นชื่อตำแหน่งงานในบริษัทซอฟต์แวร์หลายๆที่ แต่จริงๆ แล้วไม่ได้ทำหน้าที่ QA จริงๆ ตัวผู้เขียนเองทำงานมาก็หลายตำแหน่งตั้งแต่โปรแกรมเมอร์จนถึง project manager แถมยังได้ทำตำแหน่งที่ใครๆเค้าก็เรียกเราว่า QA ด้วย ได้ยินเรื่อง QA มาก็มาก แต่ก็ยังมีความรู้สึกว่ามันเป็นเรื่องยาก ลอยๆ จับต้องไม่ได้ ยังไงไม่รู้ บอกไม่ถูก แถมยังสับสนอีกต่างหากว่าตกลง QA เค้าทำงานอะไรกันแน่

เมื่อเร็วๆนี้ได้มีโอกาสหยิบคู่มือเล่ม หนึ่งที่เขียนเกี่ยวกับ QA ล้วนๆ มาค่อยๆอ่าน (ต้องค่อยๆอ่านจริงๆ เพราะภาษาอังกฤษไม่ค่อยแข็งแรง เป็น guide book ของ Quality Assurance Institute ที่ใช้สำหรับการสอบ CSQA certification หากใครสนใจลองเข้าไปดูได้ใน website www.softwarecertifications.org) ก็ค่อยๆ ไขความเข้าใจให้กระจ่างที่ละเล็กละน้อย เลยอยากเอาความเข้าใจที่ได้ มาแบ่งปันกัน

โดยในตอนแรกนี้ จะขอพูดถึงเรื่องมุมมองด้านคุณภาพกันก่อน เพื่อสร้างความเข้าใจพื้นฐานเกี่ยวกับงานด้าน QA คำ ว่า "คุณภาพ" ในนิยามและจินตนาการของแต่ละคนย่อมมีความแตกต่างกัน ในอุตสากรรมซอฟต์แวร์ก็เช่นกัน หลายๆคนที่ทำโปรเจกต์ในการพัฒนาซอฟต์แวร์ คงเคยเจอกับปัญหาที่ทำเท่าไหร่ลูกค้าก็ไม่พอใจ หรือเขียนโปรแกรมกันมาเป็นย่างดี ถูกต้องตาม requirement และ program specification ทุกอย่าง ทดสอบมาอย่างดี แทบไม่มี bug เรียกว่าของเราคุณภาพเจ๋งจริง proud to deliver and present to customer แต่ว่าทำไม "ลูกค้าไม่พอใจ" และ "ไม่ตรวจรับ" บทความตอนนี้จะชี้ให้เห็นถึงมุมมองที่แตกต่างกันและช่องว่างที่เกิดขึ้น ระหว่างผู้ผลิตและลูกค้า เพื่อสร้างความเข้าใจที่ตรงกันและการยอมรับถึงความแตกต่างนั้น ส่วนจะทำอย่างไรเพื่อลดช่องว่างนั้น ติดตามได้ในตอนต่อๆไป

ในอุตสาหกรรมทั่วไปมีการให้นิยามหรือคำจัดกัดความของคุณภาพไว้ด้วยกัน 2 แบบที่แตกต่างกันคือ

ตรงตามความต้องการ (conformance to requirements – นิยามโดย Philip Crosby)

ใช้งานได้ดี (fit for use – นิยามโดย Dr.Joseph Juran และ Dr.Edwards Deming)

ในนิยามแรก “ตรงตามความต้องการ” นั้นเป็นการนิยามในมุมมองของผู้ผลิตที่มี หน้าที่รับผิดชอบต่อการผลิตและกระบวนการผลิตและซ่อมบำรุงสินค้าและบริการให้ ได้ตรงกับความต้องการ การกำหนดความต้องการอาจมีความยาก/ง่าย หรือซับซ้อนที่แตกต่างกันไปตามแต่ละโครงการ แต่การกำหนดความต้องการนั้น ควรมีการกำหนดให้เป็นหน่วยที่วัดได้ที่สามารถบอกได้ว่าสินค้าหรือบริการนั้น ตรงตามความต้องการหรือไม่ การทำผลิตที่มีคุณภาพในมุมมองของผู้ผลิตมีคุณสมบัติ 4 ประการ คือ

  • ทำในสิ่งที่ถูกต้อง (Doing the right thing)

  • ทำในแนวทางที่ถูกต้อง (Doing the right way)

  • ทำให้ถูกต้องแต่แรก (Doing it right the first time)

  • ทำให้ทันเวลาโดยไม่มีค่าใช้จ่ายส่วนเกิน (Doing it on time without exceeding cost)

ในส่วนนิยามที่สอง “ใช้งานได้ดี” นั้นเป็นนิยามในมุมของลูกค้าหรือผู้ใช้ที่ต้องการใช้ผลิตภัณฑ์หรือบริการที่ ตอบสนองต่อความต้องการของตนเองแม้ว่าสินค้าหรือบริการนั้นจะไม่ตรงตามข้อ กำหนดความต้องการหรือ requirementก็ตาม สินค้าหรือบริการที่มีคุณภาพในมุมมองของลูกค้าหรือผู้ใช้มีคุณสมบัติดังนี้

  • ได้รับผลิตภัณฑ์/บริการที่ถูกต้องสำหรับใช้งาน

  • มีความพึงพอใจที่ความต้องการของลูกค้าหรือผู้ใช้ได้รับการตอบสนอง

  • ผลิตภัณฑ์หรือบริการเป็นไปตามที่คาดหวัง

  • ได้รับการปฏิบัติด้วยความเคารพ (respect) ให้เกียรติ สุภาพ (courtesy) และซื่อตรง (integrity)

ในมุมมองของคุณภาพที่แตกต่างกันทั้งสองมุมมองนี้ มุมที่สองมีความสำคัญที่สุด โดยเฉพาะในการผลิตซอฟต์แวร์ที่เป็นสินค้าที่จับต้องไม่ได้นั้น ผู้ผลิตซอฟต์แวร์จะต้องมีการพัฒนากระบวนการหรือวิธีการผลิตอย่างต่อเนื่อง เพื่อที่จะสามารถตอบสนองต่อความต้องการและคุณภาพที่ลูกค้าคาดหวังได้

จากมุมมองด้านคุณภาพที่แตกต่างกันระหว่างผู้ผลิตและลูกค้าหรือผู้ใช้ ทำให้เกิดช่องว่างของคุณภาพอยู่ 2 ด้าน (Two quality gaps) ได้แก่

  • ช่องว่างของผู้ผลิต ซอฟต์แวร์ หรือ Producer Gap เป็นความแตกต่างระหว่างซอฟต์แวร์ที่ผู้ผลิตส่งมอบกับซอฟต์แวร์ที่กำหนดไว้ใน ข้อกำหนดซอฟต์แวร์ (Software Specification) หรือซอฟต์แวร์ตามมาตรฐานที่ผู้ผลิตซอฟต์แวร์ได้ตั้งไว้

  • ช่องว่างของลูกค้า หรือ Customer Gap เป็นความแตกต่างซอฟต์แวร์ที่ส่งมอบกับความต้องการที่แท้จริงของผู้ใช้งานซอฟต์แวร์

หน้าที่ของการประกันคุณภาพซอฟต์แวร์นั้น จะต้องทำให้ช่องว่างทั้งสองด้านลดลงโดยการลดช่องว่างของผู้ผลิตนั้น จะทำให้ผู้ผลิตสามารถผลิตซอฟต์แวร์ได้มีคุณภาพที่คงที่ ส่วนการลดช่องว่างของลูกค้าโดยการทำให้ลูกค้าที่ส่วนร่วมให้มากขึ้น จะทำผู้ผลิตซอฟต์แวร์สามารถผลิตซอฟต์แวร์ที่ลูกค้าต้องการได้ด้วยคุณภาพที่ คงที่ได้

ในตอนต่อไปจะกล่าวถึงความแตกต่างระหว่างการประกันคุณภาพ (Quality assurance) และ การควบคุมคุณภาพ (Quality control)

Featured Posts
Recent Posts
Search By Tags
Follow Us
  • Facebook Classic
  • Twitter Classic
  • Google Classic
bottom of page