SlideShare a Scribd company logo
02 การพัฒนาซอฟต์แวร์ส่วน
         บุคคล
   สงวนลิขสิทธิ์ 2551 – 2555
    สุรเดช จิตประไพกุลศาล
หัวข้อ
•   ทำาไมจึงต้องปรับปรุงกระบวนการ
•   กระบวนการพัฒนาซอฟต์แวร์ส่วนบุคคล (PSP)
•   หลักการของ PSP
•   แนวทางการเรียนรู้ PSP
•   องค์ประกอบของ PSP
•   ประโยชน์ของ PSP
•   ปัจจัยสู่ความสำาเร็จของ PSP
•   สรุป
Revision 2.3    02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   2
สิ่งที่ท้าทายในการพัฒนาซอฟต์แวร์
• การคาดการณ์ : ประมาณการว่าจะต้องใช้
  เวลาทำาเท่าไรก่ อ น ที่จะรู้ว่าจะทำาอะไร
• ความไม่ แ น่ น อน: ขอบเขตของงานเปลี่ยน
  บุคลากรเปลี่ยน สถานการณ์เปลี่ยน ฯลฯ
• คุ ณ ภาพ: ไม่มีเวลาพอที่จะตรวจทานหรือ
  ทดสอบ



Revision 2.3   02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   3
อะไรทำาให้คุณดีกว่า
                                                     ทำ า ไมองค์ ก รบาง
      ทำ า ไมคุ ณ ถึ ง ดี ก ว่ า                      แห่ ง ถึ ง ทำ า ได้ ด ี
      นั ก ศึ ก ษาปริ ญ ญาตรี ป ี                        กว่ า ที ่ อ ื ่ น ?
      1?
                                                      (ส่ ง มอบงานตาม
                                                             กำ า หนด
                                                       งานที ่ ส ่ ง มอบมี
                                                          คุ ณ ภาพสู ง
    สิ ่ ง ที ่ ค ุ ณ ทำ า ได้ ด ี ใ นระดั บ            มี ข ้ อ บกพร่ อ ง
    บุ ค คลใช้ ไ ด้ ก ั บ ระดั บ                               น้ อ ย)
    องค์ ก รหรื อ ไม่ ?

Revision 2.3                   02 การพัฒนาซอฟต์แวร์ส่วนบุคคล Source: DAAD Project   4
สิ่งที่ท้าทายสำาหรับมืออาชีพ
• ทำาอย่างไรเราถึงจะผลิตซอฟต์แวร์ทม ี ค ุ ณ ภาพ
                                    ี่
  ในกำ า หนดการที ่ ว างแผน ภายใต้ ง บ
  ประมาณได้อย่างคงเส้ น คงวา
• ทำาอย่างไรเราจึงจะสามารถปรั บ ปรุ ง วิธีปฏิบัติ
  ของเราในปัจจุบันได้
• ทำาอย่างไรเราจึงจะเผยแพร่ วิธีปฏิบติของเราสู่
                                       ั
  สังคมโดยรวมได้


Revision 2.3       02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   5
สามารถทำาตาม
 มื อ อาชี พ       ได้ตามสัญญา


ผลิตงานคุณภาพ       สัญญาในสิ่งที่                รู้ว่างานคืบหน้า
 อย่างสมำ่าเสมอ       เป็นไปได้                   ไปถึงไหนแล้ว


ใช้ข้อมูลในการ     ใช้ข้อมูลในการ                 ใช้ข้อมูลติดตาม
จัดการคุณภาพ        ให้คำาสัญญา                    ความก้าวหน้า


                  เก็บข้อมูลเกียวกับ
                               ่
                      งานของตน
 Revision 2.3     02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                 6
ก่อนการใช้ PSP

                            ไม่ เ ห็ น


  ความต้องการ                  พัฒนา                 ซอฟต์แวร์



         คุณภาพ                 คุณภาพ               คุณภาพ
               ?                     ?                  ?
Revision 2.3         02 การพัฒนาซอฟต์แวร์ส่วนบุคคล               7
กระบวนการระดับบุคคลสำาหรับการ
           พัฒนาซอฟต์แวร์ (1)
• กระบวนการระดับบุคคลสำาหรับการพัฒนาซอฟต์แวร์
  (Personal Software Process หรือ PSP) คือรู ป
  แบบของการปรั บ ปรุ ง กระบวนการทีออกแบบมา
                                     ่
  เพือใช้ในระดับบุคคลโดยมีพนฐานมาจากวิธีปฏิบัติ
     ่                      ื้
  สำาหรับพัฒนาซอฟต์แวร์เชิงอุตสาหกรรม
• PSP เป็นกระบวนการระดับบุคคลทีมวุฒิภาวะความ
                                 ่ ี
  สามารถระดับ 5 ตามแบบจำาลองวุฒิภาวะความสามารถ
  (Capability Maturity Model; CMM)


Revision 2.3    02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   8
กระบวนการระดับบุคคลสำาหรับการ
           พัฒนาซอฟต์แวร์ (2)
• PSP สามารถใช้ได้กับเกือบทุกงาน เช่น
     – การเขียนโปรแกรม
     – การจัดทำาความต้องการ (requirements)
       กระบวนการ (process) หรือเอกสาร (document)
     – การตรวจทาน (review) หรือการทดสอบ (test)
     – การดูแลรักษาระบบ (maintain systems)
     – การปรับเปลี่ยนระบบซอฟต์แวร์ขนาดใหญ่
     – ฯลฯ

Revision 2.3      02 การพัฒนาซอฟต์แวร์ส่วนบุคคล    9
ประโยชน์ของ PSP
กระบวนการ PSP ที่เสถียรจะช่วยให้เรา
• รู้จักตัวเอง (Self-awareness)
     – เข้าใจทักษะ ความสามารถ และสมรรถนะของตนเอง
     – สามารถปรับปรุงการทำางานของเราให้ดขน
                                        ี ึ้
• ตัดสินใจจากข้อเท็จจริง (Fact-based Decision Making)
     – ใช้ข้อมูลในการประมาณการ วางแผน ปรับปรุง ฯลฯ
     – สามารถรับมือกับการเปลียนแปลงได้ดขึ้น
                             ่         ี
• เป็นนายของงาน (Ownership & Accountability)
     – ดูแลเอาใจใส่แผนทีทำาขึ้นมาเอง
                         ่
     – มันใจว่าจะดำาเนินการให้บรรลุข้อตกลงหรือพันธสัญญาต่างๆ ได้
         ่


Revision 2.3           02 การพัฒนาซอฟต์แวร์ส่วนบุคคล               10
จุดประสงค์ของ PSP
• เพื่อพัฒนาทักษะที่จำาเป็นสำาหรับ
     –   การวางแผนการทำางาน
     –   การติดตามการดำาเนินงานตามแผน
     –   การควบคุมคุณภาพของการทำางาน
     –   การวัด วิเคราะห์ และปรับปรุงประสิทธิภาพในการ
         ทำางาน




Revision 2.3         02 การพัฒนาซอฟต์แวร์ส่วนบุคคล      11
กระบวนการทางวิศวกรรม
               เป้าหมาย
                                   ควบคุม
               ข้อจำากัด
                    ปรับปรุง                       ตัววัด

                 ความ                                      ผลิตภัณฑ์
                              กระบวนการ
                ต้องการ                                     บริการ
                                                           ที่มา James W. Moore, The Road
                                                           Map to Software Engineering: A
                                ทรัพยากร                   Standard-Based Guide, IEEE
                                                           Computer Society Press, 2006
Revision 2.3               02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                             12
หลักการของ PSP

                                                   ผู ้ พ ั ฒ นา
                                                  ซอฟต์ แ วร์
                  คุ ณ ภาพ
 คุ ณ ภาพ
                     ของ
    ของ
                  แต่ ล ะชิ ้ น
ซอฟต์ แ วร์
                     ส่ ว น
                                                  กระบวนการ
                                                    พั ฒ นา
                                                   ซอฟต์ แ วร์

 Revision 2.3     02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                13
หลักการของ PSP
• เราต้องรับผิดชอบต่อกระบวนการพัฒนา
  ซอฟต์แวร์ของตนเอง
• เราควรที่จะวัด ติดตาม และวิเคราะห์การทำางาน
  ของเรา
• เราควรที่จะเรียนรู้ว่าสมรรถนะของเราเป็น
  อย่างไร ต่างจากที่ควรจะเป็นอย่างไร
• เราควรที่จะนำาสิ่งที่เรียนรู้มาปรับปรุงวิธีการ
  ทำางานของเรา
Revision 2.3     02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   14
แนวทางการเรียนรู้ PSP
• เริ่มจากการสำารวจกระบวนการทำางานของเราใน
  ปัจจุบัน
• ค่อยๆ ปรับปรุงกระบวนการโดยการเพิมทักษะและวิธี
                                      ่
  การครั้งละไม่มาก
• ฝึกฝนกระบวนการและวิธีการเหล่านี้ 2 – 3 ครั้งเพือให้
                                                 ่
  เกิดความคุ้นเคย
• รวบรวมและวิเคราะห์ข้อมูลทีเกี่ยวข้องกับกระบวนการ
                            ่
• นำาผลทีได้มาปรับปรุงสมรรถนะและกระบวนการทำางาน
           ่


Revision 2.3        02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   15
รูปแบบการเรียน PSP
• แบบค่อยเป็นค่อยไป
     – PSP for Engineers I & II
     – เหมาะกับนิสิตนักศึกษา
• แบบพร้อมทำางาน
     – PSP Fundamentals & PSP Advanced
     – เหมาะกับผู้ทำางานแล้ว
     – พร้อมทีจะเริ่ม TSP ได้หลัง PSP Fundamentals
              ่
       แต่จะได้ประโยชน์สูงสุดหลังเรียนรู้ PSP
       Advanced แล้ว

Revision 2.3       02 การพัฒนาซอฟต์แวร์ส่วนบุคคล     16
แบบค่อยเป็นค่อยไป                                 การทำางานเป็นทีม

                                                         TSP (Team Software Process)
การพัฒนาระบบ PSP 3                                       การสร้างทีม
ขนาดใหญ่     การใช้เป็นวัฏจักร                           การจัดการทีม

                                 PSP 2.1                                การจัดการ
                                 แผ่นแบบการออกแบบ                       คุณภาพระดับ
                   PSP 2                                                บุคคล
                   การทบทวน Design
                   การทบทวน Code
                                                        PSP for Engineers II
                           PSP 1.1                                      การวางแผน
            PSP 1          การวางแผนภารกิจ                              ระดับบุคคล
            การประมาณขนาด การวางกำาหนดการ
            รายงานการทดสอบ                              PSP for Engineers I
                        PSP 0.1
                        มาตรฐานการเขียนโปรแกรม                          เก็บข้อมูลอ้างอิง
    PSP 0               ข้อเสนอการปรับปรุงกระบวนการ                     ระดับบุคคล
    กระบวนการในปัจจุบัน การวัดขนาด
    ตัวชี้วัดเบื้องต้น

    Revision 2.3                 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   ดัดแปลงมาจาก SEI      17
แบบพร้อมทำางาน
                                                                                 การทำางาน
การพัฒนาระบบ
                                                                                 เป็นทีม
ขนาดใหญ่
                                                   TSP (Team Software Process)
       PSP 3
                                                   การสร้างทีม
       การใช้เป็นวัฏจักร                           การจัดการทีม
                              PSP 2.1 + Statistic
                              PROBE A & B
                                                                 เครื่องมือทางสถิติและ
                    PSP 2.1                                      การจัดการสมรรถนะ
                    แผนแบบการออกแบบ
                    การทบทวน Design          PSP Advanced
                PSP 2                                            การจัดการคุณภาพและ
                ทบทวน Code วางแผนภารกิจและกำาหนดการ              การติดตามโครงการ
       PSP 1
       การวัดขนาด             มาตรฐานของโค้ด                     การประมาณ การ
       การประมาณขนาด          ข้อเสนอการปรับปรุง                 วางแผน และการ
       รายงานการทดสอบ         กระบวนการ                          ปรับปรุงเชิงคุณภาพ

 PSP 0                                                           เก็บข้อมูลอ้างอิงระดับ
 กระบวนการในปัจจุบัน       PSP Fundamentals                      บุคคล
 ตัวชี้วัดเบื้องต้น
 Revision 2.3                  02 การพัฒนาซอฟต์แวร์ส่วนบุคคล Adapted from SEI             18
องค์ประกอบของ PSP
• คูมือการปฏิบติงาน (Process Script)
    ่         ั
     – คำาบรรยายการใช้กระบวนการ
• ตัววัด (Measure)
     – ข้อมูลเชิงปริมาณทีช่วยให้รู้ความเป็นไปของงาน
                         ่
       และกระบวนการ
• แบบฟอร์ม (Form)
     – เครื่องมือสำาหรับรวบรวมและเก็บรักษาข้อมูล
• มาตรฐาน (Standard)
     – แนวทางในการทำางาน
Revision 2.3        02 การพัฒนาซอฟต์แวร์ส่วนบุคคล     19
องค์ประกอบของ PSP
                               ความต้องการ



                                   วางแผน
 คู่มอการ
     ื          ใช้เป็น
ปฏิบัติงาน     แนวทาง              ออกแบบ

                               เขียนโปรแกรม
                                กระบวนการ                       แบบฟอร์ม
                                   คอมไพล์
                ใช้เป็น
มาตรฐาน                            ทดสอบ
               แนวทาง
                                    สรุปจบ                                           สรุปโครงการ
                                                                                     (ตัววัดต่างๆ)

                                 ซอฟต์แวร์
         ดัดแปลงมาจาก Introduction to PSP and TSP, Software Engineering Institute, 2006
Revision 2.3                     02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                               20
คู่มือการปฏิบัติงาน
• ระบุขั้นตอนต่างๆในกระบวนการ ตลอดจนแบบฟอร์ม
  มาตรฐาน และตัววัดทีเกี่ยวข้อง
                     ่
• โดยปกติแล้วในคู่มอการปฏิบัติงานจะมี
                   ื
     – จุดประสงค์ (purpose)
     – เกณฑ์การเริ่มงาน (entry criteria)
     – คำาแนะนำาการใช้งาน (general guidelines, usage
       considerations, or constraints)
     – เฟสหรือขั้นตอนการปฏิบัติ (phases or steps to be
       performed)
     – ตัววัดและเกณฑ์คุณภาพ (measures and quality criteria)
     – เกณฑ์การสิ้นสุดงาน (exit criteria)
Revision 2.3         02 การพัฒนาซอฟต์แวร์ส่วนบุคคล        21
คู่มอการปฏิบตงานกระบวนการ PSP0
       ื       ั ิ
จุ ด ประสงค์          เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล
เกณฑ์ ก ารเริ ่ ม     โจทย์หรือความต้องการ
ต้ น                  แบบฟอร์มสรุปแผนโครงการ PSP0
                      แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง
                      มาตรฐานข้อบกพร่อง
                      นาฬิกาจับเวลา (ถ้าจำาเป็น)
ลำ า ดั   กิ จ กรรม   รายละเอี ย ด
1
บ         วางแผน      จัดทำาหรือจัดหารายการความต้องการ
                      ประมาณเวลาทีจะใช้ในการพัฒนาแล้วป้อนลงในแบบฟอร์มสรุปแผนโครงการ
                                    ่
                      บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา
2      พัฒนา          ออกแบบโปรแกรม
                      เขียนโปรแกรม
                      คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องทีพบ
                                                          ่
                      ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ
                      บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา
3      สรุปจบ         ป้อนข้อมูลเวลา ข้อบกพร่องลงในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์
เกณฑ์ ก ารสิ ้ น สุ ด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน
                      แบบฟอร์มสรุปแผนโครงการมีขอมูลครบถ้วนสมบูรณ์
                                                  ้
                      แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีขอมูลครบถ้วนสมบูรณ์
                                                                      ้
Revision 2.3                    02 การพัฒนาซอฟต์แวร์ส่วนบุคคล ที่มา: Watts S. Humphrey, PSP: A    22
                                                                Self-Improvement Process for
                                                                Engineers , Addison-Wesley 2005
ตัววัด
• ข้อมูลเชิงปริมาณที่ชวยให้รู้ความเป็นไปของ
                      ่
  งานและกระบวนการ โดยมี 2 ชนิดคือ
• ตัววัดพื้นฐาน (Base Measures)
     – ข้อมูลปฐมภูมทเก็บรวบรวมโดยตรงจากการทำางาน
                    ิ ี่
       เช่น เวลาทีใช้
                  ่
• ตัววัดจากการวิเคราะห์ (Derived Measures)
     – ข้อมูลทุติยภูมิทได้จาการวิเคราะห์ตัววัดพืนฐานหรือ
                       ี่                       ้
       ตัววัดจากการวิเคราะห์ตัวอื่น เช่น ความหนาแน่น
       ของข้อบกพร่อง (Defect density)

Revision 2.3        02 การพัฒนาซอฟต์แวร์ส่วนบุคคล      23
ตัววัดพื้นฐาน
PSP มีตัววัดพื้นฐานอยู่ 4 ชนิดคือ
• แรงงาน (Effort)
     – โดยวัดจากเวลาที่ใช้
• คุณภาพ (Quality)
     – โดยวัดจากจำานวนข้อบกพร่องที่พบและขจัด
• ขนาด (Size)
     – ขนาดของงานทีทำา
                   ่
• กำาหนดการ (Schedule)
     – เวลาที่คาดว่าบางสิ่งบางอย่างจะเกิดขึน
                                           ้

Revision 2.3           02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   24
ตัววัดจากการวิเคราะห์
• ตัววัดสำาหรับการบริหารโครงการ
     – ใช้ในการประมาณการ การวางแผน การติดตาม
       แผน การวัดประสิทธิภาพในการทำางาน ฯลฯ
• ตัววัดสำาหรับการบริหารคุณภาพ
     – ใช้ในการวัด ประเมิน ควบคุม และปรับปรุงคุณภาพ
       ของกระบวนการและผลิตภัณฑ์ ฯลฯ
• ตัววัดสำาหรับการบริหารสมรรถนะ
     – ใช้ในการปรับปรุงสมรรถนะส่วนบุคคล

Revision 2.3        02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   25
แบบฟอร์ม
• ช่วยในการเก็บรวบรวมข้อมูล
• ใน PSP มีแบบฟอร์ม 3 กลุ่มคือ
     – แบบฟอร์มสำาหรับเก็บข้อมูลพืนฐาน
                                  ้
     – แบบฟอร์มสำาหรับประมวลผลข้อมูล
     – แบบฟอร์มสำาหรับวิเคราะห์ข้อมูล




Revision 2.3       02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   26
แบบฟอร์ม
•   แบบฟอร์มสรุปโครงการ (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.3        02 การพัฒนาซอฟต์แวร์ส่วนบุคคล      27
มาตรฐาน
• ใน PSP กำาหนดมาตรฐานไว้ 4 อย่างดังนี้
     – มาตรฐานชนิดข้อบกพร่อง (Defect Type
       Standard)
     – มาตรฐานการเขียนโค้ด (Coding Standard)
     – มาตรฐานการวัดขนาด (Size Counting Standard)
     – มาตรฐานการออกแบบ (Design Standard)




Revision 2.3      02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   28
หลังจากเรียนรู้ PSP




  ความต้องการ               กระบวนการ                       ซอฟต์แวร์



                กระบวนการ   กระบวนการ                กระบวนการ
                  ย่อย 1      ย่อย 2                   ย่อย n

Revision 2.3         02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                  29
ใช้ PSP แล้วได้อะไร
• เราได้ฝกฝนองค์ประกอบสำาคัญของ
           ึ
  กระบวนการพัฒนาซอฟต์แวร์เชิงอุตสาหกรรม
  (เทียบได้กับ CMM ระดับ 5 สำาหรับบุคคล)
• เราเข้าใจวิธีการที่ดีที่สดสำาหรับตัวเรา
                           ุ
• เราทำางานได้ดีขึ้น
• เรามีเป้าหมายการปรับปรุงระยะยาว



Revision 2.3       02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   30
รายงานผลการศึกษาประโยชน์ของ
                PSP
• Alexis Ocampo, PSP Data Study , F
  Fraunhofer Institute for Experimental Software
  Engineering, May 2008
• ทำาการตรวจสอบประโยชน์ของการจัดการกระบวนการ
  อย่างมีวินยโดยใช้ข้อมูลของวิศวกรจำานวน 3,090 คน
            ั
  ทีผ่านการอบรม PSP โดยพิจารณาในเรื่อง
    ่
     –   ความแม่นยำาของการประมาณขนาด
     –   ความแม่นยำาของการประมาณแรงงาน
     –   ความแม่นยำาของการประมาณข้อบกพร่อง
     –   ผลิตภาพ (productivity)
     –   ความหนาแน่นและอัตราการขจัดข้อบกพร่อง
Revision 2.3          02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   31
การประมาณขนาด




Revision 2.3                          02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                                          32
               From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering,
               May 2008
ความหนาแน่นของข้อบกพร่อง
                   (Defect Density)




                                                     From Alexis Ocampo, PSP Data
                                                     Study, F Fraunhofer Institute for
                                                     Experimental Software Engineering,
                                                     May 2008




Revision 2.3         02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                                33
ผลิตภาพ (Productivity)
                และ ผลผลิต (Yield)
      Productivity                  Pre-compile Defect Yield




                                                  From Alexis Ocampo, PSP Data
Revision 2.3         02 การพัฒนาซอฟต์แวร์ส่วนบุคคลStudy, F Fraunhofer Institute for    34
                                                  Experimental Software Engineering,
                                                  May 2008
ผลตอบแทนการลงทุน
                         (วัดในหน่วยของเวลา)
     1200.00


      600.00                                                                                            500
                                                                                                        1000
                                                                                                        2000
         0.00
                                                                                                        4000


     -600.00
                         PSP0                      PSP1                      PSP2
         500            -155.09                    -35.00                    56.50
         1000           -211.72                    28.67                    211.83
         2000           -324.89                    156.11                   524.33
         4000           -551.33                    411.11                  1144.00


From Taek Lee, Dookwon Baik, and Hoh Peter In, Cost Benefit Analysis of Personal Software Process Training
Program, IEEE 8th International Conference on Computer and Information Technology Workshops, 2008
  Revision 2.3                         02 การพัฒนาซอฟต์แวร์ส่วนบุคคล                                         35
ปัจจัยสู่ความสำาเร็จของ PSP
•   ความมีวินัยในตนเอง
•   ข้อมูลที่ถูกต้องสมบูรณ์
•   การปฏิบัติตามขั้นตอนที่กำาหนดไว้
•   การปรับปรุงตัวเองอย่างไม่หยุดยั้ง


ปฏิ บ ั ต ิ ต ามขั ้ น ตอน รวบรวมข้ อ มู ล
         วิ เ คราะห์ แ ละปรั บ ปรุ ง
Revision 2.3      02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   36
ข้อควรคำานึง
• ถึงแม้ว่าในการเรียน PSP จะมีการเขียนโปรแกรม แต่
  PSP ไม่ใช่วิชาการเขียนโปรแกรม
• PSP เป็นเรื่องของการปรับปรุงกระบวนการ
• ถ้าเราไม่ปฏิบัติตามขั้นตอนทีกำาหนดไว้เราก็จะไม่ได้
                               ่
  เรียนรู้ PSP
• ไม่ควรใช้โปรแกรมทีต้องทำาในงานในการเรียน PSP
                         ่
  เพราะส่วนใหญ่แล้วเรามักจะหลีกเลี่ยงทีจะใช้วิธีการที่
                                        ่
  ไม่คุ้นเคยเมือเรากำาลังทำางาน
               ่
• วิธีทเรียน PSP ทีดีทสุดคือการปฏิบัติตามขั้นตอนที่
        ี่          ่ ี่
  กำาหนด (Learning-by-doing)
Revision 2.3       02 การพัฒนาซอฟต์แวร์ส่วนบุคคล     37
รู้ PSP แล้วเราจะทำาอะไรต่อ
• บุคคล
     – ประยุกต์ PSP กับงานอื่น เช่น ทำารายงาน ฯลฯ
• ทีม
     – กระบวนการพัฒนาซอฟต์แวร์เป็นทีม (Team
       Software Process หรือ TSP)
• องค์กร
     – แบบจำาลองวุฒิภาวะความสามารถเชิงบูรณาการ
       (Capability Maturity Model Integration หรือ
       CMMI)

Revision 2.3        02 การพัฒนาซอฟต์แวร์ส่วนบุคคล    38
PSP, TSP และ CMMI

CMMI – สร้างความ
สามารถขององค์กร



TSP – สร้างผลิตภัณฑ์
ที่มีคุณภาพภายใต้งบ
ประมาณและเวลา



PSP - สร้างทักษะและ
วินัยส่วนบุคคล


 Revision 2.3          02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   39
CMMI
                                             การให้การสนับสนุน
                             ผู ้ บ ริ ห าร   การดูแลรักษาวินัย
                             การดูแลความเป็นไปของโครงการ
                                                     การสื่อสาร
                      บริ ห ารที ม              การประสานงาน
                                             การติดตามโครงการ
      TSP




                                            การจัดการความเสี่ยง
                                              การตั้งเป้าหมาย
                                           การมอบหมายหน้าที่
               สร้ า งที ม
                                           กระบวนการของทีม
                                              แผนงานที่สมดุล
                                         หลักการของกระบวนการ
PSP




         ทั ก ษะของสมาชิ ก ใน                       การวัดสมรรถนะ
         ที ม               ทักษะการประมาณและการวางแผน
Revision 2.3          02 การพัฒนาซอฟต์แวร์ทักษะการจัดการคุณภาพ
                                          ส่วนบุคคล                 40
สรุป
• PSP เป็นกระบวนการที่ชวยให้เราทำางานได้ดี
                           ่
  ขึ้น
• หลังเรียนจบแล้ว เราจะรู้วิธีการประยุกต์ PSP
  ให้เหมาะกับความต้องการของเรา
• เราจะมีความรู้และทักษะเพียงพอที่จะเข้าร่วมทีม
  TSP



Revision 2.3    02 การพัฒนาซอฟต์แวร์ส่วนบุคคล   41

More Related Content

Similar to 02 intro to psp

03 using psp0
03 using psp003 using psp0
ซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาซอฟต์แวร์ทางการศึกษา
ซอฟต์แวร์ทางการศึกษาjintana_pai
 
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์กระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
Sitdhibong Laokok
 
System Development Life Cycle
System Development  Life  CycleSystem Development  Life  Cycle
System Development Life Cycle
eiszer
 
System development life cycle sdlc
System development life cycle  sdlcSystem development life cycle  sdlc
System development life cycle sdlc
Kapook 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 C
Kapook Moo Auan
 
แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2Meaw Sukee
 
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศChapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Akkadate.Com
 
การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์
Watinee Poksup
 
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
Sitdhibong Laokok
 

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
 
689 2
689 2689 2
689 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
 
แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2แผนการจัดการเรียนรู้ที่ 2
แผนการจัดการเรียนรู้ที่ 2
 
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศChapter14 การวางแผนและพัฒนาระบบสารสนเทศ
Chapter14 การวางแผนและพัฒนาระบบสารสนเทศ
 
Lesson 4 (misson)
Lesson 4 (misson)Lesson 4 (misson)
Lesson 4 (misson)
 
Lesson 4 (misson)2
Lesson 4 (misson)2Lesson 4 (misson)2
Lesson 4 (misson)2
 
Lesson 4 (misson)2
Lesson 4 (misson)2Lesson 4 (misson)2
Lesson 4 (misson)2
 
Soft were
Soft wereSoft were
Soft were
 
การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์การพัฒนาซอฟแวร์
การพัฒนาซอฟแวร์
 
K8
K8K8
K8
 
Software
SoftwareSoftware
Software
 
Software
SoftwareSoftware
Software
 
2
22
2
 
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
 

More from Suradet Jitprapaikulsarn

Integrating agile concept throughout curriculum v1.0
Integrating agile concept throughout curriculum v1.0Integrating agile concept throughout curriculum v1.0
Integrating agile concept throughout curriculum v1.0
Suradet Jitprapaikulsarn
 
Context switching unplugged v1.2 (Thai version)
Context switching unplugged v1.2 (Thai version)Context switching unplugged v1.2 (Thai version)
Context switching unplugged v1.2 (Thai version)
Suradet Jitprapaikulsarn
 
Necessary but not sufficient
Necessary but not sufficientNecessary but not sufficient
Necessary but not sufficient
Suradet Jitprapaikulsarn
 
Using tdd to understand legacy codes
Using tdd to understand legacy codesUsing tdd to understand legacy codes
Using tdd to understand legacy codes
Suradet Jitprapaikulsarn
 
Agile with legacy product
Agile with legacy productAgile with legacy product
Agile with legacy product
Suradet Jitprapaikulsarn
 
04 basic measurement
04 basic measurement04 basic measurement
04 basic measurement
Suradet Jitprapaikulsarn
 
01 process and software development
01 process and software development01 process and software development
01 process and software development
Suradet Jitprapaikulsarn
 

More from Suradet Jitprapaikulsarn (7)

Integrating agile concept throughout curriculum v1.0
Integrating agile concept throughout curriculum v1.0Integrating agile concept throughout curriculum v1.0
Integrating agile concept throughout curriculum v1.0
 
Context switching unplugged v1.2 (Thai version)
Context switching unplugged v1.2 (Thai version)Context switching unplugged v1.2 (Thai version)
Context switching unplugged v1.2 (Thai version)
 
Necessary but not sufficient
Necessary but not sufficientNecessary but not sufficient
Necessary but not sufficient
 
Using tdd to understand legacy codes
Using tdd to understand legacy codesUsing tdd to understand legacy codes
Using tdd to understand legacy codes
 
Agile with legacy product
Agile with legacy productAgile with legacy product
Agile with legacy product
 
04 basic measurement
04 basic measurement04 basic measurement
04 basic measurement
 
01 process and software development
01 process and software development01 process and software development
01 process and software development
 

02 intro to psp

  • 1. 02 การพัฒนาซอฟต์แวร์ส่วน บุคคล สงวนลิขสิทธิ์ 2551 – 2555 สุรเดช จิตประไพกุลศาล
  • 2. หัวข้อ • ทำาไมจึงต้องปรับปรุงกระบวนการ • กระบวนการพัฒนาซอฟต์แวร์ส่วนบุคคล (PSP) • หลักการของ PSP • แนวทางการเรียนรู้ PSP • องค์ประกอบของ PSP • ประโยชน์ของ PSP • ปัจจัยสู่ความสำาเร็จของ PSP • สรุป Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 2
  • 3. สิ่งที่ท้าทายในการพัฒนาซอฟต์แวร์ • การคาดการณ์ : ประมาณการว่าจะต้องใช้ เวลาทำาเท่าไรก่ อ น ที่จะรู้ว่าจะทำาอะไร • ความไม่ แ น่ น อน: ขอบเขตของงานเปลี่ยน บุคลากรเปลี่ยน สถานการณ์เปลี่ยน ฯลฯ • คุ ณ ภาพ: ไม่มีเวลาพอที่จะตรวจทานหรือ ทดสอบ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 3
  • 4. อะไรทำาให้คุณดีกว่า ทำ า ไมองค์ ก รบาง ทำ า ไมคุ ณ ถึ ง ดี ก ว่ า แห่ ง ถึ ง ทำ า ได้ ด ี นั ก ศึ ก ษาปริ ญ ญาตรี ป ี กว่ า ที ่ อ ื ่ น ? 1? (ส่ ง มอบงานตาม กำ า หนด งานที ่ ส ่ ง มอบมี คุ ณ ภาพสู ง สิ ่ ง ที ่ ค ุ ณ ทำ า ได้ ด ี ใ นระดั บ มี ข ้ อ บกพร่ อ ง บุ ค คลใช้ ไ ด้ ก ั บ ระดั บ น้ อ ย) องค์ ก รหรื อ ไม่ ? Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล Source: DAAD Project 4
  • 5. สิ่งที่ท้าทายสำาหรับมืออาชีพ • ทำาอย่างไรเราถึงจะผลิตซอฟต์แวร์ทม ี ค ุ ณ ภาพ ี่ ในกำ า หนดการที ่ ว างแผน ภายใต้ ง บ ประมาณได้อย่างคงเส้ น คงวา • ทำาอย่างไรเราจึงจะสามารถปรั บ ปรุ ง วิธีปฏิบัติ ของเราในปัจจุบันได้ • ทำาอย่างไรเราจึงจะเผยแพร่ วิธีปฏิบติของเราสู่ ั สังคมโดยรวมได้ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 5
  • 6. สามารถทำาตาม มื อ อาชี พ ได้ตามสัญญา ผลิตงานคุณภาพ สัญญาในสิ่งที่ รู้ว่างานคืบหน้า อย่างสมำ่าเสมอ เป็นไปได้ ไปถึงไหนแล้ว ใช้ข้อมูลในการ ใช้ข้อมูลในการ ใช้ข้อมูลติดตาม จัดการคุณภาพ ให้คำาสัญญา ความก้าวหน้า เก็บข้อมูลเกียวกับ ่ งานของตน Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 6
  • 7. ก่อนการใช้ PSP ไม่ เ ห็ น ความต้องการ พัฒนา ซอฟต์แวร์ คุณภาพ คุณภาพ คุณภาพ ? ? ? Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 7
  • 8. กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (1) • กระบวนการระดับบุคคลสำาหรับการพัฒนาซอฟต์แวร์ (Personal Software Process หรือ PSP) คือรู ป แบบของการปรั บ ปรุ ง กระบวนการทีออกแบบมา ่ เพือใช้ในระดับบุคคลโดยมีพนฐานมาจากวิธีปฏิบัติ ่ ื้ สำาหรับพัฒนาซอฟต์แวร์เชิงอุตสาหกรรม • PSP เป็นกระบวนการระดับบุคคลทีมวุฒิภาวะความ ่ ี สามารถระดับ 5 ตามแบบจำาลองวุฒิภาวะความสามารถ (Capability Maturity Model; CMM) Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 8
  • 9. กระบวนการระดับบุคคลสำาหรับการ พัฒนาซอฟต์แวร์ (2) • PSP สามารถใช้ได้กับเกือบทุกงาน เช่น – การเขียนโปรแกรม – การจัดทำาความต้องการ (requirements) กระบวนการ (process) หรือเอกสาร (document) – การตรวจทาน (review) หรือการทดสอบ (test) – การดูแลรักษาระบบ (maintain systems) – การปรับเปลี่ยนระบบซอฟต์แวร์ขนาดใหญ่ – ฯลฯ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 9
  • 10. ประโยชน์ของ PSP กระบวนการ PSP ที่เสถียรจะช่วยให้เรา • รู้จักตัวเอง (Self-awareness) – เข้าใจทักษะ ความสามารถ และสมรรถนะของตนเอง – สามารถปรับปรุงการทำางานของเราให้ดขน ี ึ้ • ตัดสินใจจากข้อเท็จจริง (Fact-based Decision Making) – ใช้ข้อมูลในการประมาณการ วางแผน ปรับปรุง ฯลฯ – สามารถรับมือกับการเปลียนแปลงได้ดขึ้น ่ ี • เป็นนายของงาน (Ownership & Accountability) – ดูแลเอาใจใส่แผนทีทำาขึ้นมาเอง ่ – มันใจว่าจะดำาเนินการให้บรรลุข้อตกลงหรือพันธสัญญาต่างๆ ได้ ่ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 10
  • 11. จุดประสงค์ของ PSP • เพื่อพัฒนาทักษะที่จำาเป็นสำาหรับ – การวางแผนการทำางาน – การติดตามการดำาเนินงานตามแผน – การควบคุมคุณภาพของการทำางาน – การวัด วิเคราะห์ และปรับปรุงประสิทธิภาพในการ ทำางาน Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 11
  • 12. กระบวนการทางวิศวกรรม เป้าหมาย ควบคุม ข้อจำากัด ปรับปรุง ตัววัด ความ ผลิตภัณฑ์ กระบวนการ ต้องการ บริการ ที่มา James W. Moore, The Road Map to Software Engineering: A ทรัพยากร Standard-Based Guide, IEEE Computer Society Press, 2006 Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 12
  • 13. หลักการของ PSP ผู ้ พ ั ฒ นา ซอฟต์ แ วร์ คุ ณ ภาพ คุ ณ ภาพ ของ ของ แต่ ล ะชิ ้ น ซอฟต์ แ วร์ ส่ ว น กระบวนการ พั ฒ นา ซอฟต์ แ วร์ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 13
  • 14. หลักการของ PSP • เราต้องรับผิดชอบต่อกระบวนการพัฒนา ซอฟต์แวร์ของตนเอง • เราควรที่จะวัด ติดตาม และวิเคราะห์การทำางาน ของเรา • เราควรที่จะเรียนรู้ว่าสมรรถนะของเราเป็น อย่างไร ต่างจากที่ควรจะเป็นอย่างไร • เราควรที่จะนำาสิ่งที่เรียนรู้มาปรับปรุงวิธีการ ทำางานของเรา Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 14
  • 15. แนวทางการเรียนรู้ PSP • เริ่มจากการสำารวจกระบวนการทำางานของเราใน ปัจจุบัน • ค่อยๆ ปรับปรุงกระบวนการโดยการเพิมทักษะและวิธี ่ การครั้งละไม่มาก • ฝึกฝนกระบวนการและวิธีการเหล่านี้ 2 – 3 ครั้งเพือให้ ่ เกิดความคุ้นเคย • รวบรวมและวิเคราะห์ข้อมูลทีเกี่ยวข้องกับกระบวนการ ่ • นำาผลทีได้มาปรับปรุงสมรรถนะและกระบวนการทำางาน ่ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 15
  • 16. รูปแบบการเรียน PSP • แบบค่อยเป็นค่อยไป – PSP for Engineers I & II – เหมาะกับนิสิตนักศึกษา • แบบพร้อมทำางาน – PSP Fundamentals & PSP Advanced – เหมาะกับผู้ทำางานแล้ว – พร้อมทีจะเริ่ม TSP ได้หลัง PSP Fundamentals ่ แต่จะได้ประโยชน์สูงสุดหลังเรียนรู้ PSP Advanced แล้ว Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 16
  • 17. แบบค่อยเป็นค่อยไป การทำางานเป็นทีม TSP (Team Software Process) การพัฒนาระบบ PSP 3 การสร้างทีม ขนาดใหญ่ การใช้เป็นวัฏจักร การจัดการทีม PSP 2.1 การจัดการ แผ่นแบบการออกแบบ คุณภาพระดับ PSP 2 บุคคล การทบทวน Design การทบทวน Code PSP for Engineers II PSP 1.1 การวางแผน PSP 1 การวางแผนภารกิจ ระดับบุคคล การประมาณขนาด การวางกำาหนดการ รายงานการทดสอบ PSP for Engineers I PSP 0.1 มาตรฐานการเขียนโปรแกรม เก็บข้อมูลอ้างอิง PSP 0 ข้อเสนอการปรับปรุงกระบวนการ ระดับบุคคล กระบวนการในปัจจุบัน การวัดขนาด ตัวชี้วัดเบื้องต้น Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล ดัดแปลงมาจาก SEI 17
  • 18. แบบพร้อมทำางาน การทำางาน การพัฒนาระบบ เป็นทีม ขนาดใหญ่ TSP (Team Software Process) PSP 3 การสร้างทีม การใช้เป็นวัฏจักร การจัดการทีม PSP 2.1 + Statistic PROBE A & B เครื่องมือทางสถิติและ PSP 2.1 การจัดการสมรรถนะ แผนแบบการออกแบบ การทบทวน Design PSP Advanced PSP 2 การจัดการคุณภาพและ ทบทวน Code วางแผนภารกิจและกำาหนดการ การติดตามโครงการ PSP 1 การวัดขนาด มาตรฐานของโค้ด การประมาณ การ การประมาณขนาด ข้อเสนอการปรับปรุง วางแผน และการ รายงานการทดสอบ กระบวนการ ปรับปรุงเชิงคุณภาพ PSP 0 เก็บข้อมูลอ้างอิงระดับ กระบวนการในปัจจุบัน PSP Fundamentals บุคคล ตัวชี้วัดเบื้องต้น Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล Adapted from SEI 18
  • 19. องค์ประกอบของ PSP • คูมือการปฏิบติงาน (Process Script) ่ ั – คำาบรรยายการใช้กระบวนการ • ตัววัด (Measure) – ข้อมูลเชิงปริมาณทีช่วยให้รู้ความเป็นไปของงาน ่ และกระบวนการ • แบบฟอร์ม (Form) – เครื่องมือสำาหรับรวบรวมและเก็บรักษาข้อมูล • มาตรฐาน (Standard) – แนวทางในการทำางาน Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 19
  • 20. องค์ประกอบของ PSP ความต้องการ วางแผน คู่มอการ ื ใช้เป็น ปฏิบัติงาน แนวทาง ออกแบบ เขียนโปรแกรม กระบวนการ แบบฟอร์ม คอมไพล์ ใช้เป็น มาตรฐาน ทดสอบ แนวทาง สรุปจบ สรุปโครงการ (ตัววัดต่างๆ) ซอฟต์แวร์ ดัดแปลงมาจาก Introduction to PSP and TSP, Software Engineering Institute, 2006 Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 20
  • 21. คู่มือการปฏิบัติงาน • ระบุขั้นตอนต่างๆในกระบวนการ ตลอดจนแบบฟอร์ม มาตรฐาน และตัววัดทีเกี่ยวข้อง ่ • โดยปกติแล้วในคู่มอการปฏิบัติงานจะมี ื – จุดประสงค์ (purpose) – เกณฑ์การเริ่มงาน (entry criteria) – คำาแนะนำาการใช้งาน (general guidelines, usage considerations, or constraints) – เฟสหรือขั้นตอนการปฏิบัติ (phases or steps to be performed) – ตัววัดและเกณฑ์คุณภาพ (measures and quality criteria) – เกณฑ์การสิ้นสุดงาน (exit criteria) Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 21
  • 22. คู่มอการปฏิบตงานกระบวนการ PSP0 ื ั ิ จุ ด ประสงค์ เพื่อเป็นแนวทางการพัฒนาโปรแกรมระดับโมดูล เกณฑ์ ก ารเริ ่ ม โจทย์หรือความต้องการ ต้ น แบบฟอร์มสรุปแผนโครงการ PSP0 แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่อง มาตรฐานข้อบกพร่อง นาฬิกาจับเวลา (ถ้าจำาเป็น) ลำ า ดั กิ จ กรรม รายละเอี ย ด 1 บ วางแผน จัดทำาหรือจัดหารายการความต้องการ ประมาณเวลาทีจะใช้ในการพัฒนาแล้วป้อนลงในแบบฟอร์มสรุปแผนโครงการ ่ บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา 2 พัฒนา ออกแบบโปรแกรม เขียนโปรแกรม คอมไพล์โปรแกรม และแก้ไขข้อบกพร่องทีพบ ่ ทดสอบโปรแกรม และแก้ไขข้อบกพร่องที่พบ บันทึกเวลาลงในแบบฟอร์มบันทึกเวลา 3 สรุปจบ ป้อนข้อมูลเวลา ข้อบกพร่องลงในแบบฟอร์มสรุปแผนโครงการให้สมบูรณ์ เกณฑ์ ก ารสิ ้ น สุ ด โปรแกรมผ่านการทดสอบอย่างถี่ถ้วน แบบฟอร์มสรุปแผนโครงการมีขอมูลครบถ้วนสมบูรณ์ ้ แบบฟอร์มบันทึกเวลาและแบบฟอร์มบันทึกข้อบกพร่องมีขอมูลครบถ้วนสมบูรณ์ ้ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล ที่มา: Watts S. Humphrey, PSP: A 22 Self-Improvement Process for Engineers , Addison-Wesley 2005
  • 23. ตัววัด • ข้อมูลเชิงปริมาณที่ชวยให้รู้ความเป็นไปของ ่ งานและกระบวนการ โดยมี 2 ชนิดคือ • ตัววัดพื้นฐาน (Base Measures) – ข้อมูลปฐมภูมทเก็บรวบรวมโดยตรงจากการทำางาน ิ ี่ เช่น เวลาทีใช้ ่ • ตัววัดจากการวิเคราะห์ (Derived Measures) – ข้อมูลทุติยภูมิทได้จาการวิเคราะห์ตัววัดพืนฐานหรือ ี่ ้ ตัววัดจากการวิเคราะห์ตัวอื่น เช่น ความหนาแน่น ของข้อบกพร่อง (Defect density) Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 23
  • 24. ตัววัดพื้นฐาน PSP มีตัววัดพื้นฐานอยู่ 4 ชนิดคือ • แรงงาน (Effort) – โดยวัดจากเวลาที่ใช้ • คุณภาพ (Quality) – โดยวัดจากจำานวนข้อบกพร่องที่พบและขจัด • ขนาด (Size) – ขนาดของงานทีทำา ่ • กำาหนดการ (Schedule) – เวลาที่คาดว่าบางสิ่งบางอย่างจะเกิดขึน ้ Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 24
  • 25. ตัววัดจากการวิเคราะห์ • ตัววัดสำาหรับการบริหารโครงการ – ใช้ในการประมาณการ การวางแผน การติดตาม แผน การวัดประสิทธิภาพในการทำางาน ฯลฯ • ตัววัดสำาหรับการบริหารคุณภาพ – ใช้ในการวัด ประเมิน ควบคุม และปรับปรุงคุณภาพ ของกระบวนการและผลิตภัณฑ์ ฯลฯ • ตัววัดสำาหรับการบริหารสมรรถนะ – ใช้ในการปรับปรุงสมรรถนะส่วนบุคคล Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 25
  • 26. แบบฟอร์ม • ช่วยในการเก็บรวบรวมข้อมูล • ใน PSP มีแบบฟอร์ม 3 กลุ่มคือ – แบบฟอร์มสำาหรับเก็บข้อมูลพืนฐาน ้ – แบบฟอร์มสำาหรับประมวลผลข้อมูล – แบบฟอร์มสำาหรับวิเคราะห์ข้อมูล Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 26
  • 27. แบบฟอร์ม • แบบฟอร์มสรุปโครงการ (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.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 27
  • 28. มาตรฐาน • ใน PSP กำาหนดมาตรฐานไว้ 4 อย่างดังนี้ – มาตรฐานชนิดข้อบกพร่อง (Defect Type Standard) – มาตรฐานการเขียนโค้ด (Coding Standard) – มาตรฐานการวัดขนาด (Size Counting Standard) – มาตรฐานการออกแบบ (Design Standard) Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 28
  • 29. หลังจากเรียนรู้ PSP ความต้องการ กระบวนการ ซอฟต์แวร์ กระบวนการ กระบวนการ กระบวนการ ย่อย 1 ย่อย 2 ย่อย n Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 29
  • 30. ใช้ PSP แล้วได้อะไร • เราได้ฝกฝนองค์ประกอบสำาคัญของ ึ กระบวนการพัฒนาซอฟต์แวร์เชิงอุตสาหกรรม (เทียบได้กับ CMM ระดับ 5 สำาหรับบุคคล) • เราเข้าใจวิธีการที่ดีที่สดสำาหรับตัวเรา ุ • เราทำางานได้ดีขึ้น • เรามีเป้าหมายการปรับปรุงระยะยาว Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 30
  • 31. รายงานผลการศึกษาประโยชน์ของ PSP • Alexis Ocampo, PSP Data Study , F Fraunhofer Institute for Experimental Software Engineering, May 2008 • ทำาการตรวจสอบประโยชน์ของการจัดการกระบวนการ อย่างมีวินยโดยใช้ข้อมูลของวิศวกรจำานวน 3,090 คน ั ทีผ่านการอบรม PSP โดยพิจารณาในเรื่อง ่ – ความแม่นยำาของการประมาณขนาด – ความแม่นยำาของการประมาณแรงงาน – ความแม่นยำาของการประมาณข้อบกพร่อง – ผลิตภาพ (productivity) – ความหนาแน่นและอัตราการขจัดข้อบกพร่อง Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 31
  • 32. การประมาณขนาด Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 32 From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008
  • 33. ความหนาแน่นของข้อบกพร่อง (Defect Density) From Alexis Ocampo, PSP Data Study, F Fraunhofer Institute for Experimental Software Engineering, May 2008 Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 33
  • 34. ผลิตภาพ (Productivity) และ ผลผลิต (Yield) Productivity Pre-compile Defect Yield From Alexis Ocampo, PSP Data Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคลStudy, F Fraunhofer Institute for 34 Experimental Software Engineering, May 2008
  • 35. ผลตอบแทนการลงทุน (วัดในหน่วยของเวลา) 1200.00 600.00 500 1000 2000 0.00 4000 -600.00 PSP0 PSP1 PSP2 500 -155.09 -35.00 56.50 1000 -211.72 28.67 211.83 2000 -324.89 156.11 524.33 4000 -551.33 411.11 1144.00 From Taek Lee, Dookwon Baik, and Hoh Peter In, Cost Benefit Analysis of Personal Software Process Training Program, IEEE 8th International Conference on Computer and Information Technology Workshops, 2008 Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 35
  • 36. ปัจจัยสู่ความสำาเร็จของ PSP • ความมีวินัยในตนเอง • ข้อมูลที่ถูกต้องสมบูรณ์ • การปฏิบัติตามขั้นตอนที่กำาหนดไว้ • การปรับปรุงตัวเองอย่างไม่หยุดยั้ง ปฏิ บ ั ต ิ ต ามขั ้ น ตอน รวบรวมข้ อ มู ล วิ เ คราะห์ แ ละปรั บ ปรุ ง Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 36
  • 37. ข้อควรคำานึง • ถึงแม้ว่าในการเรียน PSP จะมีการเขียนโปรแกรม แต่ PSP ไม่ใช่วิชาการเขียนโปรแกรม • PSP เป็นเรื่องของการปรับปรุงกระบวนการ • ถ้าเราไม่ปฏิบัติตามขั้นตอนทีกำาหนดไว้เราก็จะไม่ได้ ่ เรียนรู้ PSP • ไม่ควรใช้โปรแกรมทีต้องทำาในงานในการเรียน PSP ่ เพราะส่วนใหญ่แล้วเรามักจะหลีกเลี่ยงทีจะใช้วิธีการที่ ่ ไม่คุ้นเคยเมือเรากำาลังทำางาน ่ • วิธีทเรียน PSP ทีดีทสุดคือการปฏิบัติตามขั้นตอนที่ ี่ ่ ี่ กำาหนด (Learning-by-doing) Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 37
  • 38. รู้ PSP แล้วเราจะทำาอะไรต่อ • บุคคล – ประยุกต์ PSP กับงานอื่น เช่น ทำารายงาน ฯลฯ • ทีม – กระบวนการพัฒนาซอฟต์แวร์เป็นทีม (Team Software Process หรือ TSP) • องค์กร – แบบจำาลองวุฒิภาวะความสามารถเชิงบูรณาการ (Capability Maturity Model Integration หรือ CMMI) Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 38
  • 39. PSP, TSP และ CMMI CMMI – สร้างความ สามารถขององค์กร TSP – สร้างผลิตภัณฑ์ ที่มีคุณภาพภายใต้งบ ประมาณและเวลา PSP - สร้างทักษะและ วินัยส่วนบุคคล Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 39
  • 40. CMMI การให้การสนับสนุน ผู ้ บ ริ ห าร การดูแลรักษาวินัย การดูแลความเป็นไปของโครงการ การสื่อสาร บริ ห ารที ม การประสานงาน การติดตามโครงการ TSP การจัดการความเสี่ยง การตั้งเป้าหมาย การมอบหมายหน้าที่ สร้ า งที ม กระบวนการของทีม แผนงานที่สมดุล หลักการของกระบวนการ PSP ทั ก ษะของสมาชิ ก ใน การวัดสมรรถนะ ที ม ทักษะการประมาณและการวางแผน Revision 2.3 02 การพัฒนาซอฟต์แวร์ทักษะการจัดการคุณภาพ ส่วนบุคคล 40
  • 41. สรุป • PSP เป็นกระบวนการที่ชวยให้เราทำางานได้ดี ่ ขึ้น • หลังเรียนจบแล้ว เราจะรู้วิธีการประยุกต์ PSP ให้เหมาะกับความต้องการของเรา • เราจะมีความรู้และทักษะเพียงพอที่จะเข้าร่วมทีม TSP Revision 2.3 02 การพัฒนาซอฟต์แวร์ส่วนบุคคล 41

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. Revision 2.2 (2010-11-04) Update contents Revision 2.3 (2012-05-14) Add another PSP learning approaches and update some contents
  2. Revision 2.3 - Update Topics
  3. Revision 2.3 - Update contents
  4. Revision 2.3 - Relocate slide and update contents
  5. Revision 2.3 - Merge slides
  6. Revision 2.3 - Update contents
  7. Revision 2.3 - Update figure
  8. Revision 2.3 - Update contents
  9. Revision 2.3 - Add slide
  10. Revision 2.3 - Update contents
  11. Revision 2.3 - Add slide
  12. Revision 2.3 - Update contents
  13. Revision 2.3 - Add slide
  14. Revision 2.3 - Merge slides
  15. Revision 2.3 - Merge slides
  16. Revision 2.3 - Revise the y-axis, and the lines
  17. Revision 2.3 - Update contents
  18. Revision 2.3 - Update contents
  19. Revision 2.3 - Update contents