บทความนี้ Alex Ewerlöf ได้แชร์ประสบการณ์ที่เขาอยู่ใน Software Industry มานับ 20 ปี ซึ่งได้ร่วมงานกับ Programmer มากมายจากหลายประเทศ หลายธุรกิจ และหลาย Skill ทำให้เขาอยากที่จะกล่าวถึง ความหมายของ Level ตำแหน่งงาน ในแวดวง Software ให้ชัดเจนมากขึ้นจากประสบการณ์ใน Industry นี้
Junior, Senior, Expert
วิธีที่ดีที่สุด ที่คิดว่าน่าจะใช้ในการนิยามแต่ละ Level ตำแหน่งงาน คือ “ความท้าทาย” ที่แต่ละ Level ต้องเจอ
Junior: ความท้าทายหลักๆ ของระดับ Junior คือ การเรียนรู้เทคโนโลยี คุณเริ่มทำงานในบริษัทที่ใช้ Node, React, Python…คุณก็ต้องเรียนรู้เทคโนโลยีเหล่านั้นเป็นขั้นตอนแรก หากคุณพอมีความรู้เบื้องต้นหรืออะไรที่คล้ายกันมาบ้างแล้ว จะทำให้คุณเรียนรู้ได้อย่างรวดเร็ว
Senior: ความท้าทายหลักๆ ของระดับ Senior คือ การเรียนรู้เกี่ยวกับความรู้/แนวคิดในขอบเขตงานที่เกี่ยวข้อง เช่น คุณมีความรู้ .Net และคุณได้ทำงานในบริษัทที่เขียน Code .Net แม้คุณสามารถอ่าน Code ได้ แต่คุณอาจไม่มีไอเดียเกี่ยวกับปัญหาที่จะแก้ไข ความท้าทายของคุณคือ การเรียนรู้ขอบเขตที่เกี่ยวข้องเพื่อให้เข้าใจบริบทของ Code และทำไมถึงใช้มันเพื่อแก้ไขปัญหานั้นๆ
Expert: ความท้าทายหลักๆ ของ Expert คือ การช่วยเหลือ Junior และ Senior Engineer ให้สามารถแก้ไขปัญหาที่ติดขัดได้ Expert จะช่วยเพิ่มความแข็งแกร่งให้กับทีมได้โดยการแชร์ความรู้เกี่ยวกับเทคโนโลยีและความรู้/แนวคิดต่างๆ ที่เกี่ยวข้อง ระดับ Expert คือคนที่จะต้องเข้าใจภาพรวมธุรกิจเป็นอย่างดี
เมื่อมีคนใหม่เข้าร่วมทีม พวกเขาจะเริ่มต้นที่ระดับ Junior ก่อนไม่ว่าจะมีประสบการณ์มาแล้วก็ตาม แต่ถ้าพวกเขารู้จักและมีความรู้ในเทคโนโลยีที่บริษัทใช้ มาแล้ว ก็อาจได้รับการพิจารณาเป็น Senior ก็ได้ ขึ้นกับปัจจัยอื่นๆ ด้วย เช่น ความเร็วในการเรียนรู้และความรู้เฉพาะด้านที่แต่ละคนมี
วิธีการ Test ในการเป็น Seniority คือ ถามถึงสิ่งที่พวกเขาไม่ชอบเกี่ยวกับเทคโนโลยี หากใครที่รู้จักเทคโนโลยีนั้นๆ เป็นอย่างดี พวกเขาจะมีแนวคิดที่ดีเกี่ยวกับ ข้อจำกัดและจุดแข็งของเทคโนโลยี และ อายุ ก็ไม่ได้เป็นตัวแบ่งแยกความเป็น Seniority
บางคนอาจถูกคู่แข่งพยายามดึงตัวไปทำงานด้วย ซึ่งถือเป็นโอกาสที่ดีเนื่องจากพวกเขามีความรู้/แนวคิดในขอบเขตงานที่เกี่ยวข้องแล้ว ดังนั้น พวกเขามีโอกาสในการปรับเป็นระดับ Expert ได้
ตัวแบ่งแยกระหว่าง Senior และ Expert ยังไม่ชัดเจนมากนัก สิ่งที่แยก Expert ออกจาก Senior คือ พวกเขามีความเข้าใจแบบองค์รวมว่า Software จะถูกนำมาใช้เพื่อแก้ปัญหาทางธุรกิจได้อย่างไรบ้าง และหากคุณถามคำถามกับ Expert คุณจะได้คำตอบมากกว่าแค่ “ใช่/ไม่ใช่” แต่คุณจะได้มากกว่านั้น นั่นเป็นเพราะ Expert สามารถเห็นปัญหาในเชิงลึกพร้อมกับ ข้อเสีย/ข้อดีและอื่นๆ ที่เกี่ยวข้อง เหล่า Expert มักจะต้องการข้อมูลเพิ่มเติม เพื่อกลั่นกรองคำถามง่ายๆ เหล่านั้น ให้เฉพาะเจาะจงมากขึ้นสำหรับปัญหาที่มีอยู่ จากนั้นถึงจะให้คำตอบว่าได้ว่า “ใช่ หรือ ไม่ใช่”
Lead
ความท้าทายที่สำคัญของระดับ Leader คือ การทำให้แน่ใจว่า ทุกคนในทีมกำลังเดินไปในทิศทางที่ถูกต้องทั้งทีม:
- Expert จะแบ่งปันความรู้ทางด้านเทคนิค รวมทั้งความรู้/แนวคิดในขอบเขตงานให้กับ Senior และ Junior
- Senior จะแบ่งปันความรู้ทางด้านเทคนิค รวมทั้งความรู้/แนวคิดในขอบเขตงานให้กับ Junior
- Junior จะไขว้คว้าหาหาความรู้ให้มากขึ้น/ เรียนรู้เทคโนโลยีต่างๆ ที่เกี่ยวข้อง
แต่ในความเป็นจริง มันมีความซับซ้อนมากกว่านั้น แต่ก็พอจะกล่าวสรุปได้ว่า Leader จะเป็นผู้กำหนดจังหวะและวิธีการทำงานของทีม
Experienced
ในโฆษณารับสมัครงานส่วนใหญ่ มักต้องการผู้สมัครที่มีประสบการณ์ ซึ่งเป็นโชคร้ายของ Junior ส่วนใหญ่ที่ต้องตกอยู่ในสถานการณ์ที่เจอแต่ทางตัน การจ้าง Developer ที่มีประสบการณ์แล้ว ก็ไม่ใช่สูตรสำเร็จเสมอไป คุณต้องแน่ใจด้วยว่า ทีมของคุณมีส่วนประสมของคนใน Level ต่างๆ ที่เหมาะสม การมี Junior อยู่ในทีมจะผลักดันให้ Senior และ Expert มีการอธิบาย Concept ต่างๆ ซึ่งส่งผลให้สามารถทำงานได้ดีขึ้น
คุณควรระมัดระวังในการจ้างคนที่มีประสบการณ์แล้ว (ไม่ว่าจะ Senior หรือ Expert ก็ตาม) เนื่องจากพวกเขาอาจมีความเห็นที่ยึดติดบางอย่างในวิธีการทำงาน จนอาจเป็นต้นเหตุให้เกิดความไม่สมดุลในทีมและทำลายแรงกระตุ้นของคนอื่นๆ ในทีมได้
คุณอาจต้องเว้นช่องว่างเล็กน้อยระหว่าง Job Requirements กับทักษะของบุคคล ซึ่งช่องว่างดังกล่าวจะทำให้พวกเขาอยากทำงาน เพราะมันให้ความรู้สึกถึงการเติบโตและความก้าวหน้า มิฉะนั้นพวกเขาอาจรู้สึกเบื่อและอาจลาออกในไม่ช้า
Professional
บางครั้งก็มีความสับสนระหว่างคำว่า “Professional” กับ “Senior”, “Expert”, “Experienced” หรือ “Lead” เมื่อเราพูดถึง “Professional” เรามักจะหมายถึงคนที่:
- มี Service Minded และทำทุกอย่างอย่างดีที่สุด เพื่อนำเสนอบริการที่ดีแลกกับเงินหรือผลตอบแทน
- ตัดเรื่องความเป็นส่วนตัวออกจากเรื่องงาน และมุ่งมั่นเพื่อการบริการที่ดีที่สุดเท่าที่จะเป็นไปได้ (แต่แตกต่างกันไป ระหว่าง Work Cultures และ Generation ของคน)
- สร้างความน่าเชื่อถือ ซึ่งจำเป็นได้การได้ลูกค้าและรักษาลูกค้าไว้
ในบางครั้ง เราอาจพบว่า Junior บางคนสามารถแสดงความเป็น Professional ได้ดีกว่าคนที่มีตำแหน่งเป็น Lead ได้เช่นกัน
Specialist vs. Generalist
Specialist มีความรู้เชิงลึกเกี่ยวกับเทคโนโลยีหรือความรู้/แนวคิดในขอบเขตงานบางอย่างโดยเฉพาะ แต่ไม่จำเป็นต้องเข้าใจในภาพกว้างหรือภาพรวมทั้งหมด ตัวอย่างเช่น Generalist UX Engineer อาจมีทักษะที่หลากหลาย แต่ไม่จำเป็นต้องรู้ลึกเหมือนอย่าง Specialist Front-end Developer
ในทางกลับกัน Specialist Front-end Developer อาจมีความรู้อย่างลึกซึ้งเกี่ยวกับการ Implement Website แต่ไม่จำเป็นต้องเกี่ยวข้องกับงานในส่วนอื่นๆ:
คุณ Dan Abramov ถือเป็นตัวอย่างในส่วนของ Front-end Programming และเขาก็เป็นสมาชิกที่โด่งดังที่สุดของทีม React ของ Facebook เมื่อครั้งหนึ่งเขาพูดว่า: “ผมเป็นที่มีจุดเด่น/ทักษะแค่อย่างเดียว” และจากนั้นไม่นานเขาก็เขียนบทความถึงสิ่งที่เขาไม่รู้ ชื่อเรื่องว่า Things I Don’t Know as of 2018
นี่เป็นตัวอย่างที่ดีที่ในการเป็นนักแก้ปัญหาที่ดี คุณอาจไม่จำเป็นต้องรู้ทุกอย่าง การ Focus ปัญหาที่กำลังเผชิญอยู่ ถือเป็นเรื่องสำคัญที่สุด
หวังว่าคุณจะเข้าใจความหมายที่แท้จริงของ Level ตำแหน่งงาน ในแวดวง Software มากขึ้น ในความเป็นจริง มันก็อาจจะแตกต่างกันไปบ้างซึ่งขึ้นอยู่กับบริบทของแต่ละองค์กรหรือหน่วยงาน แต่น่าจะทำให้คุณได้เห็นความแตกต่างและเข้าใจแต่ละบทบาทมากขึ้น
ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 25 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่
Source: https://medium.freecodecamp.org/