เขตอุตสาหกรรมซอฟต์แวร์แห่งประเทศไทย หรือซอฟต์แวร์พาร์ค มีความสนใจในการส่งเสริมให้บริษัทซอฟต์แวร์ และหน่วยงานที่ทำหน้าที่พัฒนาซอฟต์แวร์นำเอากรอบการทำงาน (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 นี้
ภาพวัฏจักร IDEAL, source: SEI
5.บริษัทควรส่งผู้ร่วมทีมระดับใดมาช่วย? คำตอบก็คือควรเป็นคนที่เก่งที่สุด เพราะคนกลุ่มนี้จะเป็นกำลังสำคัญของท่านต่อไปในอนาคต