เมื่อกล่าวถึงคำว่า
product เราหมายถึงสินค้าทีิ่ผู้้ผลิตเสนอต่อลูกค้าและเป็นสิ่งที่่ตรงตามความต้องการของลูกค้า ส่วน quality คือ ในทางการตลาด คือความพึงพอใจ ระดับสูง ที่เกิดกับลูกค้า ดังนั้น
software product quality จึงหมายถึงสิ่งที่สร้างความพึงพอใจระดับสูงแก่ ลูกค้าจากโปรแกรมที่ ส่งมอบ เป็นส่วนที่ลูกค้าจะได้สัมผัสจากการใช้งาน ไม่ว่าโปรแกรมนั้นจะพัฒนามาจาก tools ชนิดใดหรือกระบวนการใดก็ตาม เพราะคำว่า “คุณภาพ” เกิดขึ้นที่ลูกค้า มิได้เกิดที่ผู้ผลิต ดังคำที่ปรมาจารย์ทางการตลาด Peter Ducker
กล่าวไว้ว่า
"Quality in a product or service is not what the supplier puts in. It is what the customer gets out and is willing to pay for.": Peter Ducker
Quality guru
ท่านหนึ่งชื่อ Philip Crosby ผู้นำเสนอ management theory and quality management practices ที่ เป็นที่ ยอมรับทั่วโลก ได้นิยามถึง quality ว่าคือ "Conformance to requirements” ซึ่งในทาง software คือ ตรงตามความต้องการของผู้ใช ้(มิใช่ตรงตามความต้องการของผู้เขียนโปรแกรม )
ส่วน
Quality guru อีกท่านหนึ่งชื่อ Joseph M. Juran ผู้เป็นบิดาแห่ง Quality management
ซึ่งเป็นหลักการที่ญี่ปุ่นใช้ในการจัดการด้านคุณภาพมายาวนานจนเป็นผู้นำตลาดในระดับโลกมาถึงทุกวันนี้ท่านกล่าวว่า Quality คือ "Fitness for use." และย้ำว่า Fitness is defined by the customer ดังนั้น การเลือกซื้อโปรแกรมที่ใหญ่หรือเล็ืกเกินไป จึงไม่สามารถสร้าง Quality ให ้เกิดขึ้นได ้
จะเห็นได้ว่า หากเราจะพูดถึง software ที่มีคุณภาพ เราจะต้องถือเอามุมมองของ ลูกค้าเป็นสำคัญ มิใช่มุมมองทางด้านผู้สร้าง software นั้น หรือมุมมองทางด้าน เทคโนโลยี โดยที่ไม่ได้ให้ความสำคัญต่อความพึงพอใจของผู้ใช้งาน ดังนั้นเราจึงพบว่า การนำเสนอโครงการที่เกี่ยวกับ IT ที่ ใช ้technology approach มักจะประสบความ ล้มเหลว เพราะจะเสนอมุมมองทางด้านเทคโนโลยี เป็นหลัก จนทำให ้ ละเลยความสำคัญ ของ people ware
ประเด็นที่ ต้องพิจารณา
Software product quality มีอะไรบ้าง
- Product quality
- conformance to requirements คือ ตรงตาม user requirement จริงๆ
- Scalability
- สามารถ upsize และ downsize ได้อย่างเต็มที่ และไม่บังคับให ้ทุกหน่วยงานที่เล็กต้องใช้ระ้บบที่ใหญ่เทอะทะ เป็นการขี่ช้างจับตั๊กแตน และที่ต้องไม่ลืมคือ Correctness ของข้อมูล ทั้งการ scale up หรือ scale down ต้องสามารถทำได ้ อย่างร้อยเปอร์เซนต์
- Completeness กรณีที่ เป็ นโปรแกรมสำเร็จรูปคือ มีความสมบูรณ์ตามที่ได้เสนอ มิใช่โปรแกรมที่่ยังทำไม่เสร็จสมบูรณ์ ซึ่งเป็นการเสี่ยงอย่างยิ่งต่อความสาเร็จของโครงการ
- Absence of bugs
- คือไม่เต็มไปด้วยบั๊ก ซึ่งในกรณีนี้มิได ้หมา่ยถึง โปรแกรมจะไม่มีบั๊กเลย และ โปรแกรมใหญ่ๆทุกตัวมี bug ทั้งสิ้น แต่โปรแกรมที่ดี ไม่ควรเจอบั๊กรายวัน หรือ เจอบั๊กแล้วไม่สามารถแก้ได ้ ในเวลาอันควร โดยที่ ระบบไม่สามารถ recover ได้
”Bug คืออะไรที่ยังไม่รู ้ ว่ามีอยู่ และอยู่ ตรงไหน และเมื่อใดที่ เจอแล้ว มันจะไม่เป็น bug อีกต่อไป”
-
Fault-tolerance
คือทนต่อความผิดพลาดที่ คาดไม่ถึง ซึ่งโปรแกรมที่ออกแบบมาอย่างดี จะ สามารถปรับตัว และเดินหน้าได ้ ตลอดเวลา ซึ่งการกระทบกระเทือนอาจจะมาจาก Hardware OS DBMS Network รวมทั้งแรงกระทบจากเทคโนโลยีใหม่ๆ ดังนั้น software เหล่านี้จึงต้องมีความสามารถที่ จะ
- Extensibility
- คือขยายความสามารถให ้ ครอบคลุม environment ใหม่ๆ และเทคโนโลยีใหม่ๆ
- Maintainability
- คือสามารถบำรุงรักษาได ้ อย่างไม่ขาดช่วง ในทุกๆ่สถานการณ์
การที่ผู้ผลิตรายใดก็ตามที่อยู่ ในตลาดมายาวนาน และสามารถพัฒนา โปรแกรมอย่างต่อเนื่อง สามารถ
migrate ระบบของลูกค้ารุ่นเก่าๆ มา version ใหม่ได ้100% และระบบต่างๆก็สามารถ link กันได ้100% เป็นตัวชี้วัดควาีมเป็น fault-tolerance ของ software ได ้เป็นอย่างดี Documentation Software จะมีคุณภาพดีได ้นั้น จะต้องตอบสนองความต้องการของผู้ใช้จึงจะ สร้างความพึงพอใจของผู้ได ้ หาก software ที่เขียนมาดีมาก แต่ผู้ใช้ไม่สามารถ นำความสามารถเหล่านั้นมาใช้ ก็ไม่สามารถสร้าง quality ได ้ ดังนั้นคู่มือการใช ้ งานที่ เพียงพอจึงเป็นส่วนสาคัญที่ จะทำให ้ผู้ใช้ได้้เข้าถึงความพึงพอใจสูงสุดไ่้ด้