มาต่อจากบทความที่แล้วครับ มาอธิบายถึงการมองโครงการอย่างคร่าวๆ ยังไม่ลงลึกถึงรายละเอียดของขั้นตอนต่างๆ lecture note เหมือนเดิม
Project Management Definitions
- project (โครงการ) คือสิ่งที่เกิดขึ้นชั่วคราว มีกำหนดวันเริ่มต้นและวันสิ้นสุดที่แน่นอน (ad-hoc) แต่การ organization จะเกิดและไม่มีวันจบ โครงการจะต้องมี วัตถุประสงค์ (objective) ซึ่งต้องวัดได้ ถ้าวัดไม่ได้นั่นคือโครงการที่ผิดพลาด
- subproject เป็นโครงการย่อยๆ ที่อยู่ในโครงการหลักอีกที
- program คือหลายโครงการที่มีความสัมพันธ์ต่อกัน ที่ทำงานร่วมกัน เช่น ERP ที่มีหลายโครงการอยู่ภายใน และสัมพันธ์ซึ่งกันและกันอยู่
- project management (การบริหารโครงการ) คือการนำความรู้ เครื่องมือ เทคโนโลยีต่างๆ นำมาใช้เพื่อให้โครงการสำเร็จ ตามความต้องการ (requirement)
- Portfolio management เป็นการรวบรวมข้อมูลต่างๆ ของโครงการ เพื่อเก็บไว้ใช้ในโครงการถัดไป การเก็บข้อมูลต่างๆเอาไว้ยังมีประโยชน์ในกาทำมาตรฐาน CMMI ที่จะต้องมีข้อมูลจาก project เก่าๆ ที่เราเก็บข้อมูลไว้ เช่นจะสร้าง program แบบนี้ต้อใช้ module อะไรเทคนิคไหน ซึ่งถ้าเราใช้ module ที่เคยสร้างไว้แล้วยังช่วยให้ลดเวลาในการพัฒนา (development) และทดสอบ (Testing) หรือเราสามารถพัฒนาเทคนิคให้ดีขึ้นกว่าเดิมได้ เป็นเหมือนองค์ความรู้ขององค์กร
- Portfolio เป็นกลุ่มของโครงการหรือโปรแกรมและงานอื่นๆ ที่เกี่ยวข้องกับการบริหารโครงการ เพื่อสนับสนุนประสิทธิภาพการบริหารจัดการ ตามเป้าหมายของธุรกิจนั้นๆ
- Progressive Elaboration เป็นการพัฒนา software แบบวนซ้ำ (loop) ไปเรื่อยๆ เพื่อให้ software ที่ได้ประสิทธิ์ภาพ ความคืบหน้าและความถูกต้องดีขึ้น
- Project Management Office (PMO) เป็นการบอกว่าคนที่เกี่ยวข้องกับโครงการนั้นใครทำหน้าที่อะไรบ้างSponsor คือคนที่สนับสนุนด้านการต่างๆ เช่นการเงินให้กับโครงการของเรา ซึ่งก็คือลูกค้าเรานั้นเอง
- Stakeholder คือผู้มีส่วนได้ส่วนเสียต่อโครงการ ซึ่งที่มีผลต่อความสำเร็จหรือล้มเหลวของโครงการ
- Estimate คือประมาณก่อนจะเริ่มทำยิ่งมีโครงการที่เคยทำมากเท่าไหร่ (Portfolio management) ก็จะประมาณได้ว่าโครงการใหม่จะพัฒนาอย่างไร
ช่วงชีวิตของการบริหารโครงการ (project life cycle) กับการวรจรชิวิตการพัฒนาซอร์ฟแวร์ (software development life cycle) คือเรื่องเดียวกันแต่คนละมุมมอง!! project management เป็นเรื่องของการบริหารและควบคุมการพัฒนา software อีกที
การบริหารโครงการจำเป็นต้องสนใจว่ามี process อะไรบ้างและ process เหล่านั้นเกี่ยวข้องกันอย่างไร
Project Life Cycle Model
วงรอบชีวิตของโครงการ ซึ่งแบ่งออกได้ 4 ขั้นตอนแต่ละขั้นตอนจะมีกิจกรรม (Activity) , ทรัพยากร (Resource) {เงิน , คน, เวลา, สถานที่} มากน้อยแตกต่างกันดังรูป
Typical Activities by Phase
กิจกรรมที่ต้องทำในแต่ละขั้นตอนของโครงการ (คร่าวๆนะ)
Concept
- รวบรวมข้อมูลทุกอย่างที่เกี่ยวข้องกับโครงการ
- กำหนดความต้องการของโครงการนี้
- กำหนด:
- เป้าหมาย, วัตถุประสงค์ ซึ่งต้องวัดผลได้
- เงิน ดูว่ามีเงินพอไหมที่จะทำโครงการนี้
- คนที่เกี่ยวข้องกับโครงการนี้ เช่น programmer, user, project manager
- ความเสี่ยงของโครงการ ซึ่งต้องบอกได้ว่าอยู่ในระดับไหนและอย่างไร ต้องมีการวางแผนสำรองแต่ต้องคุ้มด้วย เพราะว่าแผนสำรองที่เตรียมนั้นมีค่าใช้จ่ายที่ต้องใช้อยู่เช่นกัน การวัดว่าแผนสำรองนั้นคุ้มหรือไม่ให้ดูว่าแผนสำรองนั้นลดความเสี่ยงลงได้ถึงจุดไหน
- กลยุทธ์
- วางทีมไว้คร่าวๆ
- ประเมินทรัพยากร (เงิน , คน, เวลา, สถานที่) ไว้คร่าวๆ
- วางแผนสำรอง ซึ่งต้องมีเสมอ
- เตรียมนำเสนอ และรออนุมัติเพื่อไปขั้นตอนถัดไป
- กำหนดคนที่สำคัญต่อโครงการ ใครสำคัญต่อโครงการต้องบอกให้รู้ตัวเสมอ เพื่อให้รู้ตัวอยู่เสมอว่าตัวเองคือความเสี่ยงเป็นปัจจัยต่อความสำเร็จของโครงการ และเพื่อให้เรารู้ว่าความเสี่ยงคืออะไรเช่น programmer คนไหนทำงานไม่ได้ตามที่สั่งงานให้ต้องรีบบอก อย่าบอกวันสุดท้าย
- เริ่มเรียนรู้ระบบ
- กำหนด baseline:
- จุดสิ้นสุดของ product
- มาตราฐาน
- ทรัยากร (เงิน , คน, เวลา, สถานที่)
- กิจกรรมที่จะเกิดขึ้น เริ่มลงลึกถึงรายละเอียด
- กำหนด:
- วิเคราะห์การเงินเช่นเราต้องรู้ว่าเมื่อทำโครงการนี้เสร็จคุ้มไหมได้เงินเท่าไหร่ ถ้าให้ดีน่าจะบอกได้ว่าจุดคุ้มทุนอยู่ที่ตรงไหน
- ในโครงการจะต้องมี work / task / activity อะไรบ้าง (งานที่ต้องทำทั้งหมด)
- นโยบาย
- ต้องทำให้ทุกคนในทีม มองไปในทิศทางเดียวกัน
- ต้องบอกได้ว่าเสร็จเมื่อไหร่ และอย่างไรถึงเรียกว่าเสร็จ
- ลงรายละเอียดการประชุม, ประชุมครั้งที่เท่าไหร่, หัวข้อที่ประชุม ฯลฯ
- ต้องมีการประเมินเวลา รู้ว่าตอนนี้โครงการอยู่ ณ จุดไหน, delay ได้แค่ไหน, จำเป็นหรือไม่ที่จะต้อง delay (บางครั้งอาจประเมินเวลามากเกินไป และคนที่เสียหายคือลูกค้าเพราะงานทำเสร็จเร็วกว่าเวลาที่กำหนด)
- มีการลงรายละเอียดด้าน technology ที่จะใช้
- ลงมือทำ
- สั่งการ / ดูแล / คาดการณ์ / ควบคุม:
- ขอบเขตทั้งหมด (ห้ามเกิน ห้ามขาด)
- คุณภาพ
- เวลา
- งบประมาณ
- แก้ปัญหาที่เกิดขึ้นได้
- Review software ที่พัฒนาขึ้น
- ส่งมอบระบบให้แก่ลูกค้า
- ประเมินโครงการ
- ส่งมอบเอกสาร
- คืนทรัพยากร (คน) ที่ดึงมาใช้ กลับไป
- เตรียมรับงานโครงการใหม่
Project Management Processes
โครงการจริงๆ แล้วคือการรวมหลายๆ process การจะให้ได้ process มาเราจะต้องรู้ว่าจะทำอะไร เพื่อให้ได้ output อะไรออกมาแล้วให้ย้อนนึกกลับไปเรื่อยๆ ก็จะได้กระบรวนการพัฒนาทั้งระบบ เช่นสเต็กจะได้ก็ต่อเมื่อ มีเนื้อ, ซอส จะมีเนื้อได้ก็ต้อง… คือการคิดย้อนกลับไปเรื่อยๆ
การพัฒนา software จะเกี่ยวข้องกับ 3 อย่างดังนี้
- คน เป็นสิ่งที่ควบคุมไม่ได้ (การดึงตัว ลาออก อุบัติเหตุ ความขัดแย้งภายในต่างๆ)
- เทคโนโลยี เป็นสิ่งที่ควบคุมไม่ได้ เพราะมีสิ่งใหม่ๆ เกิดขึ้นตลอดเวลา ไม่มีไครู้ว่าจะมี technology อะไรใหม่ๆ ออกมาหรือไม่ทำได้แค่การคาดเดาเหตุการณ์
- Process เป็นสิ่งที่ควบคุมได้ เป็นตัวกำหนดกระบรวนการพัฒนา software ต้องมีการเก็บ record ไว้ตลอดเลาเพื่อว่าเมื่อมีคนเข้ามาช่วยพัฒนา software ต่อจากคนเก่าจะได้ทำต่อได้เลย ใน CMMI มองที่ process เป็นหลักด้วยความคิดที่ว่าถ้า process ดี software ย่อมดีด้วย
เรื่องของการบริหารโครงการคือเรื่องของคน ไม่มีใครบอกได้ว่าเราจะใช้คนให้เหมาะกับงานได้อย่างไร ขึ้นอยู่กับเราอ่านคนออกแบบไหน ก็มีหลายทฤษฏีพูดถึงเรื่องของการใช้คนไว้ว่า คนทุกคนล้วนมีความต้องการ การจะใช้คนเราจำต้องตอบสนองความต้องการของเค้าให้ได้ แต่เมื่อคนได้ถึงความต้องการ ณ จุดหนึ่งก็ต้องมีความต้องการของตัวเองสูงขึ้น เช่นต้องการการยอมรับ ต้องการความเข้าใจ ผู้บริหารต้องมองความต้องการของแต่ละคน และให้ในสิ่งที่เค้าต้องการในจุดที่เหมาะสม เช่นตำแหน่งหน้าที่ ความมีเกียรติ และสุดท้ายคือให้ทำในสิ่งที่เค้าต้องการอยากจะทำ หรือให้เค้าเข้ามาเป็นส่วนหนึ่งของบริษัท เช่นแกรมมี่
อีกทฤษฏีนึงบอกถึงความต้องการของคน มี 3 อย่าง
- achieve คือทำงานใฝ่สัมฤทธิ ทำงานให้มีผลงาน ทำงานแล้วมีคนยกย่องงานที่ทำ
- power คือทำงานแล้วอยากได้อำนาจ
- affection คือทำงานแล้วอยากได้ความรัก ความเข้าใจ จากเพื่อนร่วมงาน
Plan – Do – Check – Act Cycle
วางแผน – ทำ – ตรวจสอบ – แก้สิ่งที่ผิดแล้วเริ่มวางแผนใหม่เป็นวนซ้ำไปเรื่อยๆ เพื่อให้ปรับปรุงแผนงานไปเรื่อยๆ เพื่อความถูกต้องที่มากขึ้น (ใช้เวลาสั้นลง)
Project Management Process Groups
จริงๆ แล้วการบริหารจัดการ process ของโครงการก็เหมือนๆ กันที่ต้องเริ่มต้นก่อนว่าจะให้ได้ output อะไรออกมา จากนั้นวางแผนก่อนที่ ลงมือทำ ตรงนี้จะวนซ้ำไปเรื่อยๆ เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดออกมา
Process Groups Interact in a Project
แต่ละช่วงของ process ก็จะมีงาน และเวลาที่แตกต่างกัน ตามรูป
Key Competencies of a Successful Project Manager
โครงการจะประสบความสำเร็จได้นั้น PM ควรจะมีคุณสมบัติดังนี้
- มองการณ์ไกล
- เผชิญหน้ากับอุปสรรค ซึ่งอาจเป็นสิ่งที่ไม่
- เคยเกิดขึ้นมาก่อน หรือเรื่องที่ไม่คาดคิดมาก่อน
- ระบุเป้าหมายให้ชัดเจน!!
- คิดสิ่งใหม่ๆ และสร้างสรรค์
- ต้องแก้ปัญหาที่เจอได้
- คิดอย่างเป็นระบบ และวางแผนจัดการทีมได้
- พัฒนาทีมได้
- ทำให้เป็นไปตามเป้าหมายที่วางไว้เพื่อให้ไม่หลง
- มีมาตราฐาน
- รู้ว่าใครทำอะไร แจกจ่ายงานได้ถูกคนถูกงาน
- เข้าใจสมาชิกในทีมมีความสามารถแค่ไหน
- การเพิ่มคนเข้าไปใน project ที่ช้าไม่ทำให้เร็วขึ้น (เพราะต้องเสียเวลา train งานให้พนักงานใหม่อีก)
- เงินไม่ได้แก้ปัญหาทุกอย่าง
- เข้าใจกระบรวนการของ project รู้ว่าปัญหาอยู่ที่ process ไหน
Web application project management ลองเล่นกันดูนะเผื่อชอบ ใช้แล้วเป็นไงมาบอกกันบ้างนะ
No comments:
Post a Comment