See the original English version of this article here
ทักษะหนึ่งที่สำคัญมากของ Programmers/Developers คือ ความสามารถในการเรียนรู้ เนื่องจากอยู่ใน Industry ที่เปลี่ยนแปลงรวดเร็ว ทำให้ต้องเรียนรู้เรื่องใหม่ ๆ ตลอดเวลา แต่บางครั้งความสามารถในการเรียนรู้ก็กลับช้าลง ดังนั้นบทความนี้จะมาแนะนำ 9 แนวทาง ที่ช่วยส่งเสริมการแบ่งปันความรู้ในทีม Dev
1. งดพูดถึงเรื่อง Code
รูปแบบ: Party
วิธีการ: การรวมตัวกันนับเป็นวิธีที่ดีในการให้ทุกคนสามารถพูดคุยและเพิ่มความสนิทสนมกันได้ คุณอาจมีอาหารทานเล่นและเครื่องดื่ม แนะนำตัวกันว่าใครทำงานส่วนไหน(กรณีไปกันหลาย ๆ ทีม) และทำความรู้จักกับเพื่อนร่วมงานของคุณให้มากขึ้น
ประโยชน์ที่ได้รับ: การแบ่งปันประสบการณ์และการได้รู้จักสนิทสนมกัน สำคัญไม่น้อยไปกว่าการแบ่งปันความรู้ เนื่องจากพวกเราใช้เวลาส่วนใหญ่ไปกับการทำงาน ดังนั้น การที่ได้สนิทหรือรู้ใจเพื่อนร่วมงานของคุณ จะช่วยทำให้การทำงานสนุกมากขึ้น รวมทั้งอาจช่วยให้งานเดินหน้าไปได้ดีเมื่อ Deadline ใกล้เข้ามา
2. แบ่งปันสิ่งที่คนอื่นยังไม่รู้
รูปแบบ: Game
วิธีการ: ในแต่ละรอบของเกม Developer จะมีการแบ่งปันเคล็ดลับ/เทคนิค 3 อย่างที่มีประโยชน์ และคาดว่าน่าจะเป็นสิ่งที่ Developer คนอื่นอาจจะไม่รู้
Developer ที่แบ่งปันเคล็ดลับ/เทคนิค จะได้รับคะแนนในกรณีที่นำเสนอเคล็ดลับ/เทคนิค ที่คนอื่น ๆ ในทีมยังไม่รู้จัก แล้วทำการรวบรวมคะแนนว่าใครได้คะแนนสูงสุด อย่างเช่น
A. Multiple cursors ใน VS Code: Cmd + D
B. let value = obj && obj.value || defaultValue
C. (‘b’+’a’+ + ‘a’+’a’).toLowerCase() // banana
ประโยชน์ที่ได้รับ: ด้วยรูปแบบการเล่นเกมที่ไม่ซับซ้อนอะไรมากมาย น่าจะทำให้คนในทีมมีส่วนร่วมในการแบ่งปันความรู้กันมากขึ้น และถึงแม้ว่ามันจะเป็นเกมที่ใช้เวลาไม่นาน แต่เคล็ดลับเล็ก ๆ น้อย ๆ บางอย่าง อาจช่วยทำให้ประหยัดเวลาในการเรียนรู้และการทำงานได้อย่างมาก
3. Collaborative Newsletter
รูปแบบ: Email/post
วิธีการ: สมาชิกในทีมจะทำการส่งบทความที่พวกเขาชอบ ซึ่งได้จากการค้นหาและรวบรวมจาก Internet โดยตามหลักแล้วบทความเหล่านั้นจะเน้นไปที่เรื่อง Technology ที่ใช้ในบริษัทหรือทีมเป็นหลัก, ปัญหาหรือเรื่องที่ต้องเจอบ่อย ๆ และวิสัยทัศน์ทางด้าน Technical ที่บริษัทมุ่งเน้น
ประโยชน์ที่ได้รับ: Newsletter นี้จะช่วยส่งเสริมให้ทุกคนในทีมได้รับทราบและช่วยประหยัดเวลาด้วยการอ่านบทความที่มีคุณภาพที่ตรงกับระดับของ Developer มันทำหน้าที่เป็นเหมือนตัวเริ่มต้นการสนทนาระหว่าง Developer เมื่อมีการแบ่งปันความคิดเห็นกัน ในที่สุดก็จะเป็นวิธีที่ง่ายในการทำให้แน่ใจว่าทุกคนในทีมได้รับรู้ในสิ่งเดียวกัน ซึ่งจะทำให้ในทีมเต็มไปด้วยคนที่เชี่ยวชาญในด้านต่าง ๆ
4. Pair-Programming กันระหว่างทีม
รูปแบบ: Meeting
วิธีการ: Developers จากแผนกย่อยต่าง ๆ จะถูกจับคู่กันทำงาน และพวกเขาจะได้มอบหมายงานที่ง่าย ๆ ไม่ซับซ้อนมานัก (เนื่องจากหนึ่งใน Developer อาจจะมีส่วนเกี่ยวข้องกับบาง Codebase ที่น้อยกว่า)
ประโยชน์ที่ได้รับ: การจับคู่กันเขียน Program ระหว่างทีม จะช่วยทำให้เกิดคามรู้สึกถึงความเป็นเจ้าของใน Code และเพิ่มความสะดวกในการนำ Code กลับมา Reuse ในทีมมากขึ้น เนื่องจาก Developer จะได้รับรู้/คำนึงถึง Project อื่น ๆ และความท้าทายต่าง ๆ ของบริษัท
5. ช่วงเวลาแห่งการบอกเล่า
รูปแบบ: Presentation
วิธีการ: Developer หรือทีม จะแบ่งปันการ Implement ทางด้าน Technical ที่พวกเขาภูมิใจ แล้วนำเสนอ Solution ที่คิดว่าดีที่สุด, ความซับซ้อนของปัญหา หรือแม้กระทั่งระยะเวลาในการ Implement
ประโยชน์ที่ได้รับ: ความสามารถในการนำเสนอและอธิบาย Technical Solutions ถือเป็นทักษะที่สำคัญที่ Developer จะได้รับ โดยเฉพาะอย่างยิ่งเมื่อคุณมีรุ่นน้องในทีมของคุณ
การกระจายความรู้เกี่ยวกับงานที่ได้ผลลัพธ์ออกมาอย่างดีของบริษัท จะช่วยให้รักษาคุณภาพให้อยู่ในระดับที่สูง และช่วยสร้างพื้นที่สำหรับคนในทีมในการนำเสนอ Code และแนวคิดที่มีประโยชน์
6. Crash Course
รูปแบบ: Long presentation และ Demo
วิธีการ: การนำเสนอที่เต็มรูปแบบมากขึ้น จะถูกใช้เมื่อ Developer มีการแบ่งปันสิ่งที่พวกเขาเพิ่งเรียนรู้ไป, ศึกษาในเชิงลึก และทำให้มันง่ายขึ้น โดยเฉพาะอย่างยิ่ง ถ้ามันเป็น Topic ใหม่ ๆ หรือเป็นเรื่องที่กำลังถูกพูดถึงกัน เช่น GraphQL หรือ hooks เป็นต้น
ประโยชน์ที่ได้รับ: การสอนผู้อื่น ถือเป็นหนึ่งในวิธีที่ดีที่สุดในการเรียนรู้ Developer ที่ให้ความรู้แก่ผู้อื่นจะมีความเชี่ยวชาญในเรื่องเหล่านั้นมากขึ้นเนื่องจากพวกเขาต้องเตรียมการสิ่งที่จะสอน/นำเสนอ ขณะเดียวกันก็จะช่วยเพิ่ม Learning Curve ของคนอื่น ๆ ที่เกี่ยวข้องด้วย
7. สนุกกับ Code
รูปแบบ: Meeting
วิธีการ: Developer จะแบ่งกันเป็นกลุ่ม ๆ แล้วแข่งขันกันแก้ไขโจทย์ด้าน Programming บน Platforms เช่น CodinGame หรือ Code Combat นอกจากนี้คุณยังสามารถทำ Algorithmic Challenge บน HackerRank ได้เช่นกัน
ประโยชน์ที่ได้รับ: Developer บางคนชอบเขียน Code เพื่อความสนุกสนาน การมีเวลาเขียน Software ที่ไม่เจาะจงวัตถุประสงค์จะทำให้ Developer ได้พัฒนาสมองมากขึ้น หากคุณทำให้การแก้ไขปัญหาเป็นเรื่องที่สนุก คุณก็จะมีความสุขที่ได้ทำพวกมัน
8. จัดงาน Meetup
รูปแบบ: Meeting
วิธีการ: ลองคิดดูว่าบริษัทของคุณได้ทำสิ่งใดบ้าง ที่คุณรู้สึกภาคภูมิใจ และคุณก็อยากบอกเล่าสิ่งเหล่านั้นให้บุคคลภายนอกได้รับรู้ หรือพูดคุยเกี่ยวกับ Technology ที่มีการใช้งานกันอย่างแพร่หลายในองค์กร
ประโยชน์ที่ได้รับ: การจัดงาน Meetup จะช่วยให้คุณสามารถนำคนเชี่ยวชาญในด้านต่าง ๆ จากภายนอกมาที่บริษัทของคุณ เพื่อที่จะได้แลกเปลี่ยนความรู้ซึ่งกันและกัน Developer ที่เป็นผู้นำเสนอ/จัดงาน ถือว่าได้ช่วยพัฒนา Community ให้แข็งแกร่งขึ้น ขณะเดียวกันยังเป็นการพัฒนาทักษะอื่น ๆ เช่น การพูดในที่สาธารณะ อีกด้วย แต่สิ่งที่สำคัญที่สุด คือคุณจะได้เจอกับกลุ่ม Developers ที่มีความสนใจในเรื่องเดียวกัน
9. กลับไปจัดการกับสิ่งที่ทำเสร็จไปแล้ว
รูปแบบ: Meeting
วิธีการ: มีการจัดให้ทีมเข้าไปเพื่อ Review และปรับปรุง Process, การหาทางแก้ไขปัญหาต่าง ๆ ของงานหรือ Project ที่ผ่าน ๆ มา และคิดว่าอาจจะมีปัญหาหรือความท้าทายอะไรอีกบ้างที่จะเกิดขึ้นในอนาคต
ประโยชน์ที่ได้รับ: การประสานความร่วมมือกันและการสื่อสาร ถือเป็นสิ่งสำคัญในการรวบรวม Feedbacks ต่าง ๆ ซึ่งช่วยให้เราได้เรียนรู้จากข้อผิดพลาดรวมทั้งสิ่งที่ทำให้ประสบความสำเร็จ
ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่
Source: https://medium.com/