เขตอุตสาหกรรมซอฟต์แวร์แห่งประเทศไทย หรือซอฟต์แวร์พาร์ค มีความสนใจในการส่งเสริมให้บริษัทซอฟต์แวร์ และหน่วยงานที่ทำหน้าที่พัฒนาซอฟต์แวร์นำเอากรอบการทำงาน (Framework) ที่เรียกว่า “Capability Maturity Model Integration” หรือ “CMMI” มาใช้ในการปรับปรุงการดำเนินงานของตนมาเป็นเวลากว่าแปดปีแล้ว  โดยเริ่มตั้งแต่นำผู้เชี่ยวชาญจากสถาบันวิศวกรรมซอฟต์แวร์ (Software Engineering Institute หรือ SEI) มาสอนหลักการเรื่อง SW-CMM รวมถึงการจัดหลักสูตรฝึกอบรมอาจารย์และพัฒนาผู้ประเมิน  แม้ว่าต่อมา SW-CMM จะเปลี่ยนมาเป็น CMMI  แต่ทางซอฟต์แวร์พาร์คก็ยังคงไม่ทอดทิ้งแนวคิดนี้  จนเป็นที่มาของโครงการอุดหนุนบริษัทซอฟต์แวร์ของไทยให้นำ CMMI ไปใช้ให้มากขึ้น

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

1.การอนุวัติ CMMI มีประโยชน์อย่างไรต่อบริษัท?    การนำ CMMI มาใช้นั้นคือการปูพื้นฐานการพัฒนาซอฟต์แวร์ของบริษัทให้ถูกต้องและตรงตามมาตรฐานซึ่งเป็นที่ยอมรับกันโดยทั่วไป   ผู้พัฒนาซอฟต์แวร์ที่ผ่านการศึกษาทางด้านวิทยาการคอมพิวเตอร์หรือวิศวกรรมคอมพิวเตอร์ และเคยมีโอกาสได้พัฒนาซอฟต์แวร์กับบริษัทซอฟต์แวร์ที่ทำงานได้มาตรฐานมาแล้ว    คงสังเกตเห็นได้ง่ายว่าความรู้ที่ได้จากการเรียนในห้องเรียนกับการปฏิบัติงานจริงนั้นต่างกัน   ในสถาบันการศึกษาเราเรียนรู้วิธีการเขียนโปรแกรมด้วยตัวเองเป็นส่วนใหญ่  แต่เมื่อจบออกมาแล้ว  เราต้องเขียนโปรแกรมร่วมกับผู้อื่น   อาจารย์ไม่เคยสอนวิธีการทำงานร่วมกันมาก่อนเลย   ดังนั้นจึงเป็นธรรมดาที่การทำงานในบริษัทด้วยความรู้ที่จำกัดจึงลุ่ม ๆ ดอน ๆ และไม่ประสบความสำเร็จด้วยดี   หากบริษัทใดโชคดีได้บุคลากรที่เก่งและเรียนรู้ที่จะพัฒนาซอฟต์แวร์แบบอุตสาหกรรมได้  ก็จะประสบความสำเร็จและรุ่งเรืองได้  แต่หากคนเก่งคนนั้นลาออกไป บริษัทก็จะมีปัญหา ในสถานการณ์เช่นนี้  CMMI ช่วยให้บริษัทเห็นภาพการพัฒนาซอฟต์แวร์ในแบบเป็นอุตสาหกรรมได้อย่างครบถ้วน  และช่วยให้บริษัทมีพื้นฐานการทำงานที่มั่นคง   และสุดท้ายแน่นอนว่าผลงานของบริษัทจะได้รับความชื่นชมจากลูกค้าอันจะทำให้ธุรกิจมีความยั่งยืนต่อไป

2.เป็นไปได้ไหมที่จะนำเอา Template หรือ แบบอย่างของบริษัทอื่นที่ได้ CMMI แล้วไปใช้?  คำตอบก็คือ… เป็นไปได้  แต่ผลลัพธ์ย่อมไม่ยั่งยืน   SEI ไม่ได้คิด CMMI ออกมาเพื่อให้เรานำไปใช้เฉพาะกับงานที่เราต้องการพิสูจน์ว่าทำตามหลักการ CMMI เท่านั้น แต่ SEI พัฒนา CMMI ขึ้นเพื่อให้ท่านนำไปใช้สร้างวัฒนธรรมการทำงานของท่านเอง   ทุกบริษัทจะต้องสร้างวัฒนธรรมการทำงานแบบ CMMI ของตนขึ้น  นั่นคือต้องคิดค้นว่ากระบวนการซอฟต์แวร์แบบใดจะเหมาะกับท่าน  แบบฟอร์มใดจะเหมาะกับท่าน  และ การบริหารงานพัฒนาซอฟต์แวร์แบบใดจึงจะเหมาะที่สุด

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

4.ขั้นตอนในการอนุวัติ CMMI เป็นอย่างไร?    โดยทั่วไปก็เหมือนกับวัฏจักร PDCA หรือ Plan-Do-Check-Act  แต่สำหรับ SEI แล้วได้พัฒนาวัฏจักรที่เรียกว่า “IDEAL” ขึ้น ดังนั้นการอนุวัติ CMMI จึงควรจะสอดคล้องกับทั้งวัฏจักร PDCA และ วัฏจักร IDEAL นี้    โดยทั่วไปก็เหมือนกับวัฏจักร PDCA หรือ Plan-Do-Check-Act  แต่สำหรับ SEI แล้วได้พัฒนาวัฏจักรที่เรียกว่า “IDEAL” ขึ้น ดังนั้นการอนุวัติ CMMI จึงควรจะสอดคล้องกับทั้งวัฏจักร PDCA และ วัฏจักร IDEAL นี้

ideal1-1

ภาพวัฏจักร IDEAL, source: SEI

5.บริษัทควรส่งผู้ร่วมทีมระดับใดมาช่วย?   คำตอบก็คือควรเป็นคนที่เก่งที่สุด  เพราะคนกลุ่มนี้จะเป็นกำลังสำคัญของท่านต่อไปในอนาคต