เมื่อเราพูดถึงการบริหารจัดการโปรเจคนั้น เรามักจะต้องเจอกับการบริหารจัดการกับ 3 ตัวแปรหลัก คือ ขอบเขต (Scope) ต้นทุน (Cost) และเวลา (Time) ทั้ง 3 ตัวนี้มีผลโดยตรงกับคุณภาพของงาน (Quality) ซึ่งเราจะรู้จักมันในชื่อ Project management triangle


Project management triangle

สามเหลี่ยมของการบริหารจัดการนี้ จะประกอบด้วยตัวแปร 3 ตัวที่กำหนดคุณภาพของโครงการ ได้แก่ ขอบเขต ต้นทุน และเวลา ตามภาพด้านล่าง

Project management triangle

อธิบายง่ายๆ เลย คือ PO/PM จะต้องคอยบริหารจัดการ 3 องค์ประกอบนี้ให้สมดุลอยู่เสมอ เพื่อให้ได้คุณภาพที่ดีที่สุดเท่าที่จะเป็นไปได้ โดยยังคงอยู่ภายในงบประมาณ (Budget) ทำได้ตรงตามเวลา (Deadline) และตรงตามข้อกำหนดของโครงการ (Project specifications)

สิ่งที่ควรระวังมากๆ เลย คือ การบริหารจัดการ 3 ตัวองค์ประกอบนี้ จะมีผลกับการทำงานของทีมโดยตรง อาจทำให้เกิดการทำงานที่ Overload เกินไป จนไม่สามารถส่งมอบงานได้ตามแผน หรืออาจจะส่งงานที่ไม่มีคุณภาพออกไปได้


ตัวอย่าง

เรามักจะพบว่า บ่อยครั้งที่มีการรับหรือพยายามเอางาน (scope) เข้ามาเยอะกว่าความสามารถของทีมที่จะส่งมอบงานตามระยะเวลาได้ (ตามภาพ) เมื่อมันเยอะขนาดนี้ ผลลัพธ์ คือ ทำไม่ทัน

1 ในรูปแบบที่เจอ Scope เยอะกว่า Cost และ Time

และเมื่อทำไม่ทัน ก็จะเกิดการปรับเปลี่ยนบางตัว ซึ่งอาจจะเป็น...

การเพิ่มคน (เพิ่มต้นทุน)

การเพิ่มคนเข้ามาช่วยทำนั้น เป็นการเพิ่ม cost ในโปรเจคนั้น และเมื่อมีการเพิ่มขึ้นของ cost จะต้องเป็นคนจ่ายเงินในส่วนที่เพิ่มเข้ามา ไม่เป็นฝ่ายเรา ก็ฝ่ายของลูกค้า ซึ่งโดยส่วนใหญ่แล้ว เราไม่สามารถเรียกเก็บเงินเพิ่มจากลูกค้าได้

ถ้ามาถึงจุดนี้ ผมมักจะชอบเรียกว่า การ burn กำไรทิ้ง ไปเรื่อยๆ (จนเลยจุดคุ้มทุน)

แปลง่ายๆ คือ เริ่มเข้าเนื้อ กำไรลดลง หรืออาจขาดทุนเลยก็ได้

การเพิ่มเวลา

การเพิ่มเวลานั้น เรามักจะเห็น คือ ขอขยายเวลาเพิ่มจากลูกค้า โดยการขอเลื่อนวันส่งมอบกับลูกค้า (หรือ Stockholder) ซึ่งอาจจะได้หรือไม่ได้ก็ขึ้นอยู่กับลูกค้า ซึ่งถ้าหากขยายเวลา cost ในส่วนของเวลาที่เพิ่ม ใครเป็นคนจ่าย

ถ้าหากขอขยายเวลาเพิ่มจากลูกค้าไม่ได้ ก็มักจะจบที่ เพิ่มเวลาทำงานนั่นเอง ซึ่งมันก็กระทบโดยตรงกับ cost ว่าเราจะเลือกเพิ่มเวลาแบบไหน เช่น เวลาทำงานเท่าเดิม (8 ชั่วโมงต่อวัน) แต่เพิ่มคน หรือ คนเท่าเดิม แต่เพิ่มเวลาทำงาน (OT) หรือ อย่างเลวร้ายที่สุดเลย คือ เพิ่มทั้งคน เพิ่มทั้งเวลาทำงาน

ลดสิ่งที่ต้องส่งมอบ

ถึงแม้ข้อความด้านบนจะบอกว่าเป็นวิธีสุดท้ายที่จะทำได้ แต่บางครั้ง ถ้าหากว่าทำทั้งหมดแล้ว ก็ยังไม่สามารถส่งงานได้ตามกำหนดจริงๆ ลูกค้าอาจจะยอมเลื่อนวันส่ง หรือ ยอมเอาขึ้นบางส่วนไปก่อนก็ได้ ซึ่งพอถึงจุดนี้แล้ว มันมีแต่เสียกับเสีย ทั้งเสียชื่อเสียงบริษัท เสียความเชื่อมั่นจากลูกค้า เสียรายได้และกำไรตามที่ควรจะได้ เสียเงินที่จะต้องจ่ายเพิ่ม เพื่อปิดโปรเจคให้ได้ เป็นต้น

เรามักจะเห็นอาการนี้ในหลายๆ โปรเจค ซึ่ง...

ตัวอย่างที่กล่าวมานี้
เป็นสิ่งที่ไม่ควรทำอย่างยิ่ง

เพราะว่า นอกจากเกิดความเสี่ยงที่ project ไม่เสร็จแล้ว บางครั้งต่อให้เสร็จมันก็จะส่งผลถึงกำไรที่จะได้จาก project นั้นแล้ว ยังส่งผลกับสภาพจิตใจของคนในทีมด้วย ที่อาจจะมีการขอลาออกในระหว่างการพัฒนา หรือหลังจากจบโปรเจคก็ได้ ซึ่งมันอาจจะมีผลกระทบกับโปรเจคถัดไปด้วย

แล้วเราจะบริการจัดการมันยังไง?


การรักษาสมดุล

สิ่งที่สำคัญมากๆ เลย คือ เราต้อง balance ทั้ง 3 องค์ประกอบพอดี ไม่ให้ฝั่งใดฝั่งหนึ่งมากจนเกินไป เพราะมันจะส่งผลกระทบกับโปรเจคได้

Scope เท่ากับ Cost + Time

เช่น

ถ้าหากมีการเพิ่ม scope ของงานเข้าไป เราจะต้องพิจารณาว่าจะเพิ่ม cost หรือ time หรือทั้งสอง เข้าไปด้วย เพื่อรักษาสมดุลนี้

เพิ่ม Scope ต้องเพิ่ม cost หรือ time ด้วย

ถ้าหาก cost หรือ time ลดลง เราจำเป็นต้องลด scope ลงมาด้วยเสมอ

cost หรือ time ลด ต้องปรับลด scope ลงมาด้วย

หลักงานมันก็ง่ายๆ อย่างนี้แหละ ที่เหลือ ขึ้นอยู่กับความสามารถของ Project manager หรือผู้ที่เกี่ยวข้องแล้วว่าจะสามารถบริหารจัดการ project และพูดคุยตกลงกับลูกค้าได้ดีแค่ไหน

และที่สำคัญ ต้องทำตั้งแต่ก่อนเริ่มต้น project แล้ว


สำหรับการทำงานเป็นรอบ

ถ้าเราทำงานแบบ XP, Scrum และอื่นๆ ที่มีการทำงานเป็นรอบๆ (Iteration หรือ Sprint) แนะนำให้โฟกัสที่การปรับ scope อย่างเดียวแทน เพราะในรอบการทำงาน cost กับ time จะถูกกำหนดไว้ตั้งแต่ต้นก่อนเริ่มโครงการแล้ว

สิ่งที่เราจะขยับได้ เลยมีแค่อย่างเดียว คือ scope ของงาน เพื่อให้สามารถจบงานได้ตามรอบของการทำงานได้โดยไม่ต้องหยิบยกงานไปทำต่อในรอบถัดไปนั้นเอง

วิธีนี้เป็นวิธีที่แนะนำให้ใช้ โดยได้หยิบวิธีนี้มาจาก DSDM (Dynamic System Development Method)


Scope, Time, Cost ใน DSDM

DSDM เป็น วิธีการพัฒนา software รูปแบบนึง เหมือนกับ Extreme Programming, Scrum ซึ่งไม่ค่อยได้รับความนิยมเท่าไหร่ แต่ก็มีส่วนที่เรามักนำมาใช้งานได้ และดีด้วย คือ เรื่องของการบริหารจัดการ Scope, Time และ Cost

ใน DSDM ได้บอกไว้ว่า...

เราควร Fixed -> Time กับ Cost
และปล่อยให้ Scope -> dynamic (ปรับเปลี่ยนได้)

ซึ่งหมายความว่า project จะถูกส่งตรงเวลาเสมอ โดยจะมี features ให้มากที่สุดเท่าที่ "เป็นไปได้" เท่านั้น (เท่ากับที่ทีมทำได้)

ไม่ควรไม่พยายามยัด Features เข้าไปให้ได้มากที่สุด โดยไม่สนใจว่าจะเป็นไปได้หรือเปล่า เพราะส่วนใหญ่ก็มักจะจบที่ "ทำไม่ทัน" แล้วตัดออกอยู่ดี ซึ่งมันส่งผลเสียมากกว่า เพราะว่า PO อาจจะไป promise ลูกค้าไว้แล้ว

เราไม่ควรปรับเปลี่ยน time และ cost แล้ว เพราะจำนวนคนในทีม และเวลาในการทำแต่ละรอบถูกกำหนดขึ้นมาแล้ว การจะเพิ่มคนเข้ามาระหว่างรอบก็ไม่ควร เพราะมันจะกระทบกับการทำงานที่ถูกประเมินในรอบนั้นแล้ว เช่นกัน

ดังนั้นองค์ประกอบเดียวที่จะปรับได้ คือ scope ที่จะต้องปรับให้น้อยกว่าหรือพอดีกับ จำนวนคนทำงาน (cost) และ เวลา (time) เพราะเท่าที่เจอมาส่วนใหญ่แล้ว ถ้าหากทีมไม่สามารถส่งงานได้ตามกำหนดจริงๆ ลูกค้าก็มักยอมตัว scope เพื่อให้เอา project นั้นขึ้นให้ทันเวลาอยู่ดี


References