CMM และประโยชน์การใช้งาน


Capability Maturity Model คือ การปรับปรุงขบวนการผลิต Software โดยมีลักษณะคล้ายคลึงกับ Quality control ในอุตสาหกรรม เป้าหมายของ CMM คือเพิ่มคุณภาพของ Software

CMM พัฒนาโดย Software Engineering institue (SEI) ในปี ค.ศ. 1987 เพื่อเป็นมาตรฐานในการวัดขบวน การผลิต Software โดยมีการแบ่งการผลิต Software ออกเป็น 5 ประเภทหรือขั้นตอน คือ

ภาพด้านล่างแสดงระดับของการปรับปรุงการผลิต

 

คุณลักษณะของประเภทในการผลิต Software อธิบายโดยละเอียดได้ดังนี้

Level 1 – Initial

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

 

Level 2 – Repeatable

ในการเข้าสู่ระดับที่สองนี้ องค์กรต้องมีการวางแผนการผลิต Software เพื่อควบคุมค่าใช้จ่ายและตารางเวลาของการผลิตโดยวางแผนจากการผลิตครั้งก่อนๆ ที่มีลักษณะคล้ายคลึงกัน ระดับที่สองนี้ เป็นพื้นฐานสำหรับการเข้าสู่การปรับปรุงการผลิตระดับที่สาม เนื่องจากเริ่มมีการใช้การจัดการเพื่อควบคุมคุณภาพของ Software ขั้นตอนการผลิตจะมีลักษณะดังรูปข้างล่างนี้

 

Level 3 – Defined

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

 

Level 4 – Managed

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

 

Level 5 – Optimizing

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

 

 

ตัวอย่างการใช้ CMM ในการปรับปรุงขบวนการผลิต


ตัวอย่างที่ยกมานี้เป็นการนำตัวอย่างการผลิต Software เพื่อใช้ในเพื่อใช้ในการวิเคราะห์ Investment ของ MSG ตามหนังสือ Software Engineering with JAVA

LEVEL 1 – Initial

สำหรับองค์กรในระดับที่หนึ่งนี้จะไม่มีการวางแผนการผลิตใด ๆ ทั้งสิ้น โดยจะมอบหมายให้โปรแกรมเมอร์เขียนโปรแกรมโดยตรง

LEVEL 2 – Repeatable

ขั้นตอนในการผลิตจะเป็นดังนี้คือ

  1. การวิเคราะห์ความต้องการของลูกค้า เพื่อเป็นพื้นฐานในการวางแผนการผลิต โดยอาจมีการพัฒาต้นแบบมาก่อนโดยใช้ Rapid Prototyping ขั้นตอนนี้จะอยู่ใน Requirement Phase และ Specification Phase ตามหนังสือ
  2. การวางแผนในการผลิตทั้งในส่วนการจัดการและเชิงวิศวกรรม ส่วนนี้จะอยู่ใน Planning phase และ ตัวอย่างของเอกสารอยู่ที่ Appendix F ตามหนังสือ
  3. การควบคุมการผลิตให้เป็นไปตามแผนการผลิต ขั้นตอนนี้จะมีการตรวจสอบการผลิตโดยมีลักษณะคล้ายคลึงกับ Fountain model ใน Sofeware Life cycle model
  4. ในกรณีมีการว่าจ้าง Subcontractor ต้องกำหนดรวมไปใน ส่วนของ Requirement phase และ Planning phase ด้วย
  5. กำหนดบุคลากรเพื่อใช้ในการตรวจสอบคุณภาพของผลิตภัณฑ์ โดยตรงกับ SQA ในหนังสือ

LEVEL 3 – Defined

เนื่องจากตั้งแต่ระดับที่สามถึงห้าจะเน้นการปรับปรุงในเชิงประสิทธิภาพขององค์กรและบุคลากรรวมถึงการจัดการในองค์กร จึงไม่สามารถยกตัวอย่างตามหนังสือได้

ขั้นตอนการผลิตจะเพิ่มเติมจาก LEVEL 2 ดังนี้คือ

  1. องค์กรต้องมีการเพิ่มเติมทักษะในการทำงานให้แก่ Software Team โดยการจัดการให้มีการอบรมเมื่อมีการนำเทคโนโลยีใหม่ๆ มาใช้
  2. องค์กรต้องมีการเพิ่มประสิทธิภาพในการผลิต เช่นการนำเอา CASE Tools มาใช้เป็นต้น

LEVEL 4 – Managed

  1. Quantitative Process Management เป็นการควบคุมประสิทธิภาพในการผลิต โดยมุ่งความสนใจไปยังส่วนการผลิตย่อยๆ
  2. Software Qualitive Management เป็นการพัฒนาคุณภาพของ Software product โดยประเมินผลจากขั้นตอนการผลิต

LEVEL 5 – Optimizing

  1. Defect Prevention ต้องมีการวิเคราะห์ขั้นตอนในการผลิต และหาสาเหตุของข้อผิดพลาด แล้วเปลี่ยนการผลิตเพื่อป้องกันข้อบกพร่องที่อาจเกิดขึ้น
  2. Technology Change management ประเมิน Cost benefit ในการนำเอาเทคโนโลยีใหม่ๆ มาใช้ เช่น นำเอา CASE tool มาใช้เพื่อเพิ่มประสิทธิภาพและลดขั้นตอนในการเขียนโปรแกรม เป็นต้น
  3. Process Change management เป็นการเพิ่มคุณภาพของ Software product โดยเลือกขั้นตอนการผลิตที่เหมาะสม โดยใช้ควบคู่ไปกับ Defect Prevention

ภาพด้านล่างแสดงองค์ประกอบสำคัญในแต่ละระดับ