ว่าด้วยเรื่องวัฒนธรรมองค์กร — Show me your code

Photo by charlesdeluvio on Unsplash

หนึ่งใน core value ของทีมที่ผมทำงานอยู่ด้วย คือ show me your code เป็นความเชื่ออย่างนึงในการทำงาน ที่พูดถึงสถานการณ์ที่ต้องพูดคุย แลกเปลี่ยนไอเดีย หาทางออกร่วมกัน เช่น System design / Technical discussion

ความเชื่อและแนวทางทำงานที่เรายึดถือนี้ได้ถูก drive มาจากพี่ Ball Weera Kasetsin

ในทุกวันการทำงานไอเดียแต่ละคนพรั่งพรูออกมา มีบ้างที่ต้องเจอสถานการณ์ conflict หรือ ระหว่างลองอ่านโค๊ดด้วยกัน เราเจอจุดที่เป็นบั๊ก หรือ ทำให้ performace drop ลง ไม่ว่าจะเป็น time-complexity หรือ space-complexity เป็นเรื่องปกติ

เพื่อให้เห็นภาพกฏของการ show me your code เรามี work rules ร่วมกัน เมื่อเจอสถานการณ์ ดังต่อไปนี้

  1. เห็น code smell คิดว่าจุดนี้น่าจะ refactoring ได้
  2. เจอบั๊ก
  3. เจอ code ที่ performance สามารถปรับให้ดีขึ้นได้
  4. เจอ Technical Debt, System Architecture Debt, etc.
  5. เจอโค๊ดที่ยังไม่ดีพอว่างั้นเถอะ
  6. Document ไม่มี หรือ ไม่อัพเดต
  7. ออกแบบ Shard Key, Design index ไม่ดีพอ เป็นต้น

เราจะไม่ Blame กัน เราไม่มองว่านี่ไม่ใช่งานของฉัน ฉันไม่ได้ทำมันมาแต่แรก แต่เรามองสิ่งๆนั้นในฐานะ ทีม และ ความเป็นเจ้าของ

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

สิ่งที่เรายึดมั่นมาโดยตลอดนั่นคือ การมาพร้อมกับตัวเลือก ทางออกของปัญหา และแสดงวิธีการแก้ไขปัญหาให้ทีมเห็น แม้จะไม่ใช่ solid solution แต่แค่ initiate idea ก็โอเคแล้วสำหรับการเริ่มต้น

ช่วงแรกการปรับตัวกับวัฒนธรรมองค์กรแบบนี้ สิ่งที่ผมได้เรียนรู้ และ บอกทีมเสมอ ผมขอโน๊ตไว้ข้างล่างนี้

Require problem statements instead of complaints

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

Physical Safe Environment

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

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

ต่อให้ show me your code แล้ว ก็ใช่ว่าจะแก้ไขปัญหาได้เสมอไป ครั้งแรกอาจจะผิดพลาด ครั้งต่อไปเราไม่พลาดมันอีกแน่ๆ

สิ่งนี้ ทำให้ทีมโตขึ้น

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

--

--

Teerapong Singthong 👨🏻‍💻
LINE Developers Thailand

Engineering Manager, ex-Solution Engineering Lead at LINE | Tech | Team Building | System Design | Architecture | SWE | Large Scaling System