SlideShare a Scribd company logo
1 of 48
02 การพัฒนาซอฟต์แวร์ส่วน
บุคคล
สงวนลิขสิทธิ์ 2551, 2552, 2553
สุรเดช จิตประไพกุลศาล
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 2
หัวข้อ
• ทำาไมจึงต้องเปลี่ยนแปลงกระบวนการพัฒนา
ซอฟต์แวร์
• กระบวนการพัฒนาซอฟต์แวร์ส่วนบุคคล
• หลักการของ PSP
• แนวทางการเรียนรู้ PSP
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 3
ความท้าทายของการพัฒนาซอฟต์แวร์
• ขอบเขตของงานไม่ชัดเจน หรือเปลี่ยนแปลง
บ่อย
• กำาหนดการไม่สมเหตุผล หรือวางแผนไม่ดี
• ขาดการควบคุม หรือควบคุมมากเกินไป
• ขาดบุคลากร ทีมงานที่ดี
• คุณภาพของงานหรือซอฟต์แวร์ไม่ดี
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 4
สิ่งที่ท้าทายในการพัฒนาซอฟต์แวร์
• การคาดการณ์: ประมาณการว่าจะต้องใช้
เวลาทำาเท่าไรก่อนที่จะรู้ว่าจะทำาอะไร
• ความไม่แน่นอน: ขอบเขตของงานเปลี่ยน
บุคลากรเปลี่ยน สถานการณ์เปลี่ยน ฯลฯ
• คุณภาพ: ไม่มีเวลาพอที่จะตรวจทานหรือ
ทดสอบ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 5
อะไรทำาให้คุณดีกว่า
ทำาไมคุณถึงดีกว่า
นักศึกษาปริญญาตรีปี
1?
ทำาไมคุณถึงดีกว่า
นักศึกษาปริญญาตรีปี
1?
สิ่งที่คุณทำาได้ดีในระดับ
บุคคลใช้ได้กับระดับ
องค์กรหรือไม่?
สิ่งที่คุณทำาได้ดีในระดับ
บุคคลใช้ได้กับระดับ
องค์กรหรือไม่?
Source: DAAD Project
ทำาไมองค์กรบาง
แห่งถึงทำาได้ดีกว่า
ที่อื่น?
(ส่งมอบงานตาม
กำาหนด
งานที่ส่งมอบมี
คุณภาพสูง
มีข้อบกพร่องน้อย)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 6
สิ่งที่ท้าทายสำาหรับมืออาชีพ
• ทำาอย่างไรเราถึงจะผลิตซอฟต์แวร์ที่มีคุณภาพ
ในกำาหนดการที่คาดการณ์ได้ภายใต้งบ
ประมาณได้อย่างคงเส้นคงวา
• ทำาอย่างไรเราจึงจะสามารถปรับปรุงวิธีปฏิบัติ
ของเราในปัจจุบันได้
• ทำาอย่างไรเราจึงจะเผยแพร่วิธีปฏิบัติของเราสู่
สังคมส่วนใหญ่ได้
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 7
มืออาชีพ
สามารถทำาตาม
ข้อตกลงได้
ผลิตงานคุณภาพ
อย่างสมำ่าเสมอ
ตกลงในสิ่งที่
เป็นไปได้จริง
ใช้ข้อมูลในการ
ทำาข้อตกลง
วัดและจัดการ
คุณภาพ
เก็บข้อมูลเกี่ยวกับ
งานของตน
รู้ว่าอยู่ที่ไหน
แล้ว
ใช้ข้อมูลติดตาม
ความก้าวหน้า
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 8
องค์ประกอบหลักของความสำาเร็จ
• มุ่งเน้นที่ทีมและบุคคล
• เน้นคุณภาพ
• สร้างแรงจูงใจ
• เน้นความเรียบง่าย
• เน้นการใช้ข้อมูลประกอบการตัดสินใจ
• ปรับปรุงจากระดับล่างขึ้นบน
• มีโค้ชที่ดี
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 9
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (1)
• กระบวนการระดับบุคคลสำาหรับการพัฒนาซอฟต์แวร์
(Personal Software Process หรือ PSP) คือรูปแบบ
ของการปรับปรุงกระบวนการที่ออกแบบมาเพื่อใช้ใน
ระดับบุคคลโดยมีพื้นฐานมาจากวิธีปฏิบัติสำาหรับพัฒนา
ซอฟต์แวร์เชิงอุตสาหกรรม
– มีขั้นตอนที่กำาหนดไว้อย่างชัดเจน
– มีเกณฑ์การเริ่มงานและสิ้นสุดงานสำาหรับแต่ละขั้นตอน
– มีตัววัดและมาตรฐานที่กำาหนดไว้อย่างชัดเจน
– มีแนวทางให้เราวิเคราะห์และปรับปรุงกระบวนการ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 10
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (2)
• PSP ช่วยให้เข้าใจกระบวนการของตนเอง
– เวลาที่ใช้ในแต่ละส่วนของกระบวนการ
– เกิดข้อบกพร่องขึ้น ณ จุดไหน ขจัดไป ณ จุดไหน
– ประสิทธิภาพในการทำางานเป็นอย่างไร
• เราเรียนรู้วิธีการวัดและจัดการคุณภาพระหว่างการ
พัฒนา
• PSP คือกระบวนการระดับบุคคลที่มีวุฒิภาวะความ
สามารถระดับ 5 ตามแบบจำาลองวุฒิภาวะความสามารถ
(Capability Maturity Model; CMM)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 11
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (3)
• PSP สามารถใช้ได้กับเกือบทุกงาน เช่น
– การเขียนโปรแกรม
– การจัดทำาความต้องการ (requirements)
กระบวนการ (process) หรือเอกสาร (document)
– การตรวจทาน (review) หรือการทดสอบ (test)
– การดูแลรักษาระบบ (maintain systems)
– การปรับเปลี่ยนระบบซอฟต์แวร์ขนาดใหญ่
– ฯลฯ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 12
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (4)
• ใน PSP เรา
– เป็นทั้งเจ้าของและผู้ใช้กระบวนการ
– ประมาณการและวางแผนอย่างเป็นกิจวัตร
– รวบรวมข้อมูลสำาหรับติดตามและปรับปรุงการ
ทำางาน
– จัดการกับคุณภาพทุกขั้นตอนของกระบวนการ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 13
ประโยชน์ของ PSP
กระบวนการ PSP ที่เสถียรจะช่วยให้เรา
• รู้จักตัวเอง (Self-awareness)
– เข้าใจทักษะ ความสามารถ และสมรรถนะของตนเอง
– สามารถปรับปรุงการทำางานของเราให้ดีขึ้น
• ตัดสินใจโดยใช้ข้อเท็จจริง (Fact-based Decision
Making)
– ใช้ข้อมูลในการประมาณการ วางแผน ปรับปรุง ฯลฯ
– สามารถรับมือกับการเปลี่ยนแปลงได้ดีขึ้น
• เป็นนายของงาน (Ownership & Accountability)
– ดูแลเอาใจใส่แผนที่ทำาขึ้นมาเอง
– มั่นใจว่าจะดำาเนินการให้บรรลุข้อตกลงหรือพันธสัญญาต่างๆ ได้
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 14
จุดประสงค์ของ PSP
• เพื่อพัฒนาทักษะที่จำาเป็นสำาหรับ
– การวางแผนการทำางาน
– การติดตามการดำาเนินงานตามแผน
– การควบคุมคุณภาพของการทำางาน
– การวัด วิเคราะห์ และปรับปรุงประสิทธิภาพในการ
ทำางาน
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 15
กระบวนการทางวิศวกรรม
เป้าหมาย
ข้อจำากัด
กระบวนการ
ความ
ต้องการ
ผลิตภัณฑ์
ทรัพยากร
ควบคุม
ตัววัด ดำาเนินการ
ที่มา James W. Moore, The Road
Map to Software Engineering: A
Standard-Based Guide, IEEE
Computer Society Press, 2006
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 16
หลักการของ PSP
คุณภาพ
ของ
ซอฟต์แวร์
คุณภาพ
ของ
แต่ละชิ้น
ส่วน
ผู้พัฒนา
ซอฟต์แวร์
กระบวนการ
พัฒนา
ซอฟต์แวร์
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 17
หลักการของ PSP
• เราต้องรับผิดชอบต่อกระบวนการพัฒนา
ซอฟต์แวร์ของตนเอง
• เราควรที่จะวัด ติดตาม และวิเคราะห์การทำางาน
ของเรา
• เราควรที่จะเรียนรู้ว่าสมรรถนะของเราเป็น
อย่างไร ต่างจากที่ควรจะเป็นอย่างไร
• เราควรที่จะนำาสิ่งที่เรียนรู้มาปรับปรุงวิธีการ
ทำางานของเรา
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 18
แนวทางการเรียนรู้ PSP
• PSP จะแบ่งออกเป็น 6+2 ขั้น
• เริ่มจากรวบรวมข้อมูลเกี่ยวกับกระบวนการทำางานของ
เราในปัจจุบัน
• ค่อยๆ เพิ่มวิธีการในแต่ละขั้น
• ฝึกฝนวิธีการเหล่านี้ด้วยการพัฒนา 1 – 2 โปรแกรม
เพื่อให้เกิดความคุ้นเคย
• รวบรวมและวิเคราะห์ข้อมูลที่เกี่ยวข้องกับกระบวนการ
• นำาผลที่ได้มาปรับปรุงสมรรถนะและกระบวนการทำางาน
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 19
บันได 6 + 2 ขั้นของ PSP
PSP0
กระบวนการในปัจจุบัน
ตัวชี้วัดเบื้องต้น
PSP0.1
มาตรฐานการเขียนโปรแกรม
ข้อเสนอการปรับปรุงกระบวนการ
การวัดขนาด
PSP1
การประมาณขนาด
รายงานการทดสอบ
PSP1.1
การวางแผนกิจกรรม
การวางกำาหนดการ
PSP2
การทบทวน Design
การทบทวน Code
PSP2.1
แผนแบบการออกแบบ
PSP3
การใช้เป็นวัฏจักร
TSP(Team Software Process
กระบวนการพัฒนาเป็นทีม
ดัดแปลงมาจาก SEI
เก็บข้อมูล
อ้างอิงระดับ
บุคคล
การ
วางแผน
ระดับ
บุคคล
การจัดการ
คุณภาพ
ระดับบุคคล
การพัฒนา
ระบบขนาด
ใหญ่
การทำางาน
เป็นทีม
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 20
การเรียนรู้ PSP
• PSP 0: เรียนรู้สมรรถะของตนเอง
• PSP 1: วางแผนการทำางาน
• PSP 2: จัดการกับคุณภาพ
• PSP 3: ขยาย PSP ใช้กับงานขนาดใหญ่
• TSP: ขยาย PSP ใช้กับทีม
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 21
องค์ประกอบของ PSP
• คู่มือการปฏิบัติงาน (Process Script)
– คำาบรรยายการใช้กระบวนการ
• ตัววัด (Measure)
– ข้อมูลเชิงปริมาณที่ช่วยให้รู้ความเป็นไปของงาน
และกระบวนการ
• แบบฟอร์ม (Form)
– เครื่องมือสำาหรับรวบรวมและเก็บรักษาข้อมูล
• มาตรฐาน (Standard)
– แนวทางในการทำางาน
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 22
องค์ประกอบของ PSP
วางแผน
ออกแบบ
เขียนโปรแกรม
คอมไพล์
ทดสอบ
สรุปจบ
แบบ
ฟอร์ม
ผลสรุป
โครงกา
ร
(ตัววัด
ต่างๆ)
ความต้องการ
ซอฟต์แวร์
คู่มือการ
ปฏิบัติ
งาน
ใช้
เป็น
แนว
ทาง
ดัดแปลงมาจาก Introduction to PSP and TSP, Software Engineering Institute, 2006
มาตรฐา
น
ใช้
เป็น
แนว
ทาง
กระบวนการ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 23
คู่มือการปฏิบัติงาน
• ระบุขั้นตอนต่างๆในกระบวนการ ตลอดจนแบบฟอร์ม
มาตรฐาน และตัววัดที่เกี่ยวข้อง
• โดยปกติแล้วในคู่มือการปฏิบัติงานจะมี
– จุดประสงค์ (purpose)
– เกณฑ์การเริ่มงาน (entry criteria)
– คำาแนะนำาการใช้งาน (general guidelines, usage
considerations, or constraints)
– เฟสหรือขั้นตอนการปฏิบัติ (phases or steps to be
performed)
– ตัววัดและเกณฑ์คุณภาพ (measures and quality criteria)
– เกณฑ์การสิ้นสุดงาน (exit criteria)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 24
ลำาดับ กิจกรรม รายละเอียด
1 วางแผน จัดทำาหรือจัดหารายการความต้องการ
ประมาณเวลาที่จะใช้ในการพัฒนาแล้วป้อนลงในแบบฟอร์มสรุปแผนโครงการ
บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา
2 พัฒนา ออกแบบโปรแกรม
เขียนโปรแกรม
คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องที่พบ
ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ
บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา
3 สรุปจบ ป้อนข้อมูลเวลา ข้อบกพร่องลงในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์
เกณฑ์การสิ้นสุด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน
แบบฟอร์มสรุปแผนโครงการมีข้อมูลครบถ้วนสมบูรณ์
แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีข้อมูลครบถ้วนสมบูรณ์
จุดประสงค์ เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล
เกณฑ์การเริ่ม
ต้น
โจทย์หรือความต้องการ
แบบฟอร์มสรุปแผนโครงการ PSP0
แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง
มาตรฐานข้อบกพร่อง
นาฬิกาจับเวลา (ถ้าจำาเป็น)
คู่มือการปฏิบัติงานกระบวนการ PSP0
ที่มา: Watts S. Humphrey, PSP: A
Self-Improvement Process for
Engineers, Addison-Wesley 2005
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 25
ตัววัด
• ข้อมูลเชิงปริมาณที่ช่วยให้รู้ความเป็นไปของ
งานและกระบวนการ โดยมี 2 ชนิดคือ
• ตัววัดพื้นฐาน (Base Measures)
– ข้อมูลปฐมภูมิที่เก็บรวบรวมโดยตรงจากการทำางาน
เช่น เวลาที่ใช้
• ตัววัดจากการวิเคราะห์ (Derived Measures)
– ข้อมูลทุติยภูมิที่ได้จาการวิเคราะห์ตัววัดพื้นฐานหรือ
ตัววัดจากการวิเคราะห์ตัวอื่น เช่น ความหนาแน่น
ของข้อบกพร่อง (Defect density)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 26
ตัววัดพื้นฐาน
PSP มีตัววัดพื้นฐานอยู่ 4 ชนิดคือ
• แรงงาน (Effort)
– โดยวัดจากเวลาที่ใช้
• คุณภาพ (Quality)
– โดยวัดจากจำานวนข้อบกพร่องที่พบและขจัด
• ขนาด (Size)
– ขนาดของงานที่ทำา
• กำาหนดการ (Schedule)
– เวลาที่คาดว่าบางสิ่งบางอย่างจะเกิดขึ้น
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 27
ตัววัดจากการวิเคราะห์
• ตัววัดสำาหรับการบริหารโครงการ
– ใช้ในการประมาณการ การวางแผน การติดตาม
แผน การวัดประสิทธิภาพในการทำางาน ฯลฯ
• ตัววัดสำาหรับการบริหารคุณภาพ
– ใช้ในการวัด ประเมิน ควบคุม และปรับปรุงคุณภาพ
ของกระบวนการและผลิตภัณฑ์ ฯลฯ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 28
แบบฟอร์ม
• ช่วยในการเก็บรวบรวมข้อมูล
• ใน PSP มีแบบฟอร์ม 3 กลุ่มคือ
– แบบฟอร์มสำาหรับเก็บข้อมูลพื้นฐาน
– แบบฟอร์มสำาหรับประมวลผลข้อมูล
– แบบฟอร์มสำาหรับวิเคราะห์ข้อมูล
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 29
แบบฟอร์ม
• แบบฟอร์มสรุปโครงการ (Project Plan Summary)
• แบบฟอร์มบันทึกเวลาการทำางาน (Time Log)
• แบบฟอร์มบันทึกข้อบกพร่อง (Defect Log)
• แบบฟอร์มข้อเสนอการปรับปรุงกระบวนการ (Process
Improvement Proposal หรือ PIP)
• แบบฟอร์มประมาณการขนาด (Size Estimating Template)
• แบบฟอร์มรายงานผลการทดสอบ (Test Report Template)
• แบบฟอร์มวางแผนภาระกิจ (Task Planning Template)
• แบบฟอร์มวางแผนกำาหนดการ (Scheduling Planning
Template)
• รายการตรวจทานแบบ (Design Review Checklist)
• รายการตรวจทานโค้ด (Code Review Checklist)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 30
มาตรฐาน
• ใน PSP กำาหนดมาตรฐานไว้ 4 อย่างดังนี้
– มาตรฐานชนิดข้อบกพร่อง (Defect Type
Standard)
– มาตรฐานการเขียนโค้ด (Coding Standard)
– มาตรฐานการวัดขนาด (Size Counting Standard)
– มาตรฐานการออกแบบ (Design Standard)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 31
ก่อนการใช้ PSP
ความ
ต้องการ
พัฒนา ซอฟต์
แวร์
ไม่เห็น
คุณภา
พ
คุณภา
พ
คุณภา
พ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 32
ใช้ PSP แล้วได้อะไร
• เราได้ฝึกฝนองค์ประกอบสำาคัญของ
กระบวนการพัฒนาซอฟต์แวร์เชิงอุตสาหกรรม
(เทียบได้กับ CMM ระดับ 5 สำาหรับบุคคล)
• เราเข้าใจวิธีการที่ดีที่สุดสำาหรับตัวเรา
• เราทำางานได้ดีขึ้น
• เรามีเป้าหมายการปรับปรุงระยะยาว
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 33
รายงานผลการศึกษาประโยชน์ของ
PSP
• Alexis Ocampo, PSP Data Study, F
Fraunhofer Institute for Experimental Software
Engineering, May 2008
• ทำาการตรวจสอบประโยชน์ของการจัดการกระบวนการ
อย่างมีวินัยโดยใช้ข้อมูลของวิศวกรจำานวน 3090 คนที่
ผ่านการอบรม PSP โดยพิจารณาในเรื่อง
– ความแม่นยำาของการประมาณขนาด
– ความแม่นยำาของการประมาณแรงงาน
– ความแม่นยำาของการประมาณข้อบกพร่อง
– ผลิตภาพ (productivity)
– ความหนาแน่นและอัตราการขจัดข้อบกพร่อง
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 34
การประมาณขนาด
From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering,
May 2008
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 35
ความหนาแน่นของข้อบกพร่อง
Alexis Ocampo, PSP Data Study, F
Fraunhofer Institute for Experimental
Software Engineering, May 2008
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 36
ผลิตภาพ (Productivity)
Alexis Ocampo, PSP Data Study, F
Fraunhofer Institute for Experimental
Software Engineering, May 2008
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 37
อัตราการขจัดข้อบกพร่อง
Alexis Ocampo, PSP Data Study, F
Fraunhofer Institute for Experimental
Software Engineering, May 2008
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 38
ผลการใช้ PSP ที่บริษัทอินเดียแห่งหนึ่ง
  ก่อนใช้
หลังการใช้
CMM
หลังการใช้
PSP
ความแปรปรวน
ของกำาหนดการ
112% 37% 5%
ความแปรปรวน
ของแรงงานที่ใช้
85% 20% 1%
ข้อบกพร่องก่อน
การทดสอบ
0.6 per
KLOC
 N/A
0.09 per
KLOC
เวลาในการ
ทดสอบระบบ
2 days per
KLOC
 N/A
0.5 days per
KLOC
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 39
ผลการใช้ PSP จากหลายบริษัท
  ก่อน PSP หลัง PSP
ความแปรปรวนของแรงงานที่ใช้ 18 – 100% 10 – 12%
ความแปรปรวนของกำาหนดการ 25 – 135% -10 – 10%
ข้อบกพร่องที่พบระหว่างการ
ทดสอบเพื่อตรวจรับ
0.1 - 0.8
per KLOC
0.01 - 0.1
per KLOC
ข้อบกพร่องที่ลูกค้าพบ
0.2 - 1.2
per KLOC
0.0 - 0.1
per KLOC
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 40
ผลการใช้ PSP/TSP จากหลายบริษัท
7.5
6.24
4.73
2.28
1.05
0.028
0
1
2
3
4
5
6
7
8
Level 1 Level 2 Level 3 Level 4 Level 5 TSP
Defects/KLOC
Source: SEI, Softek
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 41
ผลการใช้ PSP/TSP จากบริษัท
Microsoft
โครงการ
ที่ไม่ใช้
TSP
โครงการที่
ใช้ TSP
ส่งมอบตามเวลา 42% 66%
จำานวนวันที่ล่าช้าโดยเฉลี่ย 25 6
ค่าเฉลี่ยของความผิดพลาด
ของกำาหนดการ 10% 1%
ข้อบกพร่องที่พบในการใช้
งานต่อ 1,000LOC 1.8 0.5
ขนาดตัวอย่าง 80 15
ที่มา: Microsoft, IT Division
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 42
ผลการใช้ PSP/TSP จาก US
NAVAIR
 
ขนาดของ
งาน(KLOC
)
ความหนา
แน่นของข้อ
บกพร่อง(d
efects/
KLOC)
จำานวนข้อ
บกพร่อง
ค่าใช้จ่ายใน
การขจัดข้อ
บกพร่อง 1
ข้อ
ค่าใช้จ่ายทั้งหมด
ในการขจัดข้อ
บกพร่อง
ไม่ใช้ TSP 443 1.13 501 $8,330 $ 4,173,330
ใช้ TSP 443 0.59 261 $8,330 $ 2,174,130
ค่าใช้จ่ายที่ประหยัดได้จากการที่ข้อบกพร่องลดลง $ 1,999,200
ค่าใช้จ่ายในการอบรมและสนับสนุนการใช้งาน PSP/TSP $ 225,300
ค่าใช้จ่ายทั้งหมดที่ประหยัดได้จากการที่ข้อบกพร่องลดลง $ 1,773,900
ที่มา: US NAVAIR Software/Systems Support Center
(NSSC)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 43
ปัจจัยสู่ความสำาเร็จของ PSP
• ความมีวินัยในตนเอง
• ข้อมูลที่ถูกต้องสมบูรณ์
• การปฏิบัติตามขั้นตอนที่กำาหนดไว้
• การปรับปรุงตัวเองอย่างไม่หยุดยั้ง
ปฏิบัติตามขั้นตอน รวบรวมข้อมูล
วิเคราะห์และปรับปรุง
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 44
ข้อควรคำานึง
• ถึงแม้ว่าในการเรียน PSP จะมีการเขียนโปรแกรม แต่
PSP ไม่ใช่วิชาการเขียนโปรแกรม
• PSP เป็นเรื่องของการปรับปรุงกระบวนการ
• ถ้าเราไม่ปฏิบัติตามขั้นตอนที่กำาหนดไว้เราก็จะไม่ได้
เรียนรู้ PSP
• ไม่ควรใช้โปรแกรมที่ต้องทำาในงานในการเรียน PSP
เพราะส่วนใหญ่แล้วเรามักจะหลีกเลี่ยงที่จะใช้วิธีการที่
ไม่คุ้นเคยเมื่อเรากำาลังทำางาน
• วิธีที่เรียน PSP ที่ดีที่สุดคือการปฏิบัติตามขั้นตอนที่
กำาหนด (Learning-by-doing)
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 45
รู้ PSP แล้วเราจะทำาอะไรต่อ
• ทีม
– กระบวนการพัฒนาซอฟต์แวร์เป็นทีม (Team
Software Process หรือ TSP)
• องค์กร
– แบบจำาลองวุฒิภาวะความสามารถเชิงบูรณาการ
(Capability Maturity Model Integration หรือ
CMMI)
• ประยุกต์ใช้ PSP กับงานประเภทอื่นๆ
– ทำารายงาน
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 46
PSP, TSP และ CMMI
CMMI- สร้างความ
สามารถขององค์กร
TSP– สร้าง
ผลิตภัณฑ์
ที่มีคุณภาพภายใต้
งบประมาณและ
เวลาPSP- สร้างทักษะ
และวินัยส่วนบุคคล
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 47
หลักการของกระบวนการ
การวัดสมรรถนะ
ทักษะการประมาณและการวางแผน
ทักษะการจัดการคุณภาพ
ทักษะของสมาชิกใน
ทีม
การตั้งเป้าหมาย
การมอบหมายหน้าที่
กระบวนการของทีม
แผนงานที่สมดุล
สร้างทีม
PSP
TSP
การสื่อสาร
การประสานงาน
การติดตามโครงการ
การจัดการความเสี่ยง
บริหารทีม
การให้การสนับสนุน
การดูแลรักษาวินัย
การดูแลความเป็นไปของโครงการ
ผู้บริหาร
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 48
สรุป
• PSP เป็นกระบวนการที่ช่วยให้เราทำางานได้ดี
ขึ้น
• หลังเรียนจบแล้ว เราจะรู้วิธีการประยุกต์ PSP
ให้เหมาะกับความต้องการของเรา
• เราจะมีความรู้และทักษะเพียงพอที่จะเข้าร่วมทีม
TSP

More Related Content

Similar to 02 intro to psp

System Development Life Cycle
System Development  Life  CycleSystem Development  Life  Cycle
System Development Life Cycleeiszer
 
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์กระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์Sitdhibong Laokok
 
ซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาjintana_pai
 
The system-analysis-and-design
The system-analysis-and-designThe system-analysis-and-design
The system-analysis-and-designtumetr
 
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศChapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศAkkadate.Com
 
แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2Meaw Sukee
 
System development life cycle sdlc
System development life cycle  sdlcSystem development life cycle  sdlc
System development life cycle sdlcKapook Moo Auan
 
System Development Life Cycle S D L C
System  Development  Life  Cycle   S D L CSystem  Development  Life  Cycle   S D L C
System Development Life Cycle S D L CKapook Moo Auan
 
การบริหารแบบRbm เตรียมนำเสนอ9 2-54
การบริหารแบบRbm เตรียมนำเสนอ9 2-54การบริหารแบบRbm เตรียมนำเสนอ9 2-54
การบริหารแบบRbm เตรียมนำเสนอ9 2-54pomswu
 

Similar to 02 intro to psp (20)

03 using psp0
03 using psp003 using psp0
03 using psp0
 
System Development Life Cycle
System Development  Life  CycleSystem Development  Life  Cycle
System Development Life Cycle
 
Chapter 02
Chapter 02Chapter 02
Chapter 02
 
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์กระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
 
01 process and software development
01 process and software development01 process and software development
01 process and software development
 
Sdlc
SdlcSdlc
Sdlc
 
ซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษา
 
04 basic measurement
04 basic measurement04 basic measurement
04 basic measurement
 
Sallai pro
Sallai proSallai pro
Sallai pro
 
The system-analysis-and-design
The system-analysis-and-designThe system-analysis-and-design
The system-analysis-and-design
 
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศChapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศ
 
ใบความรู้ การเขียนโปรแกรม
ใบความรู้ การเขียนโปรแกรมใบความรู้ การเขียนโปรแกรม
ใบความรู้ การเขียนโปรแกรม
 
Lesson3 devenlopment-program
Lesson3 devenlopment-programLesson3 devenlopment-program
Lesson3 devenlopment-program
 
Project Sky
Project SkyProject Sky
Project Sky
 
แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2
 
2
22
2
 
Unit01
Unit01Unit01
Unit01
 
System development life cycle sdlc
System development life cycle  sdlcSystem development life cycle  sdlc
System development life cycle sdlc
 
System Development Life Cycle S D L C
System  Development  Life  Cycle   S D L CSystem  Development  Life  Cycle   S D L C
System Development Life Cycle S D L C
 
การบริหารแบบRbm เตรียมนำเสนอ9 2-54
การบริหารแบบRbm เตรียมนำเสนอ9 2-54การบริหารแบบRbm เตรียมนำเสนอ9 2-54
การบริหารแบบRbm เตรียมนำเสนอ9 2-54
 

More from Luktalja

03 using psp0
03 using psp003 using psp0
03 using psp0Luktalja
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09Luktalja
 
Software archiecture lecture08
Software archiecture   lecture08Software archiecture   lecture08
Software archiecture lecture08Luktalja
 
Software archiecture lecture07
Software archiecture   lecture07Software archiecture   lecture07
Software archiecture lecture07Luktalja
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06Luktalja
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05Luktalja
 
Software archiecture lecture04
Software archiecture   lecture04Software archiecture   lecture04
Software archiecture lecture04Luktalja
 
Software archiecture lecture03
Software archiecture   lecture03Software archiecture   lecture03
Software archiecture lecture03Luktalja
 
Software archiecture lecture02
Software archiecture   lecture02Software archiecture   lecture02
Software archiecture lecture02Luktalja
 
Software archiecture lecture01
Software archiecture   lecture01Software archiecture   lecture01
Software archiecture lecture01Luktalja
 
Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10Luktalja
 

More from Luktalja (11)

03 using psp0
03 using psp003 using psp0
03 using psp0
 
Software archiecture lecture09
Software archiecture   lecture09Software archiecture   lecture09
Software archiecture lecture09
 
Software archiecture lecture08
Software archiecture   lecture08Software archiecture   lecture08
Software archiecture lecture08
 
Software archiecture lecture07
Software archiecture   lecture07Software archiecture   lecture07
Software archiecture lecture07
 
Software archiecture lecture06
Software archiecture   lecture06Software archiecture   lecture06
Software archiecture lecture06
 
Software archiecture lecture05
Software archiecture   lecture05Software archiecture   lecture05
Software archiecture lecture05
 
Software archiecture lecture04
Software archiecture   lecture04Software archiecture   lecture04
Software archiecture lecture04
 
Software archiecture lecture03
Software archiecture   lecture03Software archiecture   lecture03
Software archiecture lecture03
 
Software archiecture lecture02
Software archiecture   lecture02Software archiecture   lecture02
Software archiecture lecture02
 
Software archiecture lecture01
Software archiecture   lecture01Software archiecture   lecture01
Software archiecture lecture01
 
Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10
 

02 intro to psp

  • 2. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 2 หัวข้อ • ทำาไมจึงต้องเปลี่ยนแปลงกระบวนการพัฒนา ซอฟต์แวร์ • กระบวนการพัฒนาซอฟต์แวร์ส่วนบุคคล • หลักการของ PSP • แนวทางการเรียนรู้ PSP
  • 3. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 3 ความท้าทายของการพัฒนาซอฟต์แวร์ • ขอบเขตของงานไม่ชัดเจน หรือเปลี่ยนแปลง บ่อย • กำาหนดการไม่สมเหตุผล หรือวางแผนไม่ดี • ขาดการควบคุม หรือควบคุมมากเกินไป • ขาดบุคลากร ทีมงานที่ดี • คุณภาพของงานหรือซอฟต์แวร์ไม่ดี
  • 4. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 4 สิ่งที่ท้าทายในการพัฒนาซอฟต์แวร์ • การคาดการณ์: ประมาณการว่าจะต้องใช้ เวลาทำาเท่าไรก่อนที่จะรู้ว่าจะทำาอะไร • ความไม่แน่นอน: ขอบเขตของงานเปลี่ยน บุคลากรเปลี่ยน สถานการณ์เปลี่ยน ฯลฯ • คุณภาพ: ไม่มีเวลาพอที่จะตรวจทานหรือ ทดสอบ
  • 5. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 5 อะไรทำาให้คุณดีกว่า ทำาไมคุณถึงดีกว่า นักศึกษาปริญญาตรีปี 1? ทำาไมคุณถึงดีกว่า นักศึกษาปริญญาตรีปี 1? สิ่งที่คุณทำาได้ดีในระดับ บุคคลใช้ได้กับระดับ องค์กรหรือไม่? สิ่งที่คุณทำาได้ดีในระดับ บุคคลใช้ได้กับระดับ องค์กรหรือไม่? Source: DAAD Project ทำาไมองค์กรบาง แห่งถึงทำาได้ดีกว่า ที่อื่น? (ส่งมอบงานตาม กำาหนด งานที่ส่งมอบมี คุณภาพสูง มีข้อบกพร่องน้อย)
  • 6. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 6 สิ่งที่ท้าทายสำาหรับมืออาชีพ • ทำาอย่างไรเราถึงจะผลิตซอฟต์แวร์ที่มีคุณภาพ ในกำาหนดการที่คาดการณ์ได้ภายใต้งบ ประมาณได้อย่างคงเส้นคงวา • ทำาอย่างไรเราจึงจะสามารถปรับปรุงวิธีปฏิบัติ ของเราในปัจจุบันได้ • ทำาอย่างไรเราจึงจะเผยแพร่วิธีปฏิบัติของเราสู่ สังคมส่วนใหญ่ได้
  • 7. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 7 มืออาชีพ สามารถทำาตาม ข้อตกลงได้ ผลิตงานคุณภาพ อย่างสมำ่าเสมอ ตกลงในสิ่งที่ เป็นไปได้จริง ใช้ข้อมูลในการ ทำาข้อตกลง วัดและจัดการ คุณภาพ เก็บข้อมูลเกี่ยวกับ งานของตน รู้ว่าอยู่ที่ไหน แล้ว ใช้ข้อมูลติดตาม ความก้าวหน้า
  • 8. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 8 องค์ประกอบหลักของความสำาเร็จ • มุ่งเน้นที่ทีมและบุคคล • เน้นคุณภาพ • สร้างแรงจูงใจ • เน้นความเรียบง่าย • เน้นการใช้ข้อมูลประกอบการตัดสินใจ • ปรับปรุงจากระดับล่างขึ้นบน • มีโค้ชที่ดี
  • 9. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 9 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (1) • กระบวนการระดับบุคคลสำาหรับการพัฒนาซอฟต์แวร์ (Personal Software Process หรือ PSP) คือรูปแบบ ของการปรับปรุงกระบวนการที่ออกแบบมาเพื่อใช้ใน ระดับบุคคลโดยมีพื้นฐานมาจากวิธีปฏิบัติสำาหรับพัฒนา ซอฟต์แวร์เชิงอุตสาหกรรม – มีขั้นตอนที่กำาหนดไว้อย่างชัดเจน – มีเกณฑ์การเริ่มงานและสิ้นสุดงานสำาหรับแต่ละขั้นตอน – มีตัววัดและมาตรฐานที่กำาหนดไว้อย่างชัดเจน – มีแนวทางให้เราวิเคราะห์และปรับปรุงกระบวนการ
  • 10. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 10 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (2) • PSP ช่วยให้เข้าใจกระบวนการของตนเอง – เวลาที่ใช้ในแต่ละส่วนของกระบวนการ – เกิดข้อบกพร่องขึ้น ณ จุดไหน ขจัดไป ณ จุดไหน – ประสิทธิภาพในการทำางานเป็นอย่างไร • เราเรียนรู้วิธีการวัดและจัดการคุณภาพระหว่างการ พัฒนา • PSP คือกระบวนการระดับบุคคลที่มีวุฒิภาวะความ สามารถระดับ 5 ตามแบบจำาลองวุฒิภาวะความสามารถ (Capability Maturity Model; CMM)
  • 11. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 11 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (3) • PSP สามารถใช้ได้กับเกือบทุกงาน เช่น – การเขียนโปรแกรม – การจัดทำาความต้องการ (requirements) กระบวนการ (process) หรือเอกสาร (document) – การตรวจทาน (review) หรือการทดสอบ (test) – การดูแลรักษาระบบ (maintain systems) – การปรับเปลี่ยนระบบซอฟต์แวร์ขนาดใหญ่ – ฯลฯ
  • 12. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 12 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (4) • ใน PSP เรา – เป็นทั้งเจ้าของและผู้ใช้กระบวนการ – ประมาณการและวางแผนอย่างเป็นกิจวัตร – รวบรวมข้อมูลสำาหรับติดตามและปรับปรุงการ ทำางาน – จัดการกับคุณภาพทุกขั้นตอนของกระบวนการ
  • 13. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 13 ประโยชน์ของ PSP กระบวนการ PSP ที่เสถียรจะช่วยให้เรา • รู้จักตัวเอง (Self-awareness) – เข้าใจทักษะ ความสามารถ และสมรรถนะของตนเอง – สามารถปรับปรุงการทำางานของเราให้ดีขึ้น • ตัดสินใจโดยใช้ข้อเท็จจริง (Fact-based Decision Making) – ใช้ข้อมูลในการประมาณการ วางแผน ปรับปรุง ฯลฯ – สามารถรับมือกับการเปลี่ยนแปลงได้ดีขึ้น • เป็นนายของงาน (Ownership & Accountability) – ดูแลเอาใจใส่แผนที่ทำาขึ้นมาเอง – มั่นใจว่าจะดำาเนินการให้บรรลุข้อตกลงหรือพันธสัญญาต่างๆ ได้
  • 14. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 14 จุดประสงค์ของ PSP • เพื่อพัฒนาทักษะที่จำาเป็นสำาหรับ – การวางแผนการทำางาน – การติดตามการดำาเนินงานตามแผน – การควบคุมคุณภาพของการทำางาน – การวัด วิเคราะห์ และปรับปรุงประสิทธิภาพในการ ทำางาน
  • 15. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 15 กระบวนการทางวิศวกรรม เป้าหมาย ข้อจำากัด กระบวนการ ความ ต้องการ ผลิตภัณฑ์ ทรัพยากร ควบคุม ตัววัด ดำาเนินการ ที่มา James W. Moore, The Road Map to Software Engineering: A Standard-Based Guide, IEEE Computer Society Press, 2006
  • 16. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 16 หลักการของ PSP คุณภาพ ของ ซอฟต์แวร์ คุณภาพ ของ แต่ละชิ้น ส่วน ผู้พัฒนา ซอฟต์แวร์ กระบวนการ พัฒนา ซอฟต์แวร์
  • 17. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 17 หลักการของ PSP • เราต้องรับผิดชอบต่อกระบวนการพัฒนา ซอฟต์แวร์ของตนเอง • เราควรที่จะวัด ติดตาม และวิเคราะห์การทำางาน ของเรา • เราควรที่จะเรียนรู้ว่าสมรรถนะของเราเป็น อย่างไร ต่างจากที่ควรจะเป็นอย่างไร • เราควรที่จะนำาสิ่งที่เรียนรู้มาปรับปรุงวิธีการ ทำางานของเรา
  • 18. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 18 แนวทางการเรียนรู้ PSP • PSP จะแบ่งออกเป็น 6+2 ขั้น • เริ่มจากรวบรวมข้อมูลเกี่ยวกับกระบวนการทำางานของ เราในปัจจุบัน • ค่อยๆ เพิ่มวิธีการในแต่ละขั้น • ฝึกฝนวิธีการเหล่านี้ด้วยการพัฒนา 1 – 2 โปรแกรม เพื่อให้เกิดความคุ้นเคย • รวบรวมและวิเคราะห์ข้อมูลที่เกี่ยวข้องกับกระบวนการ • นำาผลที่ได้มาปรับปรุงสมรรถนะและกระบวนการทำางาน
  • 19. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 19 บันได 6 + 2 ขั้นของ PSP PSP0 กระบวนการในปัจจุบัน ตัวชี้วัดเบื้องต้น PSP0.1 มาตรฐานการเขียนโปรแกรม ข้อเสนอการปรับปรุงกระบวนการ การวัดขนาด PSP1 การประมาณขนาด รายงานการทดสอบ PSP1.1 การวางแผนกิจกรรม การวางกำาหนดการ PSP2 การทบทวน Design การทบทวน Code PSP2.1 แผนแบบการออกแบบ PSP3 การใช้เป็นวัฏจักร TSP(Team Software Process กระบวนการพัฒนาเป็นทีม ดัดแปลงมาจาก SEI เก็บข้อมูล อ้างอิงระดับ บุคคล การ วางแผน ระดับ บุคคล การจัดการ คุณภาพ ระดับบุคคล การพัฒนา ระบบขนาด ใหญ่ การทำางาน เป็นทีม
  • 20. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 20 การเรียนรู้ PSP • PSP 0: เรียนรู้สมรรถะของตนเอง • PSP 1: วางแผนการทำางาน • PSP 2: จัดการกับคุณภาพ • PSP 3: ขยาย PSP ใช้กับงานขนาดใหญ่ • TSP: ขยาย PSP ใช้กับทีม
  • 21. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 21 องค์ประกอบของ PSP • คู่มือการปฏิบัติงาน (Process Script) – คำาบรรยายการใช้กระบวนการ • ตัววัด (Measure) – ข้อมูลเชิงปริมาณที่ช่วยให้รู้ความเป็นไปของงาน และกระบวนการ • แบบฟอร์ม (Form) – เครื่องมือสำาหรับรวบรวมและเก็บรักษาข้อมูล • มาตรฐาน (Standard) – แนวทางในการทำางาน
  • 22. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 22 องค์ประกอบของ PSP วางแผน ออกแบบ เขียนโปรแกรม คอมไพล์ ทดสอบ สรุปจบ แบบ ฟอร์ม ผลสรุป โครงกา ร (ตัววัด ต่างๆ) ความต้องการ ซอฟต์แวร์ คู่มือการ ปฏิบัติ งาน ใช้ เป็น แนว ทาง ดัดแปลงมาจาก Introduction to PSP and TSP, Software Engineering Institute, 2006 มาตรฐา น ใช้ เป็น แนว ทาง กระบวนการ
  • 23. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 23 คู่มือการปฏิบัติงาน • ระบุขั้นตอนต่างๆในกระบวนการ ตลอดจนแบบฟอร์ม มาตรฐาน และตัววัดที่เกี่ยวข้อง • โดยปกติแล้วในคู่มือการปฏิบัติงานจะมี – จุดประสงค์ (purpose) – เกณฑ์การเริ่มงาน (entry criteria) – คำาแนะนำาการใช้งาน (general guidelines, usage considerations, or constraints) – เฟสหรือขั้นตอนการปฏิบัติ (phases or steps to be performed) – ตัววัดและเกณฑ์คุณภาพ (measures and quality criteria) – เกณฑ์การสิ้นสุดงาน (exit criteria)
  • 24. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 24 ลำาดับ กิจกรรม รายละเอียด 1 วางแผน จัดทำาหรือจัดหารายการความต้องการ ประมาณเวลาที่จะใช้ในการพัฒนาแล้วป้อนลงในแบบฟอร์มสรุปแผนโครงการ บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา 2 พัฒนา ออกแบบโปรแกรม เขียนโปรแกรม คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องที่พบ ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา 3 สรุปจบ ป้อนข้อมูลเวลา ข้อบกพร่องลงในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์ เกณฑ์การสิ้นสุด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน แบบฟอร์มสรุปแผนโครงการมีข้อมูลครบถ้วนสมบูรณ์ แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีข้อมูลครบถ้วนสมบูรณ์ จุดประสงค์ เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล เกณฑ์การเริ่ม ต้น โจทย์หรือความต้องการ แบบฟอร์มสรุปแผนโครงการ PSP0 แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง มาตรฐานข้อบกพร่อง นาฬิกาจับเวลา (ถ้าจำาเป็น) คู่มือการปฏิบัติงานกระบวนการ PSP0 ที่มา: Watts S. Humphrey, PSP: A Self-Improvement Process for Engineers, Addison-Wesley 2005
  • 25. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 25 ตัววัด • ข้อมูลเชิงปริมาณที่ช่วยให้รู้ความเป็นไปของ งานและกระบวนการ โดยมี 2 ชนิดคือ • ตัววัดพื้นฐาน (Base Measures) – ข้อมูลปฐมภูมิที่เก็บรวบรวมโดยตรงจากการทำางาน เช่น เวลาที่ใช้ • ตัววัดจากการวิเคราะห์ (Derived Measures) – ข้อมูลทุติยภูมิที่ได้จาการวิเคราะห์ตัววัดพื้นฐานหรือ ตัววัดจากการวิเคราะห์ตัวอื่น เช่น ความหนาแน่น ของข้อบกพร่อง (Defect density)
  • 26. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 26 ตัววัดพื้นฐาน PSP มีตัววัดพื้นฐานอยู่ 4 ชนิดคือ • แรงงาน (Effort) – โดยวัดจากเวลาที่ใช้ • คุณภาพ (Quality) – โดยวัดจากจำานวนข้อบกพร่องที่พบและขจัด • ขนาด (Size) – ขนาดของงานที่ทำา • กำาหนดการ (Schedule) – เวลาที่คาดว่าบางสิ่งบางอย่างจะเกิดขึ้น
  • 27. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 27 ตัววัดจากการวิเคราะห์ • ตัววัดสำาหรับการบริหารโครงการ – ใช้ในการประมาณการ การวางแผน การติดตาม แผน การวัดประสิทธิภาพในการทำางาน ฯลฯ • ตัววัดสำาหรับการบริหารคุณภาพ – ใช้ในการวัด ประเมิน ควบคุม และปรับปรุงคุณภาพ ของกระบวนการและผลิตภัณฑ์ ฯลฯ
  • 28. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 28 แบบฟอร์ม • ช่วยในการเก็บรวบรวมข้อมูล • ใน PSP มีแบบฟอร์ม 3 กลุ่มคือ – แบบฟอร์มสำาหรับเก็บข้อมูลพื้นฐาน – แบบฟอร์มสำาหรับประมวลผลข้อมูล – แบบฟอร์มสำาหรับวิเคราะห์ข้อมูล
  • 29. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 29 แบบฟอร์ม • แบบฟอร์มสรุปโครงการ (Project Plan Summary) • แบบฟอร์มบันทึกเวลาการทำางาน (Time Log) • แบบฟอร์มบันทึกข้อบกพร่อง (Defect Log) • แบบฟอร์มข้อเสนอการปรับปรุงกระบวนการ (Process Improvement Proposal หรือ PIP) • แบบฟอร์มประมาณการขนาด (Size Estimating Template) • แบบฟอร์มรายงานผลการทดสอบ (Test Report Template) • แบบฟอร์มวางแผนภาระกิจ (Task Planning Template) • แบบฟอร์มวางแผนกำาหนดการ (Scheduling Planning Template) • รายการตรวจทานแบบ (Design Review Checklist) • รายการตรวจทานโค้ด (Code Review Checklist)
  • 30. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 30 มาตรฐาน • ใน PSP กำาหนดมาตรฐานไว้ 4 อย่างดังนี้ – มาตรฐานชนิดข้อบกพร่อง (Defect Type Standard) – มาตรฐานการเขียนโค้ด (Coding Standard) – มาตรฐานการวัดขนาด (Size Counting Standard) – มาตรฐานการออกแบบ (Design Standard)
  • 31. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 31 ก่อนการใช้ PSP ความ ต้องการ พัฒนา ซอฟต์ แวร์ ไม่เห็น คุณภา พ คุณภา พ คุณภา พ
  • 32. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 32 ใช้ PSP แล้วได้อะไร • เราได้ฝึกฝนองค์ประกอบสำาคัญของ กระบวนการพัฒนาซอฟต์แวร์เชิงอุตสาหกรรม (เทียบได้กับ CMM ระดับ 5 สำาหรับบุคคล) • เราเข้าใจวิธีการที่ดีที่สุดสำาหรับตัวเรา • เราทำางานได้ดีขึ้น • เรามีเป้าหมายการปรับปรุงระยะยาว
  • 33. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 33 รายงานผลการศึกษาประโยชน์ของ PSP • Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008 • ทำาการตรวจสอบประโยชน์ของการจัดการกระบวนการ อย่างมีวินัยโดยใช้ข้อมูลของวิศวกรจำานวน 3090 คนที่ ผ่านการอบรม PSP โดยพิจารณาในเรื่อง – ความแม่นยำาของการประมาณขนาด – ความแม่นยำาของการประมาณแรงงาน – ความแม่นยำาของการประมาณข้อบกพร่อง – ผลิตภาพ (productivity) – ความหนาแน่นและอัตราการขจัดข้อบกพร่อง
  • 34. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 34 การประมาณขนาด From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  • 35. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 35 ความหนาแน่นของข้อบกพร่อง Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  • 36. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 36 ผลิตภาพ (Productivity) Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  • 37. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 37 อัตราการขจัดข้อบกพร่อง Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  • 38. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 38 ผลการใช้ PSP ที่บริษัทอินเดียแห่งหนึ่ง   ก่อนใช้ หลังการใช้ CMM หลังการใช้ PSP ความแปรปรวน ของกำาหนดการ 112% 37% 5% ความแปรปรวน ของแรงงานที่ใช้ 85% 20% 1% ข้อบกพร่องก่อน การทดสอบ 0.6 per KLOC  N/A 0.09 per KLOC เวลาในการ ทดสอบระบบ 2 days per KLOC  N/A 0.5 days per KLOC
  • 39. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 39 ผลการใช้ PSP จากหลายบริษัท   ก่อน PSP หลัง PSP ความแปรปรวนของแรงงานที่ใช้ 18 – 100% 10 – 12% ความแปรปรวนของกำาหนดการ 25 – 135% -10 – 10% ข้อบกพร่องที่พบระหว่างการ ทดสอบเพื่อตรวจรับ 0.1 - 0.8 per KLOC 0.01 - 0.1 per KLOC ข้อบกพร่องที่ลูกค้าพบ 0.2 - 1.2 per KLOC 0.0 - 0.1 per KLOC
  • 40. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 40 ผลการใช้ PSP/TSP จากหลายบริษัท 7.5 6.24 4.73 2.28 1.05 0.028 0 1 2 3 4 5 6 7 8 Level 1 Level 2 Level 3 Level 4 Level 5 TSP Defects/KLOC Source: SEI, Softek
  • 41. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 41 ผลการใช้ PSP/TSP จากบริษัท Microsoft โครงการ ที่ไม่ใช้ TSP โครงการที่ ใช้ TSP ส่งมอบตามเวลา 42% 66% จำานวนวันที่ล่าช้าโดยเฉลี่ย 25 6 ค่าเฉลี่ยของความผิดพลาด ของกำาหนดการ 10% 1% ข้อบกพร่องที่พบในการใช้ งานต่อ 1,000LOC 1.8 0.5 ขนาดตัวอย่าง 80 15 ที่มา: Microsoft, IT Division
  • 42. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 42 ผลการใช้ PSP/TSP จาก US NAVAIR   ขนาดของ งาน(KLOC ) ความหนา แน่นของข้อ บกพร่อง(d efects/ KLOC) จำานวนข้อ บกพร่อง ค่าใช้จ่ายใน การขจัดข้อ บกพร่อง 1 ข้อ ค่าใช้จ่ายทั้งหมด ในการขจัดข้อ บกพร่อง ไม่ใช้ TSP 443 1.13 501 $8,330 $ 4,173,330 ใช้ TSP 443 0.59 261 $8,330 $ 2,174,130 ค่าใช้จ่ายที่ประหยัดได้จากการที่ข้อบกพร่องลดลง $ 1,999,200 ค่าใช้จ่ายในการอบรมและสนับสนุนการใช้งาน PSP/TSP $ 225,300 ค่าใช้จ่ายทั้งหมดที่ประหยัดได้จากการที่ข้อบกพร่องลดลง $ 1,773,900 ที่มา: US NAVAIR Software/Systems Support Center (NSSC)
  • 43. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 43 ปัจจัยสู่ความสำาเร็จของ PSP • ความมีวินัยในตนเอง • ข้อมูลที่ถูกต้องสมบูรณ์ • การปฏิบัติตามขั้นตอนที่กำาหนดไว้ • การปรับปรุงตัวเองอย่างไม่หยุดยั้ง ปฏิบัติตามขั้นตอน รวบรวมข้อมูล วิเคราะห์และปรับปรุง
  • 44. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 44 ข้อควรคำานึง • ถึงแม้ว่าในการเรียน PSP จะมีการเขียนโปรแกรม แต่ PSP ไม่ใช่วิชาการเขียนโปรแกรม • PSP เป็นเรื่องของการปรับปรุงกระบวนการ • ถ้าเราไม่ปฏิบัติตามขั้นตอนที่กำาหนดไว้เราก็จะไม่ได้ เรียนรู้ PSP • ไม่ควรใช้โปรแกรมที่ต้องทำาในงานในการเรียน PSP เพราะส่วนใหญ่แล้วเรามักจะหลีกเลี่ยงที่จะใช้วิธีการที่ ไม่คุ้นเคยเมื่อเรากำาลังทำางาน • วิธีที่เรียน PSP ที่ดีที่สุดคือการปฏิบัติตามขั้นตอนที่ กำาหนด (Learning-by-doing)
  • 45. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 45 รู้ PSP แล้วเราจะทำาอะไรต่อ • ทีม – กระบวนการพัฒนาซอฟต์แวร์เป็นทีม (Team Software Process หรือ TSP) • องค์กร – แบบจำาลองวุฒิภาวะความสามารถเชิงบูรณาการ (Capability Maturity Model Integration หรือ CMMI) • ประยุกต์ใช้ PSP กับงานประเภทอื่นๆ – ทำารายงาน
  • 46. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 46 PSP, TSP และ CMMI CMMI- สร้างความ สามารถขององค์กร TSP– สร้าง ผลิตภัณฑ์ ที่มีคุณภาพภายใต้ งบประมาณและ เวลาPSP- สร้างทักษะ และวินัยส่วนบุคคล
  • 47. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 47 หลักการของกระบวนการ การวัดสมรรถนะ ทักษะการประมาณและการวางแผน ทักษะการจัดการคุณภาพ ทักษะของสมาชิกใน ทีม การตั้งเป้าหมาย การมอบหมายหน้าที่ กระบวนการของทีม แผนงานที่สมดุล สร้างทีม PSP TSP การสื่อสาร การประสานงาน การติดตามโครงการ การจัดการความเสี่ยง บริหารทีม การให้การสนับสนุน การดูแลรักษาวินัย การดูแลความเป็นไปของโครงการ ผู้บริหาร
  • 48. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 48 สรุป • PSP เป็นกระบวนการที่ช่วยให้เราทำางานได้ดี ขึ้น • หลังเรียนจบแล้ว เราจะรู้วิธีการประยุกต์ PSP ให้เหมาะกับความต้องการของเรา • เราจะมีความรู้และทักษะเพียงพอที่จะเข้าร่วมทีม TSP

Editor's Notes

  1. Revision History ------------------- Revision 1.0 (2006-12-15) Initial Version Revision 1.1 (2007-12-22) Update to reflect recent data Revision 2.0 (2008-12-17) Major update Revision 2.0.1 (2008-12-24) typo correction Revision 2.1 (2010-02-07) Convert to be PowerPoint 2003 format and update some contents.