วันพฤหัสบดีที่ ๑๔ มิถุนายน พ.ศ. ๒๕๕๐

กำแพงระหว่าง Project Managers กับ Developers

ผมได้เห็นการ์ตูนนี้จากข่าวที่โฟสโดยคุณดาวแดงใน Thaisharp.net แล้วเห็นว่ามีประโยชน์มากจึงแปลเป็นภาษาไทย ให้คนไทยที่ไม่อยากอ่านภาษาอังกฤษได้อ่านกัน ผิดบ้างถูกบ้างนะครับ เพราะแปลแบบความเข้าใจส่วนตัวและใช้สำนวนตัวเอง หากผิดพลาดขออภัยไว้ ณ ที่นี้

ผู้จัดการ(หัวหน้าโครงการ) กับโปรแกรมเมอร์(นักพัฒนาซอฟต์แวร์) แน่ใจหรือว่าอยู่ทีมเดียวกัน ???

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

ทำไมจึงเป็นเช่นนั้น?

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

เหตุการณ์ดังกล่าวจะทำให้โครงการทำท่าจะล้มเหลว การสื่อสารที่เหมือนมีกำแพงจะต้องหยุดลง

ดูจากรูปการ์ตูนในภาพแรกและภาพที่สองจะเห็นว่า การที่โปรแกรมเมอร์จะบอกความจริงของสถานะโครงการนั้น เพราะเค้าเชื่อว่าคนที่เล่าให้ฟังจะช่วยเหลือเค้าได้ แต่ในภาพที่สาม โปรแกรมเมอร์กลับพูดง่ายๆ ว่า 'Fine' (จะใช้คำว่า "ก็เรียบร้อยดี")

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

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

นี่เป็นเหตุผลที่ทำให้ผู้เขียนชอบกระบวนการพัฒนาแบบไม่เป็นทางการ (Agile Software Development) และชอบบทบาทของตำแหน่ง ScrumMaster (ScrumMaster คือ ผู้ที่แก้ไขหรือปกป้องปัญหาจากสิ่งภายนอก ไม่ให้เกิดขึ้นกับทีมของตน คล้าย Project Manager แต่แตกต่างที่ ScrumMaster จะคอยเป็นผู้สนับสนุนให้คนในทีมบริหารกันเองได้ราบลื่น บางเหตุการณ์ บางเวลาอาจจะคอยเป็นผู้นำหรือโค้ชบ้าง) แนวคิดกระบวนการการพัฒนาแบบ Scrum (Scrum คือ Software Methodology แบบ Agile ชนิดหนึ่ง ) จะพยายามอย่างมากที่จะให้ ScrumMaster เป็นส่วนหนึ่งของทีม เพื่อสนับสนุนสิ่งต่างๆให้ทีม ในทางกลับกัน เมื่อมีสิ่งผิดปกติเกิดขึ้น คนในทีมก็จะพูดถึงปัญหามากขึ้น เพราะคนในทีมคิดว่า ScrumMaster จะช่วยแก้ปัญหาให้เค้า มากกว่าจะมาตำหนิว่ากัน

แหล่งข้อมูล :
siddhi, Managers and developers: Are you two teams or one?
Thaisharp.net

Related Post