Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
02 การพัฒนาซอฟต์แวร์ส่วน
บุคคล
สงวนลิขสิทธิ์ 2551, 2552, 2553
สุรเดช จิตประไพกุลศาล
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 2
หัวข้อ
• ทำาไมจึงต้องเปลี่ยนแปลงกระบวนการพัฒนา
ซอฟต์แวร์
• กระบวนการพัฒนาซอฟต...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 3
ความท้าทายของการพัฒนาซอฟต์แวร์
• ขอบเขตของงานไม่ชัดเจน หรือเปลี่ยนแปลง
บ่อย
•...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 4
สิ่งที่ท้าทายในการพัฒนาซอฟต์แวร์
• การคาดการณ์: ประมาณการว่าจะต้องใช้
เวลาทำา...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 5
อะไรทำาให้คุณดีกว่า
ทำาไมคุณถึงดีกว่า
นักศึกษาปริญญาตรีปี
1?
ทำาไมคุณถึงดีกว่...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 6
สิ่งที่ท้าทายสำาหรับมืออาชีพ
• ทำาอย่างไรเราถึงจะผลิตซอฟต์แวร์ที่มีคุณภาพ
ในก...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 7
มืออาชีพ
สามารถทำาตาม
ข้อตกลงได้
ผลิตงานคุณภาพ
อย่างสมำ่าเสมอ
ตกลงในสิ่งที่
เ...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 8
องค์ประกอบหลักของความสำาเร็จ
• มุ่งเน้นที่ทีมและบุคคล
• เน้นคุณภาพ
• สร้างแรง...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 9
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (1)
• กระบวนการระดับบุคคลสำาหรับ...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 10
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (2)
• PSP ช่วยให้เข้าใจกระบวนกา...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 11
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (3)
• PSP สามารถใช้ได้กับเกือบท...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 12
กระบวนการระดับบุคคลสำาหรับการ
พัฒนาซอฟต์แวร์ (4)
• ใน PSP เรา
– เป็นทั้งเจ้า...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 13
ประโยชน์ของ PSP
กระบวนการ PSP ที่เสถียรจะช่วยให้เรา
• รู้จักตัวเอง (Self-awa...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 14
จุดประสงค์ของ PSP
• เพื่อพัฒนาทักษะที่จำาเป็นสำาหรับ
– การวางแผนการทำางาน
– ...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 15
กระบวนการทางวิศวกรรม
เป้าหมาย
ข้อจำากัด
กระบวนการ
ความ
ต้องการ
ผลิตภัณฑ์
ทรั...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 16
หลักการของ PSP
คุณภาพ
ของ
ซอฟต์แวร์
คุณภาพ
ของ
แต่ละชิ้น
ส่วน
ผู้พัฒนา
ซอฟต์...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 17
หลักการของ PSP
• เราต้องรับผิดชอบต่อกระบวนการพัฒนา
ซอฟต์แวร์ของตนเอง
• เราคว...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 18
แนวทางการเรียนรู้ PSP
• PSP จะแบ่งออกเป็น 6+2 ขั้น
• เริ่มจากรวบรวมข้อมูลเกี...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 19
บันได 6 + 2 ขั้นของ PSP
PSP0
กระบวนการในปัจจุบัน
ตัวชี้วัดเบื้องต้น
PSP0.1
ม...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 20
การเรียนรู้ PSP
• PSP 0: เรียนรู้สมรรถะของตนเอง
• PSP 1: วางแผนการทำางาน
• P...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 21
องค์ประกอบของ PSP
• คู่มือการปฏิบัติงาน (Process Script)
– คำาบรรยายการใช้กร...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 22
องค์ประกอบของ PSP
วางแผน
ออกแบบ
เขียนโปรแกรม
คอมไพล์
ทดสอบ
สรุปจบ
แบบ
ฟอร์ม
...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 23
คู่มือการปฏิบัติงาน
• ระบุขั้นตอนต่างๆในกระบวนการ ตลอดจนแบบฟอร์ม
มาตรฐาน และ...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 24
ลำาดับ กิจกรรม รายละเอียด
1 วางแผน จัดทำาหรือจัดหารายการความต้องการ
ประมาณเว...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 25
ตัววัด
• ข้อมูลเชิงปริมาณที่ช่วยให้รู้ความเป็นไปของ
งานและกระบวนการ โดยมี 2 ...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 26
ตัววัดพื้นฐาน
PSP มีตัววัดพื้นฐานอยู่ 4 ชนิดคือ
• แรงงาน (Effort)
– โดยวัดจา...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 27
ตัววัดจากการวิเคราะห์
• ตัววัดสำาหรับการบริหารโครงการ
– ใช้ในการประมาณการ กา...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 28
แบบฟอร์ม
• ช่วยในการเก็บรวบรวมข้อมูล
• ใน PSP มีแบบฟอร์ม 3 กลุ่มคือ
– แบบฟอร...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 29
แบบฟอร์ม
• แบบฟอร์มสรุปโครงการ (Project Plan Summary)
• แบบฟอร์มบันทึกเวลากา...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 30
มาตรฐาน
• ใน PSP กำาหนดมาตรฐานไว้ 4 อย่างดังนี้
– มาตรฐานชนิดข้อบกพร่อง (Def...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 31
ก่อนการใช้ PSP
ความ
ต้องการ
พัฒนา ซอฟต์
แวร์
ไม่เห็น
คุณภา
พ
คุณภา
พ
คุณภา
พ
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 32
ใช้ PSP แล้วได้อะไร
• เราได้ฝึกฝนองค์ประกอบสำาคัญของ
กระบวนการพัฒนาซอฟต์แวร์...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 33
รายงานผลการศึกษาประโยชน์ของ
PSP
• Alexis Ocampo, PSP Data Study, F
Fraunhofe...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 34
การประมาณขนาด
From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 35
ความหนาแน่นของข้อบกพร่อง
Alexis Ocampo, PSP Data Study, F
Fraunhofer Institu...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 36
ผลิตภาพ (Productivity)
Alexis Ocampo, PSP Data Study, F
Fraunhofer Institute...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 37
อัตราการขจัดข้อบกพร่อง
Alexis Ocampo, PSP Data Study, F
Fraunhofer Institute...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 38
ผลการใช้ PSP ที่บริษัทอินเดียแห่งหนึ่ง
  ก่อนใช้
หลังการใช้
CMM
หลังการใช้
P...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 39
ผลการใช้ PSP จากหลายบริษัท
  ก่อน PSP หลัง PSP
ความแปรปรวนของแรงงานที่ใช้ 18...
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...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 41
ผลการใช้ PSP/TSP จากบริษัท
Microsoft
โครงการ
ที่ไม่ใช้
TSP
โครงการที่
ใช้ TS...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 42
ผลการใช้ PSP/TSP จาก US
NAVAIR
 
ขนาดของ
งาน(KLOC
)
ความหนา
แน่นของข้อ
บกพร่...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 43
ปัจจัยสู่ความสำาเร็จของ PSP
• ความมีวินัยในตนเอง
• ข้อมูลที่ถูกต้องสมบูรณ์
•...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 44
ข้อควรคำานึง
• ถึงแม้ว่าในการเรียน PSP จะมีการเขียนโปรแกรม แต่
PSP ไม่ใช่วิช...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 45
รู้ PSP แล้วเราจะทำาอะไรต่อ
• ทีม
– กระบวนการพัฒนาซอฟต์แวร์เป็นทีม (Team
Sof...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 46
PSP, TSP และ CMMI
CMMI- สร้างความ
สามารถขององค์กร
TSP– สร้าง
ผลิตภัณฑ์
ที่มี...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 47
หลักการของกระบวนการ
การวัดสมรรถนะ
ทักษะการประมาณและการวางแผน
ทักษะการจัดการค...
Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 48
สรุป
• PSP เป็นกระบวนการที่ช่วยให้เราทำางานได้ดี
ขึ้น
• หลังเรียนจบแล้ว เราจ...
Upcoming SlideShare
Loading in …5
×

02 intro to psp

2,586 views

Published on

Published in: Education
  • Be the first to like this

02 intro to psp

  1. 1. 02 การพัฒนาซอฟต์แวร์ส่วน บุคคล สงวนลิขสิทธิ์ 2551, 2552, 2553 สุรเดช จิตประไพกุลศาล
  2. 2. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 2 หัวข้อ • ทำาไมจึงต้องเปลี่ยนแปลงกระบวนการพัฒนา ซอฟต์แวร์ • กระบวนการพัฒนาซอฟต์แวร์ส่วนบุคคล • หลักการของ PSP • แนวทางการเรียนรู้ PSP
  3. 3. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 3 ความท้าทายของการพัฒนาซอฟต์แวร์ • ขอบเขตของงานไม่ชัดเจน หรือเปลี่ยนแปลง บ่อย • กำาหนดการไม่สมเหตุผล หรือวางแผนไม่ดี • ขาดการควบคุม หรือควบคุมมากเกินไป • ขาดบุคลากร ทีมงานที่ดี • คุณภาพของงานหรือซอฟต์แวร์ไม่ดี
  4. 4. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 4 สิ่งที่ท้าทายในการพัฒนาซอฟต์แวร์ • การคาดการณ์: ประมาณการว่าจะต้องใช้ เวลาทำาเท่าไรก่อนที่จะรู้ว่าจะทำาอะไร • ความไม่แน่นอน: ขอบเขตของงานเปลี่ยน บุคลากรเปลี่ยน สถานการณ์เปลี่ยน ฯลฯ • คุณภาพ: ไม่มีเวลาพอที่จะตรวจทานหรือ ทดสอบ
  5. 5. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 5 อะไรทำาให้คุณดีกว่า ทำาไมคุณถึงดีกว่า นักศึกษาปริญญาตรีปี 1? ทำาไมคุณถึงดีกว่า นักศึกษาปริญญาตรีปี 1? สิ่งที่คุณทำาได้ดีในระดับ บุคคลใช้ได้กับระดับ องค์กรหรือไม่? สิ่งที่คุณทำาได้ดีในระดับ บุคคลใช้ได้กับระดับ องค์กรหรือไม่? Source: DAAD Project ทำาไมองค์กรบาง แห่งถึงทำาได้ดีกว่า ที่อื่น? (ส่งมอบงานตาม กำาหนด งานที่ส่งมอบมี คุณภาพสูง มีข้อบกพร่องน้อย)
  6. 6. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 6 สิ่งที่ท้าทายสำาหรับมืออาชีพ • ทำาอย่างไรเราถึงจะผลิตซอฟต์แวร์ที่มีคุณภาพ ในกำาหนดการที่คาดการณ์ได้ภายใต้งบ ประมาณได้อย่างคงเส้นคงวา • ทำาอย่างไรเราจึงจะสามารถปรับปรุงวิธีปฏิบัติ ของเราในปัจจุบันได้ • ทำาอย่างไรเราจึงจะเผยแพร่วิธีปฏิบัติของเราสู่ สังคมส่วนใหญ่ได้
  7. 7. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 7 มืออาชีพ สามารถทำาตาม ข้อตกลงได้ ผลิตงานคุณภาพ อย่างสมำ่าเสมอ ตกลงในสิ่งที่ เป็นไปได้จริง ใช้ข้อมูลในการ ทำาข้อตกลง วัดและจัดการ คุณภาพ เก็บข้อมูลเกี่ยวกับ งานของตน รู้ว่าอยู่ที่ไหน แล้ว ใช้ข้อมูลติดตาม ความก้าวหน้า
  8. 8. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 8 องค์ประกอบหลักของความสำาเร็จ • มุ่งเน้นที่ทีมและบุคคล • เน้นคุณภาพ • สร้างแรงจูงใจ • เน้นความเรียบง่าย • เน้นการใช้ข้อมูลประกอบการตัดสินใจ • ปรับปรุงจากระดับล่างขึ้นบน • มีโค้ชที่ดี
  9. 9. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 9 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (1) • กระบวนการระดับบุคคลสำาหรับการพัฒนาซอฟต์แวร์ (Personal Software Process หรือ PSP) คือรูปแบบ ของการปรับปรุงกระบวนการที่ออกแบบมาเพื่อใช้ใน ระดับบุคคลโดยมีพื้นฐานมาจากวิธีปฏิบัติสำาหรับพัฒนา ซอฟต์แวร์เชิงอุตสาหกรรม – มีขั้นตอนที่กำาหนดไว้อย่างชัดเจน – มีเกณฑ์การเริ่มงานและสิ้นสุดงานสำาหรับแต่ละขั้นตอน – มีตัววัดและมาตรฐานที่กำาหนดไว้อย่างชัดเจน – มีแนวทางให้เราวิเคราะห์และปรับปรุงกระบวนการ
  10. 10. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 10 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (2) • PSP ช่วยให้เข้าใจกระบวนการของตนเอง – เวลาที่ใช้ในแต่ละส่วนของกระบวนการ – เกิดข้อบกพร่องขึ้น ณ จุดไหน ขจัดไป ณ จุดไหน – ประสิทธิภาพในการทำางานเป็นอย่างไร • เราเรียนรู้วิธีการวัดและจัดการคุณภาพระหว่างการ พัฒนา • PSP คือกระบวนการระดับบุคคลที่มีวุฒิภาวะความ สามารถระดับ 5 ตามแบบจำาลองวุฒิภาวะความสามารถ (Capability Maturity Model; CMM)
  11. 11. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 11 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (3) • PSP สามารถใช้ได้กับเกือบทุกงาน เช่น – การเขียนโปรแกรม – การจัดทำาความต้องการ (requirements) กระบวนการ (process) หรือเอกสาร (document) – การตรวจทาน (review) หรือการทดสอบ (test) – การดูแลรักษาระบบ (maintain systems) – การปรับเปลี่ยนระบบซอฟต์แวร์ขนาดใหญ่ – ฯลฯ
  12. 12. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 12 กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (4) • ใน PSP เรา – เป็นทั้งเจ้าของและผู้ใช้กระบวนการ – ประมาณการและวางแผนอย่างเป็นกิจวัตร – รวบรวมข้อมูลสำาหรับติดตามและปรับปรุงการ ทำางาน – จัดการกับคุณภาพทุกขั้นตอนของกระบวนการ
  13. 13. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 13 ประโยชน์ของ PSP กระบวนการ PSP ที่เสถียรจะช่วยให้เรา • รู้จักตัวเอง (Self-awareness) – เข้าใจทักษะ ความสามารถ และสมรรถนะของตนเอง – สามารถปรับปรุงการทำางานของเราให้ดีขึ้น • ตัดสินใจโดยใช้ข้อเท็จจริง (Fact-based Decision Making) – ใช้ข้อมูลในการประมาณการ วางแผน ปรับปรุง ฯลฯ – สามารถรับมือกับการเปลี่ยนแปลงได้ดีขึ้น • เป็นนายของงาน (Ownership & Accountability) – ดูแลเอาใจใส่แผนที่ทำาขึ้นมาเอง – มั่นใจว่าจะดำาเนินการให้บรรลุข้อตกลงหรือพันธสัญญาต่างๆ ได้
  14. 14. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 14 จุดประสงค์ของ PSP • เพื่อพัฒนาทักษะที่จำาเป็นสำาหรับ – การวางแผนการทำางาน – การติดตามการดำาเนินงานตามแผน – การควบคุมคุณภาพของการทำางาน – การวัด วิเคราะห์ และปรับปรุงประสิทธิภาพในการ ทำางาน
  15. 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. 16. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 16 หลักการของ PSP คุณภาพ ของ ซอฟต์แวร์ คุณภาพ ของ แต่ละชิ้น ส่วน ผู้พัฒนา ซอฟต์แวร์ กระบวนการ พัฒนา ซอฟต์แวร์
  17. 17. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 17 หลักการของ PSP • เราต้องรับผิดชอบต่อกระบวนการพัฒนา ซอฟต์แวร์ของตนเอง • เราควรที่จะวัด ติดตาม และวิเคราะห์การทำางาน ของเรา • เราควรที่จะเรียนรู้ว่าสมรรถนะของเราเป็น อย่างไร ต่างจากที่ควรจะเป็นอย่างไร • เราควรที่จะนำาสิ่งที่เรียนรู้มาปรับปรุงวิธีการ ทำางานของเรา
  18. 18. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 18 แนวทางการเรียนรู้ PSP • PSP จะแบ่งออกเป็น 6+2 ขั้น • เริ่มจากรวบรวมข้อมูลเกี่ยวกับกระบวนการทำางานของ เราในปัจจุบัน • ค่อยๆ เพิ่มวิธีการในแต่ละขั้น • ฝึกฝนวิธีการเหล่านี้ด้วยการพัฒนา 1 – 2 โปรแกรม เพื่อให้เกิดความคุ้นเคย • รวบรวมและวิเคราะห์ข้อมูลที่เกี่ยวข้องกับกระบวนการ • นำาผลที่ได้มาปรับปรุงสมรรถนะและกระบวนการทำางาน
  19. 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. 20. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 20 การเรียนรู้ PSP • PSP 0: เรียนรู้สมรรถะของตนเอง • PSP 1: วางแผนการทำางาน • PSP 2: จัดการกับคุณภาพ • PSP 3: ขยาย PSP ใช้กับงานขนาดใหญ่ • TSP: ขยาย PSP ใช้กับทีม
  21. 21. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 21 องค์ประกอบของ PSP • คู่มือการปฏิบัติงาน (Process Script) – คำาบรรยายการใช้กระบวนการ • ตัววัด (Measure) – ข้อมูลเชิงปริมาณที่ช่วยให้รู้ความเป็นไปของงาน และกระบวนการ • แบบฟอร์ม (Form) – เครื่องมือสำาหรับรวบรวมและเก็บรักษาข้อมูล • มาตรฐาน (Standard) – แนวทางในการทำางาน
  22. 22. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 22 องค์ประกอบของ PSP วางแผน ออกแบบ เขียนโปรแกรม คอมไพล์ ทดสอบ สรุปจบ แบบ ฟอร์ม ผลสรุป โครงกา ร (ตัววัด ต่างๆ) ความต้องการ ซอฟต์แวร์ คู่มือการ ปฏิบัติ งาน ใช้ เป็น แนว ทาง ดัดแปลงมาจาก Introduction to PSP and TSP, Software Engineering Institute, 2006 มาตรฐา น ใช้ เป็น แนว ทาง กระบวนการ
  23. 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. 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. 25. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 25 ตัววัด • ข้อมูลเชิงปริมาณที่ช่วยให้รู้ความเป็นไปของ งานและกระบวนการ โดยมี 2 ชนิดคือ • ตัววัดพื้นฐาน (Base Measures) – ข้อมูลปฐมภูมิที่เก็บรวบรวมโดยตรงจากการทำางาน เช่น เวลาที่ใช้ • ตัววัดจากการวิเคราะห์ (Derived Measures) – ข้อมูลทุติยภูมิที่ได้จาการวิเคราะห์ตัววัดพื้นฐานหรือ ตัววัดจากการวิเคราะห์ตัวอื่น เช่น ความหนาแน่น ของข้อบกพร่อง (Defect density)
  26. 26. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 26 ตัววัดพื้นฐาน PSP มีตัววัดพื้นฐานอยู่ 4 ชนิดคือ • แรงงาน (Effort) – โดยวัดจากเวลาที่ใช้ • คุณภาพ (Quality) – โดยวัดจากจำานวนข้อบกพร่องที่พบและขจัด • ขนาด (Size) – ขนาดของงานที่ทำา • กำาหนดการ (Schedule) – เวลาที่คาดว่าบางสิ่งบางอย่างจะเกิดขึ้น
  27. 27. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 27 ตัววัดจากการวิเคราะห์ • ตัววัดสำาหรับการบริหารโครงการ – ใช้ในการประมาณการ การวางแผน การติดตาม แผน การวัดประสิทธิภาพในการทำางาน ฯลฯ • ตัววัดสำาหรับการบริหารคุณภาพ – ใช้ในการวัด ประเมิน ควบคุม และปรับปรุงคุณภาพ ของกระบวนการและผลิตภัณฑ์ ฯลฯ
  28. 28. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 28 แบบฟอร์ม • ช่วยในการเก็บรวบรวมข้อมูล • ใน PSP มีแบบฟอร์ม 3 กลุ่มคือ – แบบฟอร์มสำาหรับเก็บข้อมูลพื้นฐาน – แบบฟอร์มสำาหรับประมวลผลข้อมูล – แบบฟอร์มสำาหรับวิเคราะห์ข้อมูล
  29. 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. 30. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 30 มาตรฐาน • ใน PSP กำาหนดมาตรฐานไว้ 4 อย่างดังนี้ – มาตรฐานชนิดข้อบกพร่อง (Defect Type Standard) – มาตรฐานการเขียนโค้ด (Coding Standard) – มาตรฐานการวัดขนาด (Size Counting Standard) – มาตรฐานการออกแบบ (Design Standard)
  31. 31. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 31 ก่อนการใช้ PSP ความ ต้องการ พัฒนา ซอฟต์ แวร์ ไม่เห็น คุณภา พ คุณภา พ คุณภา พ
  32. 32. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 32 ใช้ PSP แล้วได้อะไร • เราได้ฝึกฝนองค์ประกอบสำาคัญของ กระบวนการพัฒนาซอฟต์แวร์เชิงอุตสาหกรรม (เทียบได้กับ CMM ระดับ 5 สำาหรับบุคคล) • เราเข้าใจวิธีการที่ดีที่สุดสำาหรับตัวเรา • เราทำางานได้ดีขึ้น • เรามีเป้าหมายการปรับปรุงระยะยาว
  33. 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. 34. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 34 การประมาณขนาด From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  35. 35. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 35 ความหนาแน่นของข้อบกพร่อง Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  36. 36. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 36 ผลิตภาพ (Productivity) Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  37. 37. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 37 อัตราการขจัดข้อบกพร่อง Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  38. 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. 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. 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. 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. 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. 43. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 43 ปัจจัยสู่ความสำาเร็จของ PSP • ความมีวินัยในตนเอง • ข้อมูลที่ถูกต้องสมบูรณ์ • การปฏิบัติตามขั้นตอนที่กำาหนดไว้ • การปรับปรุงตัวเองอย่างไม่หยุดยั้ง ปฏิบัติตามขั้นตอน รวบรวมข้อมูล วิเคราะห์และปรับปรุง
  44. 44. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 44 ข้อควรคำานึง • ถึงแม้ว่าในการเรียน PSP จะมีการเขียนโปรแกรม แต่ PSP ไม่ใช่วิชาการเขียนโปรแกรม • PSP เป็นเรื่องของการปรับปรุงกระบวนการ • ถ้าเราไม่ปฏิบัติตามขั้นตอนที่กำาหนดไว้เราก็จะไม่ได้ เรียนรู้ PSP • ไม่ควรใช้โปรแกรมที่ต้องทำาในงานในการเรียน PSP เพราะส่วนใหญ่แล้วเรามักจะหลีกเลี่ยงที่จะใช้วิธีการที่ ไม่คุ้นเคยเมื่อเรากำาลังทำางาน • วิธีที่เรียน PSP ที่ดีที่สุดคือการปฏิบัติตามขั้นตอนที่ กำาหนด (Learning-by-doing)
  45. 45. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 45 รู้ PSP แล้วเราจะทำาอะไรต่อ • ทีม – กระบวนการพัฒนาซอฟต์แวร์เป็นทีม (Team Software Process หรือ TSP) • องค์กร – แบบจำาลองวุฒิภาวะความสามารถเชิงบูรณาการ (Capability Maturity Model Integration หรือ CMMI) • ประยุกต์ใช้ PSP กับงานประเภทอื่นๆ – ทำารายงาน
  46. 46. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 46 PSP, TSP และ CMMI CMMI- สร้างความ สามารถขององค์กร TSP– สร้าง ผลิตภัณฑ์ ที่มีคุณภาพภายใต้ งบประมาณและ เวลาPSP- สร้างทักษะ และวินัยส่วนบุคคล
  47. 47. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 47 หลักการของกระบวนการ การวัดสมรรถนะ ทักษะการประมาณและการวางแผน ทักษะการจัดการคุณภาพ ทักษะของสมาชิกใน ทีม การตั้งเป้าหมาย การมอบหมายหน้าที่ กระบวนการของทีม แผนงานที่สมดุล สร้างทีม PSP TSP การสื่อสาร การประสานงาน การติดตามโครงการ การจัดการความเสี่ยง บริหารทีม การให้การสนับสนุน การดูแลรักษาวินัย การดูแลความเป็นไปของโครงการ ผู้บริหาร
  48. 48. Revision 2.1 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 48 สรุป • PSP เป็นกระบวนการที่ช่วยให้เราทำางานได้ดี ขึ้น • หลังเรียนจบแล้ว เราจะรู้วิธีการประยุกต์ PSP ให้เหมาะกับความต้องการของเรา • เราจะมีความรู้และทักษะเพียงพอที่จะเข้าร่วมทีม TSP

×