สิ่งที่ “โปรแกรมเมอร์” ต้องการ ?

โพสต์นี้เป็นการตอบกลับบล็อกของคุณ khachoji 5 สิ่งที่เจ้านายควรเข้าใจ “โปรแกรมเมอร์” ให้มากกว่านี้ คือ ผมมีความเห็นใกล้เคียงกับคุณเอ็มระดับหนึ่งนะ ก็เลยว่าจะเขียนเรื่องนี้บ้าง (ว่ากันง่าย ๆ คือก็ลอกการบ้านนั่นแหละ)

ก่อนอื่นจะขอเริ่มจากเรื่องที่ไม่เกี่ยวข้องกันก่อน ส่วนตัวผมจะแบ่งโปรแกรมเมอร์ออกเป็น 2 กลุ่ม

  1. พวก Shinso หรือพวกเลือดแท้ พวกนี้เป็นโปรแกรมเมอร์กันถึงระดับวิญญาณ เป็นพวกที่มีชีวิตอยู่เพื่อการสร้างสรรค์ผลงาน มีแรงบันดาลใจเป็นแรงขับเคลื่อน
  2. พวก Shito หรือพวกสาวก พวกนี้จริง ๆ แล้วไม่ได้อยากเป็นโปรแกรมเมอร์กันหรอก แต่ว่าถูกความสำเร็จของพวกเลือดแท้ดึงดูดเข้ามา มีผลประโยชน์เป็นแรงขับเคลื่อน

เอ่อ … ชักจะเริ่มเลอะเทอะไปใหญ่ (ศัพท์พวกนี้มาจากเกม Tsukihime ครับ) คือผมจะบอกว่าจริง ๆ แล้วคนที่เป็นโปรแกรมเมอร์เองก็มักจะแบ่งเป็นคนที่ชอบการสร้างสรรค์ผลงาน ทำเพราะว่ามันสนุก ทำเพราะว่าใจรัก กับคนที่ไม่ใช่ ซึ่งสิ่งที่ผมจะพูดถึงต่อไปเนี่ยคิดว่ามันจะเกี่ยวกับคนกลุ่มแรกมากกว่ากลุ่มที่สอง

ส่วนผมเป็นพวกกลุ่มไหนเหรอ ? … เอ่อ ไม่รู้สิ ผมบอกได้แค่ว่าถ้าผมไม่เขียนโปรแกรม ก็นึกไม่ออกเหมือนกันว่าจะทำอะไร เพราะว่าเขียนอยู่ทุกวัน 555

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

พื้นที่

คำว่า “พื้นที่” ที่ผมพูดถึง ไม่ใช่แค่พื้นที่ในเชิงรูปธรรม แต่หมายรวมทั้งพื้นที่ในเชิงนามธรรมด้วย

งานเขียนโปรแกรมเป็นงานศิลปะครับ คือ ตัวโปรแกรม หรือตัวคอมพิวเตอร์ มันเป็นผลงานวิศวกรรมก็จริงนะ แต่ว่าการเขียนโค๊ดเนี่ยมันจะมีการตัดสินใจเข้ามาเกี่ยวข้องมากมาย (เพราะเรากำลังสั่งให้คอมพิวเตอร์ทำงานอยู่น่ะครับ) และการตัดสินใจเนี่ยมันเป็นศิลปะที่ยากที่สุดแขนงนึงเลยนะ ดังนั้นพวกเราโปรแกรมเมอร์ในระดับหนึ่งก็เป็นศิลปินอยู่ และการทำงานศิลปะนั้นต้องใช้พื้นที่ค่อนข้างกว้างกว่างานหลาย ๆ ประเภท

ดังนั้น ในแง่ของพื้นที่ สิ่งแรกที่โปรแกรมเมอร์ต้องการคือ “อำนาจการตัดสินใจ” ครับ เพราะว่าเราต้องตัดสินใจในเรื่องมากมาย (แม้กระทั่งการตั้งชื่อลูก!) ดังนั้นถ้าเกิดว่ามีเรื่องใดเรื่องหนึ่งที่ต้องพึ่งพาอาศัยคนอื่นในการตัดสินใจ เช่น การเปลี่ยนพฤติกรรมของโปรแกรม ถ้าเกิดว่าเราต้องรอคนอื่นงานมันจะล้าช้ามาก และนั่นคือสิ่งสุดท้ายที่คุณต้องการใช่ไหมครับ

สิ่งที่สองก็คือ “สมาธิ” อย่างที่บอกว่าการเขียนโปรแกรมมีการตัดสินใจเข้ามาเกี่ยวข้องเยอะมาก โปรแกรมเมอร์จะต้องคิด จะต้องหาข้อมูลสนับสนุน จะต้องหาข้อมูลประกอบการตัดสินใจ และทั้งหมดเป็นงานที่ต้องใช้สมาธิมหาศาล ฉะนั้นถ้าเกิดว่าคุณทำให้โปรแกรมเมอร์สติหลุดไประหว่างที่กำลังอยู่ในห้วงความคิดนิดเดียว ความคิดตรงนั้นก็จะหลุดหายไปและจะต้องเริ่มคิดใหม่ตั้งแต่ต้น (ซึ่งบ้างครั้งนั่นหมายถึง 15-30 นาทีเลยทีเดียว) แน่นอนว่ามีโปรแกรมเมอร์ที่มีสมาธิแข็ง ๆ จะสามารถสลับความคิดไปมา หรือสามารถกู้คืนความคิดได้อย่างรวดเร็ว แต่โปรแกรมเมอร์ส่วนใหญ่ที่ผมเห็นทำไม่ค่อยได้นะ

สิ่งที่สามคือ “เวลา” ผมเป็นพวกจะต้องหยุดพักทุก ๆ 1-2 ชั่วโมง คือถ้าทำงานต่อเนื่องงานจะออกมาแย่มาก เพราะมันเป็นงานที่ใช้พลังเยอะมาก ผมจะต้องออกไปเดินพักบ้างทุก ๆ 1-2 ชั่วโมง (ถ้าเป็นงานบริษัทผมจะชดเชยโดยการทำงานให้ยาวขึ้นโดยไม่เก็บ OT น่ะนะ) ส่วนอีกหลาย ๆ คนที่ผมเห็นก็จะมีการหยุดพักด้วยวิธีอื่น ๆ เช่น โทรศัพท์คุยกับแฟนบ้าง กดไอแพดเล่นบ้าง หรือแม้กระทั่งเล่นเกมในเวลางาน

ความเข้าใจ

คนมักจะคิดว่าโปรแกรมเมอร์ส่วนใหญ่เป็นคนเข้าใจยาก เพราะเราใช้ศัพท์เฉพาะทางเยอะ และพวกเราส่วนใหญ่ใช้ภาษาอังกฤษได้ดีถึงดีโคตร ๆ (ประชดบ้างนิดหน่อย) ดังนั้นหลาย ๆ ครั้งเราจะพูดไทยคำอังกฤษคำจนคนมักจะคิดว่าเรากระแดะ

คุณอาจจะเจอโปรแกรมเมอร์ที่ติ๊สมาก ๆ จนถึงคนที่แบบทำตัวเหมือนเดิมทุกวัน ๆ จนเหมือนกับหุ่นยนต์

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

ถ้าเกิดคุณดันดวงไม่ดีมีแฟนเป็นโปรแกรมเมอร์ ก็คงต้องทำความเข้าใจกันให้ดี ลองศึกษานิสัยใจคอและทำความเข้าใจกับสิ่งที่เขาเป็น ถ้าเกิดว่ารับไม่ได้คุณอาจจะต้องถอนตัวออกไป แต่ผมพบว่าโปรแกรมเมอร์ส่วนใหญ่นิสัยน่ารักนะ (แต่การแสดงออกอาจจะสอบตกไปสองสามคะแนน)

แรงสนับสนุน

ความยากของงานเขียนโปรแกรมจริง ๆ อยู่ที่การติดตามพัฒนาการของวงการนี้ครับ คือ ในหลาย ๆ วงการการพัฒนาเนี่ยอาจจะเป็นรายปี อาจจะแบบใช้เวลา 1 ปีในการออกแบบเครื่องมือ 1 ปีผลิตเครื่องมือ ทดลองใช้กับสถานการณ์จริง 5 ปี ก่อนจะเริ่มขาย ตอนขายกว่าคนจะซื้อไปใช้ก็อีก 2-3 ปี งานด้านไอทีเนี่ยทุกอย่างรวมกันใช้เวลาไม่ถึงปีถึง 2-3 ปีเท่านั้นเอง ดังนั้นในแต่ละวันจะมีอะไรใหม่ๆ ออกมาเยอะมาก ยิ่งถ้าเป็นเทคโนโลยีที่เป็นเทรนด์ใหม่ ๆ นี่จะวิ่งเร็วแบบตามไม่ทันกันเลย

โปรแกรมเมอร์แต่ละคนจึงต้องเรียนรู้และพัฒนาตัวเองแบบวันต่อวัน คุณจะเห็นโปรแกรมเมอร์ที่หลังเลิกงานก็เอาแต่เขียนโปรแกรมแทบเป็นแทบตาย หรือไม่ก็นั่งอ่านหนังสือตลอดเวลาว่างที่มี เพราะมันมีสิ่งที่ต้องเรียนรู้มากมายในแต่ละวัน

ดังนั้นถ้ามีแรงสนับสนุนให้เขาสามารถพัฒนาตัวเองได้ง่ายและดีขึ้นละก็ โปรแกรมเมอร์รักตายเลย 55

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

คำว่ามากน่ะแค่ไหน ? ผมเคยทำงานที่ใช้เวลา 2 ชม.ให้เสร็จภายใน 30 วินาทีมาแล้ว 😉 (ก็คือการเขียนสคริปท์ขึ้นมาแทนงานทำมือนั่นล่ะครับ ส่วนที่ช้าที่สุดของการทำงานกับโปรแกรมคือส่วนของมนุษย์ทั้งนั้นแหละ)

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

ลองเปิดโอกาสให้เขาได้เสนอพัฒนาการที่เกิดจากการสั่งสมทักษะมาอย่างต่อเนื่อง แล้วมันจะเป็นผลประโยชน์ต่อองค์กรของคุณมากมายทีเดียวล่ะ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.