ผมอึดอัดกับวัฒนธรรมของทีมที่ผมทำงานอยู่ตอนนี้มากจนถึงขั้นต้องมาเขียนบล็อกเพื่อเก็บไว้เป็นกรณีศึกษา ย้อนความกลับไปถึงตอนที่ผมเข้าฟัง TPSE Conference 2013 ที่ผมได้ข้ามไปเขียนบล็อกตอนจบเลย วันนี้ขอมาเขียนย้อนหลังอีกบล็อกหล่ะกัน
Agile in Enterprise: the missing pieces
วิทยากรคือคุณ Varokas Panusuwan ได้มาพูดถึงการทำ Agile ในระดับ Enterprise แต่สิ่งที่ผมได้รู้สิ่งใหม่นั่นคือ “ทฤษฎีลิง 5 ตัว” พร้อมกับบรรยายภาพนี้
ผมค้นใน 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 แน่ๆ

