Screen Shot 2558-10-13 at 3.13.36 PM
วันนี้มีโอกาสคุยเรื่องเกี่ยวกับ การทำงานเป็นทีม
เราจะทำการปรับปรุงการทำงานเป็นทีมให้ดีขึ้นอย่างไรดี ?
ต้องทำอะไรบ้าง ?

เริ่มต้นด้วยคำถาม เราวัดการทำงานของทีมอย่างไร ?

จำนวน defect/bug ที่มีแนวโน้มลดลง ?
จำนวนที่พัฒนาสูงขึ้น ?
อัตราส่วนระหว่างงานที่ทำ กับ การแก้ไข ?
ทีมทำงานปรับปรุงความสามารถทาง technical เพิ่มขึ้น ?

นั่นสินะ เราวัดมันอย่างไรล่ะ ?
อะไรที่มันวัดไม่ได้ แล้วจะปรับปรุงกันอย่างไรล่ะ ?

มาทำความเข้าใจกันนิดหน่อย
ส่วนหนึ่งของการปรับปรุงการทำงานของทีม
มาจากวิธีการที่คนในทีมทำงานร่วมกัน
รวมไปถึงความสามารถต่าง ๆ

แต่ยังไม่พอนะ
ยังมาจากสภาพแวดล้อมรอบ ๆ ทีมด้วย
ว่าเอื้อประโยชน์ต่อทีมหรือไม่ ?
ว่าเอื้อต่อการทำงานของทีมหรือไม่ ?
ไม่ใช่มีแต่ข้อจำกัด กฏ และ ข้อห้ามต่าง ๆ

สามารถเขียนอยู่ในรูปแบบสมการได้ดังนี้

Perfomance = function ( people, environment )

ดังนั้น ทีมจะปรับปรุง และ พัฒนาได้ดีขึ้น
ต้องประกอบไปด้วย

  1. วิธีการคิด ความเชื่อ ความสามารถของคนในทีมต้องปรับปรุง
  2. สิ่งแวดล้อมรอบข้างต้องปรับปรุง

ห้ามขาดอย่างใดอย่างหนึ่งเด็ดขาด !!

ดังนั้น อย่าดูผลการปรับปรุงการทำงานของทีมเพียงอย่างเดียวเท่านั้น
ให้ดูสิ่งแวดล้อมรอบข้างด้วยว่าปรับปรุงไหม ?

ยกตัวอย่างเช่น
Development server มันช้ามาก ๆ
ไม่คิดจะปรับปรุงให้มันเร็วขึ้นบ้างหรือ ?

การ access เข้าใช้งานสิ่งที่จำเป็นต่อการพัฒนายากมาก ๆ
หรือ มีขั้นตอนการขอใช้งานนานมาก ๆ

ถ้ายังมีปัญหาเหล่านี้อยู่
ทีมจะพัฒนาไปในทางที่ดีได้อย่างไร ?

มาดูสิ่งที่คุณควรจะมองเรื่องของทีม ประกอบไปด้วย

1. ทีมต้องประกอบไปด้วยส่วนผสมที่ลงตัว (Team composition)

ทีมประกอบไปด้วย
คนที่เหมาะสมต่อการสร้าง product หรือไม่
หรือเป็น Cross-functional team หรือไม่ ?

มีการเปลี่ยนสมาชิกในทีมบ่อยหรือไม่ ?
เป็น fixed team หรือไม่ ?

ลองคิดดูสิว่า
ถ้าสมาชิกในทีมถูกเปลี่ยนเข้าออก บ่อยมาก ๆ !!
ถ้าสมาชิกในทีมขาดคนที่มีความสามารถในการพัฒนา และ ทดสอบ !!
มันไม่น่าจะเป็นทีมนะผมว่า
แล้ว คุณจะพัฒนา ปรับปรุงทีมได้อย่างไร ?

2. รูปแบบการทำงานของทีม (Team workflow)

ทีมต้องมีข้อตกการทำงานร่วมกันเสมอ
เช่น
เราจะทำงานแบบ Push หรือ Pull ?
เราจะทำการพัฒนาแบบ feature-by-feature ?
ถ้าขณะพัฒนาอยู่มีงานแทรกจะต้องจัดการอย่างไร ?

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

3. ทีมมี dependency หรือสิ่งที่เกี่ยวข้องเยอะ หรือ น้อย ?

สิ่งที่สำคัญมาก ๆ คือ
จะต้องลดจำนวน dependency ให้เหลือน้อยที่สุด
มิเช่นนั้น มันจะกลายเป็นปัญหาใหญ่ต่อไป !!

เช่น ระบบที่ทีมพัฒนามีระบบที่ต้องเกี่ยวข้อง 5 ระบบ (เราควบคุมไม่ได้อีก)
นั่นคือ การติดต่อสื่อสารที่ต้องเกิดขึ้น
และการติดต่อสื่อสารมักจะไม่ real time ด้วยสิ
ดังนั้น พยายามลดจำนวน dependecy ลงไปซะ
เช่น เป็นส่วนหนึ่งของสมาชิกในทีมไปเลย

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

4. ทีมต้องเข้าใจอย่างชัดเจน แจ่มแจ้ง ในเรื่อง Product vision และ Team mission เสมอ

ทีมต้องเข้าใจ product ว่าเป็นอย่างไร ?
ทีมต้องเข้าใจ product ว่ามีประโยชน์อย่างไร ?
ทีมต้องเข้าใจ product ว่าแก้ไขปัญหาอะไร ?
ทีมต้องเข้าใจ product ว่าช่วยเหลือผู้ใช้อย่างไร ?

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

ลองไปถามทีมพัฒนาหน่อยสิ
ว่าสิ่งที่ทำแก้ไขปัญหาอะไรของผู้ใช้งาน ?

5. Adaptive planning

การวางแผนการทำงานจาก Product Owner และ Management
ต้องเป็นไปตามความสามารถของทีมนั้น ๆ สิ
อย่าวางแผนแบบ มโน ไปเอง
หรือไปเอาตัวเลขมาจากไหนก็ไม่รู้ หรือ เอามาจากสูตรอะไรก็ไม่รู้

ลองถามตัวเองว่า
ทำการวางแผนตามความสามารถของทีมไหม ?

สุดท้ายแล้ว

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

แต่ถ้าคุณต้องการ High-performance improvement
สิ่งที่คุณต้องทำคือ ปรับปรุงกันทั้งระบบครับ
ไม่ใช่เพียงแค่ทีมเล็ก ๆ เท่านั้น

i_in_team_there_it_is_hidden_in_the_a_hole_tshirt-r0aff1796c915419aaa4c3f9c73794dcf_f0yq2_1024

Reference Website
http://www.estherderby.com/2015/10/assessing-team-improvement.html