Post-Mortem กับการทำ Software

SUWAN KHP.
odds.team
Published in
3 min readJan 20, 2024

Post-Mortem คืออะไร?

ถ้าแปลตรงๆ “Post-Mortem” ก็แปลได้ว่า การหาสาเหตุองการตาย แต่การตายในที่นี้เรากำลังพูดถึงการที่ software ได้ตายลงไป! หรือมีบางสิ่งบางอย่างที่ทำให้ Software ที่เรากำลังพัฒนานั้นล่ม(Users ไม่สามารถเข้าใช้งาน Software ได้)

แต่ แต่ แต่ การทำ Post-Mortem นั้นเราจะไม่ทำแค่ตอน Software ล่มเท่านั้นนะ แต่เรายังใช้เมื่อ Users ใช้งาน Software แล้วพบ Bugs, Defect, Issue หรืออะไรก็แล้วแต่ที่ไม่ใช่เรื่องดีๆ ใน Software ที่เราพัฒนาขึ้นมา เราก็ใช้เจ้า Post-Mortem นี่แหละในการชำแหละปัญหาต่างๆ ออกมานั้นเองครับโผมมม

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

“Take extra care to make sure the postmortem document isn’t just a useless list of apologies or excuses or finger-pointing-that’s not its purpose.”

ผมมีตัวอย่างมาแชร์สำหรับการทำ Post-Mortem ที่ผมได้เคยผ่านมาให้ได้อ่านกันครับ ไปกันเล๊ย

  1. ก่อนเราจะทำ Post-Mortem ได้นั้นก็แน่นอนว่าต้องมีปัญหาเกิดขึ้นมาก่อน
  2. เราได้ทำการแก้ไขปัญหาที่เกิดขึ้น และทำให้ Software ของเรานั้นกลับมาทำงานได้ปกติ

เมื่อเกิดข้อที่ 1 และ 2 ไปแล้วเราก็จะมาเข้าสู่การทำ Post-Mortem กันนนเลย

🎈 ขั้นตอนที่ 1 สร้าง Template ขึ้นมาโดยกำหนดช่วงเวลาตั้งแต่ Web ล่ม จนถึง เวลาที่เรานั้นได้แก้ไขจน Web สามารถกลับมาใช้งานได้ปกติ

รูป ขั้นตอนที่ 1 สร้าง Template

🎈 ขั้นตอนที่ 2 เขียน timeline เราจะให้สมาชิกแต่ละคนในทีมเขียนลงไปใน Post-it ว่าทำอะไรไปบ้างในช่วงที่ Web ล่ม จนถึงตอนที่สามารถแก้ไขให้ Web กลับมาใช้งานได้ปกติ(เขียนสิ่งที่ตัวเองเจอและทำ และห้ามแอบดูโพยคนอื่นนะ)

รูป ขั้นตอนที่ 2 เขียน timeline

🎈 ขั้นตอนที่ 3 โหวต เมื่อทุกคนเขียนเสร็จ เราจะให้แต่ละคนนั้นอ่าน Post-it action ของคนอื่น แล้วทำการโหวต Post-it action ที่เป็นประโยชน์

เราจะมีสิ่งนี้เพื่อทำการโหวตสิ่งที่เป็นประโยชน์ และไร้ประโยชน์ในแต่ละ Post-it action items
รูป ขั้นตอนที่ 3 โหวต

🎈 ขั้นตอนที่ 4 นำ Post-it action ที่มีคนโหวตเยอะที่สุดมา Discuss กัน เพื่อครั้งต่อไปถ้าเกิดปัญหาขึ้นทุกคนในทีมจะได้เข้าใจตรงกันว่าควรเริ่มแก้ไขปัญหาจากจุดไหนก่อน เพื่อให้ลดระยะเวลาแก้ไขปัญหาให้ได้มากที่สุดเท่าที่จะมากได้(จริงๆ มันก็ไม่ควรเกิดขึ้นอีกนะ)

ขั้นตอนที่ 4 (บางส่วนของที่ทีมได้ Discuss กัน)

จากหนังสือ : Software Engineering at Google: Lessons Learned from Programming Over Time ได้เสนอวิธีการทำ Post-Mortem ที่ดี และควรทำดังนี้

- A brief summary of the event.
(สรุปเหตุการณ์ที่เกิดขึ้น)

- A timeline of the event, from discovery through investigation to resolution.
(เรียงลำดับเหตุการณ์ตั้งแต่พบปัญหา จนถึงตอนที่แก้ไขปัญหาเสร็จสิ้นและ Software ใช้งานได้ปกติ)

- The primary cause of the event.
(หาสาเหตุปัญหาหลักของเหตุการณ์ที่เกิดขึ้น)

- Impact and damage assessment.
(ประเมินผลกระทบ และความเสียหายที่เกิดขึ้น)

- A set of action items (with owners) to fix the problem immediately.
(เลือก action items ที่เขียนใน timeline เพื่อครั้งหน้าจะสามารถแก้ไขปัญหาทันที)

- A set of action items to prevent the event from happening again.
(เลือก action items ที่เขียนใน timeline เพื่อนำมาป้องกันไม่ให้เหตุการณ์เกิดขึ้นอีก)

- Lessons learned
(บทเรียนที่ได้รับ จากเหตุการณ์เกิดขึ้น)

The key to learning from your mistakes is to document your failures by performing a root-cause analysis and writing up a “postmortem,” as it’s called at Google (and many other companies).

--

--