ทฤษฎีลิง 5 ตัว

logo_tpseconf

ผมอึดอัดกับวัฒนธรรมของทีมที่ผมทำงานอยู่ตอนนี้มากจนถึงขั้นต้องมาเขียนบล็อกเพื่อเก็บไว้เป็นกรณีศึกษา ย้อนความกลับไปถึงตอนที่ผมเข้าฟัง TPSE Conference 2013 ที่ผมได้ข้ามไปเขียนบล็อกตอนจบเลย วันนี้ขอมาเขียนย้อนหลังอีกบล็อกหล่ะกัน

Agile in Enterprise: the missing pieces


วิทยากรคือคุณ Varokas Panusuwan ได้มาพูดถึงการทำ Agile ในระดับ Enterprise แต่สิ่งที่ผมได้รู้สิ่งใหม่นั่นคือ “ทฤษฎีลิง 5 ตัว” พร้อมกับบรรยายภาพนี้

ที่มา https://erikbuys.files.wordpress.com/2012/04/monkeys-scapegoating-guilty-by-association.jpg
ที่มา https://erikbuys.files.wordpress.com/2012/04/monkeys-scapegoating-guilty-by-association.jpg

ผมค้นใน Google ก็เจอของทาง ihere.tv (ก่อนจะเปลี่ยนชื่อเป็น spokedark.tv) ทำเป็น vdo ขึ้น youtube ไว้ซึ่งผมแนะนำว่าให้เข้าไปฟังน่าจะดีกว่าผมพิมพ์บรรยาย 🙂

สำหรับคนที่โดนบริษัทบล็อค youtube ผมก็อปข้อความจากเว็บ http://tondecha.blogspot.com/2013/02/blog-post_20.html มาไว้ให้อ่านครับ

Monkey Theory หรือ ทฤษฎีลิง โดยนำลิง 5 ตัวไปอยู่ในกรง ที่ตรงกลาง มีบันไดตั้งไว้ และมีกล้วยแขวนไว้ที่เพดาน เมื่อมีลิงตัวใดตัวหนึ่ง พยายามจะปีนบันได ไปกินกล้วย ผู้ควบคุมจะทำการลงโทษลิงทั้ง 5 ตัว ด้วยการฉีดน้ำไปที่ลิง ทำซ้ำๆ กันจนลิงทั้ง 5 ตัวเกิดพฤติกรรม ” รุมกัด ” ลิงตัวที่จะพยายามไปปีนกินกล้วย ก่อนจะโดนลงโทษฉีดน้ำ จากนั้นนำลิงตัวใหม่มาแทนลิงชุดเก่า 5 ตัว ทีละตัว เมื่อลิงตัวใหม่ ตัวใดตัวหนึ่ง พยายามจะปีนกินกล้วย ก็จะถูกลิง 5 ตัวเก่า รุมกัด จนเป็นนิสัย แม้ว่าจะไม่มีการลงโทษด้วยการฉีดน้ำ และเมื่อนำลิงเก่าออกไปทั้งหมดจนเหลือแต่ลิงตัวใหม่ทั้งหมด ก็ปรากฏว่า ยังพบพฤติกรรมลิงในกรงรุมกัด ลิงตัวใดตัวหนึ่งที่ปีนกินกล้วย ทั้งๆ ที่ลิงอยู่ในกรงปัจจุบัน ไม่มีลิงตัวใดที่เคยถูกทำโทษด้วยการฉีดน้ำ ดังนั้น สามารถสรุปได้ว่า “วัฒนธรรมองค์การที่เคยปฏิบัติต่อๆ กันมา ใช่ว่าจะถูกต้องหรือเหมาะสมกับภาวะปัจจุบันเสมอไป และบุคลากรในองค์กรสามารถที่จะช่วยกันเปลี่ยนแปลงระบบนี้ได้”

สิ่งที่ผมกำลังเผชิญ


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

ผมเลยหาทางที่ทำให้โปรแกรมเร็วขึ้นโดยแก้โค้ดน้อยที่สุดหรือไม่ต้องแก้เลย อย่างแรกคือให้เขาเพิ่ม cpu, memory ของ server ที่เป็น vmware ซึ่งก็ได้รับการตอบรับจากลูกค้าเป็นอย่างดี แต่ก็แก้แค่เรื่อง memory เต็ม ยังไม่ได้แก้เรื่องโปรแกรมช้า จนสุดท้ายผมไปเจอว่า มี config บางอย่างที่สามารถทำให้โปรแกรมสามารถทำงานเร็วขึ้นได้ถึง 60% ตอนนั้นผมดีใจมากเพราะมันไม่ต้องแก้โปรแกรมเลย ผมจึงทดสอบสมมุติฐานนี้แล้วทำเป็นรายงานเสนอหัวหน้าไป แต่คำตอบที่ได้รับกลับมาคือ

คุณจะแน่ใจได้อย่างไรว่าแก้แล้วโปรแกรมไม่พัง แล้วยังทำงานได้ถูกต้อง?

ผมก็พยายาม defend ว่ามันแค่ config ที่ไม่ได้เกี่ยวข้องกับ algorithm การทำงานของโปรแกรมเลยนะ เป็นแค่การ tuning ระบบที่มันจะทำให้โปรแกรมมันเร็วขึ้นมากกว่าเดิม ซึ่งถ้ามองมุมลูกค้าผมว่าเป็นการเพิ่ม business value ให้กับเขาได้เยอะเลยนะ แต่สุดท้ายเรื่องนี้ก็ตกไป ไม่ได้รับการแก้ไข ปล่อยให้โปรแกรมทำงานแบบตามมีตามเกิดต่อไป

แล้วเกี่ยวอะไรกับทฤษฎีลิง 5 ตัว


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

อาจจะเป็นเพราะว่า เคยมีการเปลี่ยนแปลงในโปรแกรมแล้วทำให้เขาเจอเรื่องร้ายๆ มาจนทำให้เขากลัวว่า เมื่อมีคนรุ่นหลังทำลักษณะคล้ายๆ กันนี้จะทำให้เขาเจอเรื่องร้ายๆ แบบนั้นอีก เขาจึงไม่ให้ทำ

ก็มีเพื่อนร่วมงานที่อยู่คนละโปรเจคบอกว่า “จะไปแคร์ทำไม ไม่ต้องแก้โปรแกรมก็ดีแล้วนิ ไม่ลำบากวุ่นวาย” ผมนึกในใจ ก็เขาไม่ได้มารับรู้ชะตากรรมเดียวกันกับผมเขาก็เลยพูดได้ ลองมาเป็นผมดูมั๊ยหล่ะว่า การที่ต้องนั่งเฝ้าโปรแกรมแบบอดหลับอดนอนข้ามคืนเพื่อลุ้นไม่ให้มันตายก็เหนื่อยนะ เวลามีปัญหาเกิดขึ้นก็มักจะเป็นผมที่ได้ไปนอนเฝ้าแล้วไม่มีคนอื่นเปลี่ยนเวรด้วย ทั้งๆ ที่ทุกคนในทีมก็มีหน้าที่ที่ต้องดูแลโปรเจคนี้แต่ทำไมไม่มีคนช่วยกันเฝ้าหล่ะ? คือแทนที่จะมานั่งแก้ปัญหาที่ปลายเหตุ ทำไมไม่แก้ที่ต้นเหตุเลยทีเดียว?

พอดีเมื่อคืนผมได้ดูหนังเรื่อง The Avengers ตอนท้ายเรื่องช่วงที่ตัวละคร “นาตาชา โรมานอฟฟ์” พูดกับ “กัปตันอเมริกา” ตอนที่สู้จนเหนื่อยล้าว่า

Captain, none of this is gonna mean a damn thing if we don’t close that portal.

ดีนะที่ “กัปตันอเมริกา” ถามว่าแล้วคุณจะทำยังไง แถมยังสนับสนุนโดยการส่ง “นาตาชา โรมานอฟฟ์” ขึ้นไปยานศัตรู ไม่อย่างนั้นคงไม่ได้ปิด portal แน่ๆ

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s