แนวคิดของการให้ Senior Developer คอยช่วยให้คำแนะนำและคำปรึกษา Junior Developer ถือเป็นเรื่องที่มีประโยชน์และส่งผลดีต่อทั้งตัว Developer เองและดีต่อบริษัทด้วย วันนี้มาดูกันว่า 3 เหตุผลที่ Junior Dev ควรมี Senior Dev เป็นพี่เลี้ยง นั้นมีอะไรบ้าง
1. เพื่อจะได้ทราบ Maintainable คืออะไร
คุณเคยสร้าง Automated Process, Website หรือ Framework บน Computer ของคุณบ้างไหม? หากตอนนี้คุณใช้งานระบบใหม่และนำไป Implement ในระบบที่ใหญ่ขึ้น ซึ่งอาจมี Users หลายพันคนหรืออาจเป็นล้าน ๆ คน แล้วคุณต้อง Maintain มันต่ออีกหลายปีใช่ไหม?
ถ้าคำตอบคือ “ใช่” คุณคงรู้ว่า มันเป็นเรื่องไม่ง่ายเลยที่จะพัฒนาระบบให้ใช้งานได้ยาวนาน คุณจะต้องตัดสินใจในเรื่องการออกแบบอยู่ตลอดเวลาซึ่งก็มีทั้งข้อดีและข้อเสีย บางครั้งเนื่องจากเหตุผลทางด้านเวลาหรือด้าน Technical คุณอาจต้องหลีกเลี่ยงข้อจำกัดบางอย่างไปบ้าง สิ่งนี้สามารถนำไปสู่ Technical Shortcuts ซึ่งทำให้เกิด Technical Debt ขึ้นได้ และ Shortcuts ทั้งหมดเหล่านั้นที่คุณใช้และการตัดสินใจที่ไม่รอบคอบ อาจกลับมาทำร้ายคุณได้ในภายหลัง
แม้การทำสิ่งเล็ก ๆ น้อย ๆ อย่างการเปลี่ยน Integer Column ไปเป็น Float Column ก็อาจทำให้คุณต้องใช้ความพยายามตลอดทั้งสัปดาห์ในการค้นหา Fields References, การ Update รวมทั้งการ Run Tests พวกมัน
การสร้าง Code ที่สามารถ Maintain ได้ง่ายและให้ใช้งานได้นาน ๆ เริ่มต้นด้วยการออกแบบที่ดี อย่างไรก็ตามมี Junior Developer หลายคนที่เพิ่งเริ่มเขียน Code ได้ไม่นานและลืมนึกถึงแง่มุมที่สำคัญเกี่ยวกับการออกแบบไป ซึ่งนี่คือส่วนที่ Senior Developer จะเข้ามามีบทบาทและช่วยแนะนำ Junior Developer ในเรื่องของ Design Reviews และ Pair Programming
Senior Developer จะสามารถช่วยให้ข้อมูลในเชิงลึกเกี่ยวกับข้อผิดพลาดที่อาจเกิดขึ้นได้จากการออกแบบของ Junior Developer แม้ว่า Senior อาจมองไม่เห็นถึงปัญหาที่อาจเกิดขึ้นทุกอย่าง แต่พวกเขาก็สามารถช่วย Junior Developer ได้ในกรณีที่เกิดปัญหาได้ และในทางกลับกัน สิ่งนี้จะช่วยสอนให้ Junior คิดถึงสิ่งต่าง ๆ เผื่อไว้สำหรับอนาคตด้วย
2. เพื่อช่วยจัดการกับ Expectation
พวกเราหลายคนที่สร้าง Programs แรกในช่วงที่เรียนอยู่ ซึ่งมักจะเป็นการสร้าง Websites, Applications และ Side Projects ที่ทำเพียงไม่กี่สัปดาห์ อย่างไรก็ตามเมื่อเราเริ่มทำงานจริงใน Industry คุณอาจรู้สึกเหมือนว่าสิ่งที่เคยใช้เวลาทำเพียงไม่กี่วันหรือไม่กี่สัปดาห์ อาจเริ่มกลายเป็นใช้เวลานานหลายเดือน ซึ่งเมื่อถึงตอนนั้นคุณก็จะเริ่มนึกถึงแนวคิดของ Project Management ว่ามีความสำคัญมากแค่ไหน
Request ทั่วไปสำหรับการเปลี่ยนแปลงหรือการ Update นั้น อาจจะต้องการมากกว่าแค่การ Update Code การวิเคราะห์ในทุกประเด็นจะต้องทำเพื่อดูว่า การเปลี่ยนแปลงเหล่านั้นจะส่งผลต่อ Modules อื่นอย่างไรบ้าง เพราะการเปลี่ยนแปลง Code ที่ถูกทำขึ้นแบบรวดเร็วและง่าย ๆ อาจต้องใช้เวลาทำที่นานกว่าปกติ เพราะมันอาจมี Dependencies เป็นจำนวนมาก
ความสามารถในการจัดการ Expectation (ความคาดหวัง) เหล่านี้ จะช่วยให้มั่นใจได้ว่า ทีม Development จะไม่กำหนด Timeline ที่มากเกินกว่าที่ควรจะเป็น
ปัญหาต่าง ๆ ที่คุณต้องเจอ เช่น คนในทีมหยุดพักร้อน, งาน Operation, การประชุม และงานอื่น ๆ ที่ต้องทำประจำวันทั่วไปซึ่งสิ่งเหล่านี้อาจทำให้พวกเขาต้องใช้เวลาทำงานจนค่ำมืดดึกดื่นได้
Senior Developer มีแนวโน้มที่จะคุ้นเคยกับสิ่งที่มารบกวนการทำงานเหล่านี้ได้มากกว่า Junior และพวกเขาก็สามารถเข้าใจใน Expectation ที่ตรงกับความเป็นจริงได้ดี ถึงแม้ทีมบริหารอาจจะขอลด Timeline การทำงานของคุณลงครึ่งหนึ่ง แต่อย่างน้อยคุณก็ได้พยายามแล้ว
3. เพื่อจะได้ทราบว่า Project ที่แย่ เป็นอย่างไร
การรู้ว่า Project ที่แย่เป็นอย่างไร ถือเป็นทักษะที่เรียนรู้กันได้ไม่ง่ายนัก ซึ่งนี่ก็เป็นเหตุผลที่ Junior Developer ยากที่จะรู้เมื่อพวกเขาถูกขอให้ทำงานบางอย่างที่อาจส่งผลน้อยมากหรือแทบไม่ส่งผลเลยต่อบริษัท หรือพิสูจน์ได้ว่า งาน/Project นั้นมันมีขนาดใหญ่เกินกว่าที่พวกเขาจะสามารถทำได้ด้วยตนเองเพียงคนเดียว
Project ที่แย่ มักจะไม่มีความชัดเจน พวกมันอาจเป็นการริเริ่มบางอย่างที่ Director คนใหม่รู้สึกว่ามันจะช่วยทำให้บริษัทดีขึ้น แต่ที่จริงมันกลับไม่สอดคล้องกับเป้าหมายบริษัทเลยก็ตาม หรืออาจเป็น Project ที่มีทีมขายบางคนได้ไปงาน Conference มาแล้วได้ยินเกี่ยวกับ Feature ใหม่ของ AI ซึ่งทีมขายเหล่านั้นเรียกร้องให้ทีม Engineer เพิ่ม Feature ใหม่เหล่านั้นลงใน Product ด้วย
อย่างไรก็ตาม Project ลักษณะนี้ มักนำไปสู่ความเครียดโดยไม่จำเป็นและบ่อยครั้งก็เป็นการใส่ Feature ที่ User ไม่ได้ใช้ประโยชน์อะไรจากมันเลย การมี Senior Developer จะช่วยทำให้ Junior มองเห็นลักษณะบางอย่างของ Project ที่แย่ และแสดงให้เห็นว่า Project ที่ไม่มีประสิทธิภาพเหล่านั้นจะส่งผลกระทบต่อบริษัทอย่างไรและในแง่ใดบ้าง
สรุป
โดยรวมแล้ว มีเหตุผลดี ๆ มากมายที่จะให้ Junior Developer ทำงานกับ Senior Developer เพราะการปล่อยให้ Junior Developer ทำงานเพียงลำพัง ไม่เพียงแต่จะส่งผลเสียต่อการความก้าวหน้าของพวกเขาเท่านั้น แต่ยังอาจส่งผลกระทบต่อบริษัทอีกด้วย มันง่ายที่คุณอาจทำผิดพลาดหากคุณไม่เคยทำหรือมีประสบการณ์ในเรื่องเหล่านั้นมาก่อน มีข้อสันนิษฐานและการตัดสินใจมากมายที่ Engineer ต้องใช้ในการทำงาน ซึ่งหากไม่มีประสบการณ์คอยช่วยเป็น Guideline คุณก็อาจตกอยู่ในสถานการณ์ที่เลวร้ายได้อย่างรวดเร็ว
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/