การบริหารโครงการซอฟตแวรและCMM
ดร. ครรชิต มาลัยวงศ ศูนยบริ บริการสารสนเทศทางเทคโนโลยี สํานักงานพัฒนาวิทยาศาสตรและเทคโนโลยีแหงชาติ 11 กุมภาพันธ 2543
1
เนื้อหาคําบรรยาย Q สถานภาพงานพัฒนาซอฟตแวรไทย Q การบริหารงานโครงการซอฟตแวร Q ภาพรวมของ CMM Q การรับรองระดับ CMM Q ไทยกับ CMM Q สรุป
2
โลกของซอฟตแวร Q โลกยุคปจจุบันถูกควบคุมดวยซอฟตแวรนานาประเภท Q ซอฟตแวรระบบ Q ภาษาคอมพิวเตอร Q ซอฟตแวรประยุกต Q ซอฟตแวรระบบฝงตัว Q ซอฟตแวรเหลานี้คือจุดเริ่มตนของความเสี่ยง
3
วิวัฒนาการของซอฟตแวร การพัฒนาซอฟตแวรผานกระบวนการเรียนรูมามาก Q ใครใครเขียนเขียน Q ใครใครคิดคิด Q สับสนและวิกฤติ Q แสวงหาโครงสราง Q พัฒนาแนวทางและกระบวนการ
4
จุดวิกฤติในงานซอฟตแวร การพัฒนาซอฟตแวรมีประเด็นที่เปนจุดวิกฤติหลายดาน อาทิ Q คุณภาพและความนาเชื่อถือ Q สมรรถนะและความยืดหยุน Q ความสรางสรรคและการเปดเผย Q โครงสรางและการปรับเปลี่ยน Q ผลลัพธและกระบวนการ 5
กระบวนการซอฟตแวร กระบวนการ หมายถึง ลําดับของขั้นตอนตาง ๆ ในการดําเนิน งานใหบรรลุเปาหมาย กระบวนการซอฟตแวร หมายถึงกลุมของกิจกรรม วิธีการ วิธการ ี การปฏิบัต และการเปลี่ยนแปลงที่ใชในการพัฒนาและ บํารุงรักษา ซอฟตแวร ตลอดจนผลิตภัณฑที่เกี่ยวเนื่อง กระบวนการซอฟตแวรประกอบดวย คน วิธีการ และ เครื่องมือ 6
คุณภาพซอฟตแวรไทย Q อยูในตัวซอฟตแวรเอง
– Interface – Processing – Results – Robustness Q อยูในกระบวนการสรางซอฟตแวร Q และอยูในกระบวนการบํารุงรักษาซอฟตแวร
7
การบริหารงานโครงการซอฟตแวร
8
การบริหารงานโครงการ Q โครงการ
หมายถึง งานที่มีวัตถุประสงคแนชัด มีจุด เริ่มตน และ จุดสิ้นสุดที่ชัดเจน มีทรั ทรัพยากรที่ชัดเจน Q การบริหารงานโครงการมักจะมอบหมายใหมีผูจัดการ โครงการ ทําหนาที่ควบคุมทรัพยากร และ จัดสรรงาน ตาง ๆ ใหแกผูรวมทีม พรอมกับดูแลใหงานดําเนินไป ตามกําหนดการที่วางไว 9
ซอฟตแวรก็เปนงานโครงการ Q การพัฒนาซอฟตแวรจัดเปนงานโครงการได Q นั่นคือมี เนื้องานและวัตถุประสงคชัดเจน
มี ทรัพยากร งบประมาณ และกําหนดเวลาชัดเจน Q การบํารุงรักษา และ แกไขซอฟตแวรไมจัดวาเปนงาน โครงการ เพราะไมมีกําหนดเวลาสิ้นสุดที่ชัดเจน 10
หลักการบริหารโครงการซอฟตแวร Q ตองเขาใจตัวแปรของโครงการ
– ปริมาณงานที่ตองพัฒนา – กําหนดเวลาดําเนินการ – กําลังคนที่ตองใช – งบประมาณ – วิธีการและเครื่องมือ 11
หลักการบริหารโครงการซอฟตแวร Q ตองมีทีมงานที่มี มความสามารถ คี วามสามารถ
ทั้งตัวผูบริ บริหารโครง การ ผูรวมทีม และผูประสานงานฝายผูใช Q ตองใชวิธีการพัฒนาที่เปนมาตรฐาน Q ตองบันทึกเหตุการณตาง ๆ ระหวางการดําเนินการไว เปนสถิติเพื่อปรับปรุงในอนาคต Q ตองมีการควบคุมและประเมินโครงการตลอดเวลา 12
หลักการบริหารโครงการซอฟตแวร Q ตองตั้งเปาหมายในการพัฒนาซอฟตแวรที่มีคุณภาพ
– ตรงกับความตองการของผูใช – มีความยื ความยืดหยุน ดูแล แกไข และ ปรับปรุงไดงาย – มีประสิทธิภาพในการทํางาน – มีความถู ความถูกตองนาเชื่อถือ – ใชงาย 13
หลักการบริหารโครงการซอฟตแวร Q ตองวางแผน Q กําหนด Work Breakdown ของโครงการ Q มอบหมายใหลูกทึมทํางานตามภาระงานที่ตนเองมี
ประสบการณ Q ควบคุมการทํางานอยางใกลชิด พรอมชวยแกปญหา และ หาทางแกไขหากมีปญหา 14
กระบวนการซอฟตแวร Q การพัฒนาซอฟตแวร เปนกระบวนการที่เรียกวา
Software Process Q ผลของการพัฒนาเปนผลิตภัณฑ Software product Q ทั้ง Process และ Product จะตองมีคุณภาพ Q อีกนัยหนึ่ง กระบวนการจะตองมีวุฒิภาวะ 15
กระบวนการที่ยังไมบรรลุวุฒิภาวะ Q การทํางานเปนไปแบบตางคนตางคิด
ํ นแนวทางแนชัด Q ไมไดกาหนดเป
Q ขึ้นอยูกับประสบการณของคนพัฒนาซอฟตแวร Q ติดตามความกาวหนาและคุณภาพไดยาก
Q อาจตองยอมลดฟงกชันและคุณภาพเพื่อพัฒนาใหตรงกําหนด Q เสี่ยงที่จะใชเทคโนโลยีที่กาวหนา Q คาบํารุงรักษาสูงมาก
Q คาดคะเนคุณภาพไดยาก
(CMM)
16
กระบวนการที่เจริญกาวหนาสูงสุด Q สอดคลองกับเนื้องานที่ทําจริง ๆ Q เปนกระบวนการที่กําหนดขั้นตอนอยางชัดเจน
มีการ บันทึกการทํางานเปนเอกสาร/เพื่อใหสามารถแกไข ไข ปรับปรุงผลงานไดอย อยางตอเนื่อง Q ทําใหฝ ฝา ยบริหารและฝายอื่น ๆ สนับสนุนไดชัดเจน Q สามารถควบคุมการดําเนินงานได Q ใชเครื่องมือวัดผลและกระบวนการอยางสรางสรรค Q ใชเทคโนโลยี เทคโนโลยีอย อยางมีวินัย 17
ประโยชนของการมีกระบวนการที่บรรลุวุฒิภาวะ Q ชวยใหสามารถพิจารณาเจาะลงไปยังจุดที่เปนสาเหตุ
ของปญหาไดงายขึ้น Q ชวยใหเจาหนาที่พั พฒ ั นาศักยภาพของตนเองไดอย อยางมี ประสิทธิผล Q ชวยปรับปรุงผลงานตาง ๆ ไดอย อยางมีประสิทธิภาพและ ยั่งยืน ํ ที่เหมาะสม เทคนิค และเครื่องมือ Q ชวยใหนาเทคโนโลยี มาใชอย อยางมีประสิทธิภาพไดเพิ่มขึ้น 18
โครงการพัฒนาซอฟตแวรกับ CMM Q CMM
ไมไดเปนเทคนิคหรือเครื่องมือในการทําโครง การซอฟตแวร Q แตการใชเทคนิคการควบคุมโครงการพัฒนา ซอฟตแวร เปน กาวสําคัญในการยกตัวเองขึ้นมาสู ระดับที่สองของ CMM ซึ่งเรียกวา ระดับ Repeatable 19
CMM เครื่องมือวัดระดับวุฒิภาวะ
20
CMM คืออะไร Q การนํากระบวนการตัดสินใจและหลักการปรับปรุง
คุณภาพมาใชกับการพัฒนาและการบํารุงรักษาซอฟตแวร Q เปนแนวทางสําหรับใหบริ บริษัทซอฟตแวรใช Q เปนแบบจําลองสําหรับปรับปรุงองคกร Q เปนโครงสรางพื้นฐานสําหรับใชประเมินการทํางานของ บริษัทซอฟตแวรได ไดอย อยางมั่นใจ 21
CMM คืออะไร Q Capability Maturity Model Q เปนแบบจําลองสําหรับวัดวาหนวยงานที่ทําหนาที่
พัฒนาซอฟตแวรนั้น มีความสามารถและได ความสามารถและไดบรรลุวุฒิ ภาวะในการทํางานมากนอยเพียงใด Q ใชในการตรวจสอบคุณภาพของตัวเองเปนหลัก แต สามารถใชสร สรางความมั่นใจใหแกผูอื่นได Q พัฒนาและเผยแพรโดย Software Engg Institute 22
CMM ไมไดครอบคลุ ครอบคลุมอะไรบาง Q CMM ไมได ไดครอบคลุ ครอบคลุมถึงประเด็นทั้งหมดทาง
กระบวนการซอฟตแวร และการปรับปรุงคุณภาพ Q ประเด็นที่เกี่ยวของเพียงบางสวน หรือโดยออม คือ – เครื่องมือ วิธีการ และเทคโนโลยี – ทีมงานและกระบวนการทํางาน – วิศวกรรมระบบและการตลาด – ทรัพยากรมนุษย – พฤติกรรมองคกร
23
Capability และPerformance Q Process Capability พิสัยของผลลัพธที่ตองการ และ
ทําไดโดยใชกระบวนการที่กําหนดขึ้นในระดับองคการ เปนดัชนีสาหรั ํ บคาดคะเนผลการดําเนินงานโครงการ ในอนาคต Q Process performance การวัดผลลัพธจริง ๆ ที่ไดจาก จาก การดําเนินงานตามกระบวนการทีกํ่ กาหนด ปกติมักจะ ํ หมายถึงโครงการหนึ่ง ๆ ในองคการ การ
24
ระดับของวุฒิภาวะ 5. เนนในดานการปรับปรุง กระบวนการ Optimizing 4. สามารถวัดผลและควบคุม กระบวนการซอฟตแวรได Managed 3. สามารถจําแนกกระบวนการให เขาใจไดงาย Defined 2. โครงการสามารถทําซํ้าภารกิจที่ Repeatable มีการควบคุมอยางดี 1. ไมสามารถคาดคะเน กระบวนการได และ Initial การทํางานก็ยัง/ไมมี การควบคุมที่ดี 25
วิวัฒนาการของ Process Capability ระดับ
5. Optimizing 4. Managed 3. Defined 2. Repeatable 1. Initial
ลักษณะกระบวนการ
ปรับปรุงกระบวนการซอฟตแวรทั้ง องคการ และ ทําอยางตอเนื่อง ควบคุมผลผลิตและกระบวนการดวย เทคนิคทางสถิติจานวน ํ กําหนดกระบวนการและรวมวิศวกรรม ซอฟตแวรกับกระบวนการจัดการ ใชระบบจั ระบบจัดการโครงการ สามารถทํา ใหเกิดผลสําเร็จแบบเดียวกันได กระบวนการไมมีมรี ูปแบบทางการและ คาดเดาไมได 26
ระดับ Initial กบั ความเกงกลาสามารถของบุคลากรที่ Q ผลงานขึ้นอยูกั พัฒนาซอฟตแวรของหนวยงาน Q ผลงานอาจมีคุณภาพสูงและเยี่ยมยอดไดตราบเทาที่ หนวยงานยังสามารถจางคนเกงเอาไว Q ทํานายผลงานไมไดวาจะมีคุณภาพดีหรือไม Q ปญหาสําคัญที่หนวยงานซอฟตแวรประสบ ประสบอยูคือ ปญหาดานการจัดการ ไมใชปญหาดานเทคนิค Q หนวยงานยังไมมี Key Process Area
27
ระดับ Repeatable Q ความจําเปนที่เห็นชัดคือตองมีวิธีการจัดการโครงการ
ซอฟตแวรใหประสบผลสําเร็จ Q หนวยงานมีวิธีการจัดการโครงการซอฟตแวร ซึ่งใชเปน หลักในการติดตามและบันทึกผลการทํางาน Q มีนโยบายองคกรสําหรับเปนแนวทางในการกําหนดวิธี การจัดการโครงการ Q สามารถทํางานแตละโครงการใหประสบ ประสบความสําเร็จได เหมือนโครงการอื่น ๆ ที่เคยสําเร็จไปแลว (repeatable) 28
Key Process Area ในระดับ Repeatable Q Software Configuration Management Q Software Quality Assurance Q Software Subcontract Management Q Software Project Tracking and Oversight Q Software Project Planning Q Requirement Management
29
ระดับ Defined Q คุณภาพระดับนี้สรางบนพื้นฐานของการจัดการโครง
การซอฟตแวร Q การควบคุมกระบวนการจําเปนตองนิยาม บันทึกราย ละเอียด และเขาใจกระบวนการนั้นเปนอยางดี Q ผลลัพธของภาระงานอยางหนึ่งไหลอยางราบรื่นเปน อินพุตไปสูอีกภาระงานหนึ่ง Q หนวยงานมีกระบวนการที่ใหอํานาจบุคคลในการทํางาน
30
Key Press Areas ระดับ Defined Q Peer Reviews Q Intergroup Coordination Q Software Project Engineering Q Integrated Software Management Q Training Program Q Organization Process Definition Q Organization Process Focus 31
ระดับ Managed Q ใชหลักการการควบคุมกระบวนการเชิงสถิติ ในการ
ศึกษาวาอะไรเปนสาเหตุของ ของความแปรปรวนของการ ทํางานในโครงการ Q Key Process Areas คือ – Software Quality Management – Quantitative Process Management 32
ระดับ Maturity Level Q จําแนกและกําจัดสาเหตุของผลงานที่ไมถึงระดับ Q พยายามปรับปรุงกระบวนการซอฟตแวรอย อยางตอเนื่อง Q Key Process Areas :
– Process Change Management – Technology Change Management – Defect Prevention 33
การบริหารซอฟตแวรตองผานไปทีละระดับ Q หนวยงานซอฟตแวรอาจทํากระบวนการทีอยู ่ อยูระดับสูง
กวาได แตมักจะไมไดผล Q ความสามารถในการทํางานแตละกระบวนการตองสราง ขึ้นทีละระดับ Q คุณภาพแตละระดับเปนพื้นฐานของระดับที่สูงกวา
– กระบวนการวิศวกรรมที่สําคัยอาจถู ยอาจถูกละเลยเพราะขาดวินัย ทางการจัดการ – การจัดผลอยางละเอียดจะทําไมไดหากไมนิยามกระบวน การใหชัด – ผลของการปรับกระบวนการใหมจะคลุมเครือหากกระบวน การไมชัดเจน 34
CMM Structure Maturity levels Process capability
Key process areas Goals Common features Implementation or institutionalization Activities or infrastructure
Key practices 35
Key process areas by maturity level Optimizing
Managed
Defect prevention Technology change management Process change management
Quantitative process management Software quality management
Defined
Repeatable
Organization process focus Organization process definition Training program Integrated software management Software product engineering Intergroup coordination Peer reviews
Requirements management Software project planning Software project tracking and oversight Software subcontract management Software quality assurance Software configuration management
Initial
36
Five levels of software process maturity Continuously improving process Predictable process Standard consistent process Disciplined process INITIAL 1
OPTIMIZING 5
MANAGED 4
DEFINED 3
REPEATABLE 2 37
สรุป Q CMM เนนที่การจัดการซอฟตแวร Q กระบวนการจะชัดเจนหรือไมขึ้นอยูกับวุฒิภาวะใน
การทํางานตามกระบวนการนั้น Q CMM เปนแบบจําลอง 5 ระดับ และแตละระดับแตก ออกเปน Key Process Areas ่ ต่าํ กวา Q แตละระดับตองอาศัยความสามารถในระดับทีตํ 38
บรรณานุกรม Q คําบรรยาย - หลักสูตรแนะนํา CMM ของมหาวิทยาลัยคารเนกี
เมลลอน Q SEI, The Capability Maturity Model : Guidelines for Improving the Software Process, Addison Wesley, 1994. Q Caputo, Kim, CMM Implementation Guide, Addison Wesley, 1998. Q Hollenbach, Craig,et al, Combining Quality and Software Improvement, Communication of the ACM, June 1997, Vol 40., No.6 . 39