Screen Shot 2558-12-02 at 11.19.03 PM
การที่จะพูด หรือ คุยกับเพื่อนร่วมงานในเรื่องของ code
มันเป็นสิ่งที่ยาก และ อาจจะก่อให้เกิด drama ได้
ยิ่งเป็นเรื่อง code ที่มันแย่ ๆ (Bad code) ด้วยแล้ว
ยิ่งมีความเป็นไปได้ว่า อาจถึงขั้นแตกหักได้ !!

ดังนั้น เราลองเปลี่ยนการพูดแบบเบา ๆ กันหน่อยไหม ?

เริ่มด้วยการเข้าไปมีส่วนร่วม หรือ ทำงานด้วยกัน

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

ตัวอย่างเช่น
แทนที่จะไปถามว่า method นี้ทำไมมันแย่จัง code ยาวมาก ๆ
เปลี่ยนมาถามแบบนี้ดีไหม

ช่วยด้วย ๆ เราเจอ Bug จาก code ใน method นี้
ในใจก็คิดว่า method นี้มันยาวมาก ๆ
ไม่รู้ว่ามันทำงานอย่างไรบ้าง ?
ดังนั้น มาช่วยไล่ code และ อธิบายหน่อยสิ
ซึ่งเป็นการ pair programming กันนั่นเอง
เพื่อหาปัญหา และ แก้ไขต่อไป

เมื่อทำงานร่วมกันไปได้สักพัก
แทนที่จะพูด หรือ บอกว่า method นี้มันยาวมาก ๆ
ก็ให้เปลี่ยนเป็นคำถามดีกว่า เช่น
method นี้ดูดีเลยนะ มีการทำงานหลายอย่างเลย
มันต้องใช้เวลาเท่าไรกว่าจะเข้าใจการทำงานของมันนะ ?
เพื่อนร่วมงานอาจจะตอบกลับมาว่า น่าจะ 4-5 ชั่วโมงละมั้ง

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

จำไว้ว่า
อย่าถามคำถามที่จะนำพาไปสู่วิธีการที่คุณคิดไว้แล้วนะ !!
ต้องเก็บอาการกันหน่อยนะ
การเปลี่ยนแปลง และ ปรับปรุงจะเป็นไปอย่างค่อยเป็นค่อยไป
แต่มีขอบเขตของเวลานะ

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

เมื่อความสัมพันธ์ต่าง ๆ เริ่มดีแล้ว ต่อไปให้เริ่มขยายผลออกไป

นั่นคือ เริ่มแนะนำแนวทาง แนวปฏิบัติใหม่ ๆ เข้าไป
เช่นเริ่มให้ขยายผลไปยังคนอื่น ๆ บ้าง
นั่นคือการสลับคู่ pair นั่นเอง
รวมไปถึงเริ่มมี sharing session ของทีม เช่น
การทำงานเป็นกลุ่ม เช่น mop programming
การแบ่งปันเรื่อง refactoring สำหรับการปรับปรุง code

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

แต่ต้องมีความอดทนสูง
ให้กลั้นใจ และ เตรียมตัวให้พร้อมมาก ๆ นะ

สุดท้ายแล้ว

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

ปล.
ผมชอบพูดว่า เขียน code นี้มาทำแมวอะไร ?
มันเจ็บไหมนะ ..