ว่าด้วยเรื่อง Software Product Quality ที่คนพัฒนาต้องคำนึงถึง

Software Product Quality คืออะไร


เมื่อกล่าวถึงคำว่า 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."

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

จะเห็นได้ว่า หากเราจะพูดถึง 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
ไม่เต็มไปด้วยบั๊ก ซึ่งในกรณีนี้มิได้หมายถึง โปรแกรมจะไม่มีบั๊กเลย เพราะบั๊กคืออะไรที่ยังไม่รู้ว่ามีอยู่และอยู่ตรงไหน แต่โปรแกรมที่ดี ไม่ควรเจอบั๊กรายวัน หรือเจอบั๊กแล้วไม่สามารถแก้ได้ในเวลาอันควร โดยที่ระบบไม่สามารถ recover ได้

Fault-tolerance
คือทนต่อความผิดพลาดที่คาดไม่ถึง ซึ่งโปรแกรมที่ออกแบบมาอย่างดี จะสามารถปรับตัว และเดินหน้าได้ตลอดเวลา ซึ่งการกระทบกระเทือนอาจจะมาจาก hardware OS DBMS Network รวมทั้งแรงกระทบจากเทคโนโลยีใหม่ๆ ดังนั้น software เหล่านี้จึงต้องมีความสามารถที่จะ Extensibility คือขยายความสามารถให้ครอบคลุม environment ใหม่ๆ และเทคโนโลยีใหม่ๆ

Maintainability
คือสามารถบำรุงรักษาได้อย่างไม่ขาดช่วง ในทุกๆสถานการณ์

การที่ผู้ผลิตรายใดก็ตามที่อยู่ในตลาดมายาวนาน และสามารถพัฒนาโปรแกรมอย่างต่อเนื่อง สามารถ migrate ระบบของลูกค้ารุ่นเก่าๆ มา version ใหม่ได้ 100% และระบบต่างๆก็สามารถ link กันได้ 100% เป็นตัวชี้วัดความเป็น fault-tolerance ของ software ได้เป็นอย่างดี

Documentation
Software จะมีคุณภาพดีได้นั้น จะต้องตอบสนองความต้องการของผู้ใช้จึงจะสร้างความพึงพอใจของผู้ได้ หาก software ที่เขียนมาดีมาก แต่ผู้ใช้ไม่สามารถนำความสามารถเหล่านั้นมาใช้ ก็เพราะผู้ใช้ไม่มีคู่มือการใช้งานที่เพียงพอ เอกสารหรือคู่มือจึงเป็นส่วนสำคัญ ที่จะทำให้ผู้ใช้ได้เข้าถึงความพึงพอใจสูงสุดได้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น