Developer ที่ประสบความสำเร็จ ไม่จำเป็นต้องเป็น Developer ที่ยิ่งใหญ่ที่สุด และความสำเร็จที่คุณแสวงหา มาจากวิธีที่คุณมองตัวเอง มองโลกรอบตัว และการรับมือกับความท้าทายของชีวิต จากการวิจัยของ Duke University พบว่า มากถึง 40% ของความสำเร็จ (หรือความล้มเหลว) ของเรา เกิดขึ้นโดยอัตโนมัติ ซึ่งเป็นผลมาจากลักษณะนิสัย/การกระทำ ของเรา และหากคุณอยากเป็น Developer ที่ประสบความสำเร็จ ควรมี 5 สิ่งนี้
1. เป็นมืออาชีพ
Steve Maraboli กล่าวว่า “การทำในสิ่งที่ถูกต้องและการทำในสิ่งที่ยากมักจะเหมือนกัน และทั้งคู่ก็ล้วนต้องการความเป็นมืออาชีพ”
ความเป็นมืออาชีพ นั้นมีอยู่ 2 ด้าน คือ ด้านหนึ่งเป็นเหมือนเครื่องหมายของเกียรติและความภูมิใจ แต่อีกด้านหนึ่งก็เป็นเหมือนเครื่องหมายของภาระหน้าที่และความรับผิดชอบ ซึ่งทั้ง 2 อย่าง มันไปด้วยกันเสมอ คุณจะไม่สามารถภาคภูมิใจและมีเกียรติในสิ่งที่คุณไม่สามารถรับผิดชอบมันได้
ลองนึกภาพดูว่า คุณเขียน Code และ Deploy มันใน Production แต่ปัญหาร้ายแรงก็เกิดขึ้นเนื่องจาก Code ของคุณและProduction System ก็หยุดชะงักไปเป็นวัน ๆ เห็นได้ชัดอยู่แล้วว่า ลูกค้าก็ได้รับความเสียหายประมาณหนึ่ง แม้คุณกลับไปแก้ไข Code แล้ว แต่ความเสียหายที่เกิดขึ้นแล้ว ไม่สามารถย้อนกลับไปแก้ไขได้
คนที่ไม่เป็นมืออาชีพ จะยักไหล่แล้วพูดว่า “เรื่องแบบนี้มันเกิดขึ้นได้อย่าคิดมาก” แล้วก็เริ่มเขียน Module อื่นต่อไป แต่สำหรับมืออาชีพแล้วจะรู้สึกวิตกกังวลกับสิ่งที่เกิดขึ้นเป็นอย่างมาก และพวกเขาจะทำให้แน่ใจว่า สิ่งเหล่านี้จะไม่เกิดขึ้นซ้ำอีก
โปรดจำไว้เสมอว่า ความเป็นมืออาชีพนั้นเกี่ยวข้องกับความรับผิดชอบ คุณไม่สามารถทำทุกอย่างถูกต้องตลอดเวลา ขณะเดียวกันคุณก็ต้องรับผิดชอบในสิ่งที่คุณทำอย่างหลีกเลี่ยงไม่ได้
2. อย่าทำผิดพลาดซ้ำในเรื่องเดิม ๆ
Amit Kalantri กล่าวได้อย่างตรงประเด็นว่า “หากการขอโทษนั้นตามมาด้วยข้อแก้ตัวและเหตุผลต่าง ๆ นานา นั้นหมายความว่า พวกเขากำลังจะทำผิดพลาดซ้ำอีกครั้งในสิ่งที่พวกเขาขอโทษ”
เห็นได้ชัดว่าเราต้องการให้ Software ของเราใช้งานได้ อันที่จริงพวกเราส่วนใหญ่เป็น Programmer เพราะเรามีงานที่ต้องทำและต้องการความรู้สึกสบายใจอีกครั้ง แต่ไม่ใช่เราเพียงคนเดียวที่ต้องการให้ Software ใช้งานได้ ลูกค้าและนายจ้างของเราก็ต้องการให้มันทำงานได้เช่นกัน แน่นอนว่าพวกเขาจ่ายเงินให้เราเพื่อสร้าง Software ที่ใช้งานได้ตามที่พวกเขาต้องการ
แม้ที่ผ่านมาจะไม่มีปัญหาอะไร แต่ Software ก็ไม่ Perfect เสมอไป ทุก ๆ Software จะมี Bug เกิดขึ้น
ในประเด็นนี้ไม่ได้ต้องการบอกว่าให้คุณเขียน Code ที่ Perfect เราไม่ได้อยู่ในโลกที่สวยหรู สิ่งที่จะสื่อก็คือ การรับผิดชอบในข้อบกพร่องทั้งหมดใน Software ของคุณ คุณอาจจะสร้าง Bug และ ข้อผิดพลาดต่าง ๆ ได้ แต่อย่าทำผิดพลาดซ้ำแล้วซ้ำอีกในเรื่องเดิม ๆ
ยิ่งคุณเติบโตในสายอาชีพของคุณ อัตราความผิดพลาดก็ควรลดลงให้มากที่สุดจนเป็นศูนย์ แม้จะไม่เป็นศูนย์ แต่มันก็เป็นความรับผิดชอบของคุณที่ควรจะทำให้เข้าใกล้ศูนย์มากที่สุด
3. อย่าคาดหวังพึ่งพาในโชคชะตา
Jim Jenkins กล่าวไว้ว่า “ความขมขื่นของคุณภาพที่ไม่ดี จะยังคงอยู่ หลังจากความหวานของกำหนดการประชุมได้ถูกลืม”
หลักการง่าย ๆ คือ หากมีสิ่งใดที่ถือว่าผิดพลาด มันก็จะผิดพลาด และไม่ว่าจะมีโชคมากแค่ไหน ก็ไม่สามารถป้องกันไม่ให้มันเกิดขึ้นได้
นั่นคือเหตุผลที่ว่า ทำไมการ Testing ถึงได้มีความสำคัญ คุณจะรู้ได้อย่างไรว่า Code ของคุณมันใช้การได้ดี คำตอบง่ายนิดเดียวคือ คุณก็ต้อง Test มัน Test อีกครั้ง Test แล้ว Test อีก ไปเรื่อย ๆ จนแน่นใจ
แม้ว่า Deadline จะมีความเข้มงวดและสร้างแรงกดดันมากมาย จนทำให้คุณต้องทำอะไรที่ง่ายหรือเร็วที่สุดไว้ก่อนเพื่อให้งานเสร็จ ขอแนะนำว่าจงอย่าทำแบบนั้น ในกรณี Automate Test ลองใล้วิธี Pair Programming หรือดู Test Cases ต่าง ๆ ที่เคยทำมาแล้ว แต่อย่าทำอะไรก็ตามที่จะบั่นทอนความสำคัญของขั้นตอนนี้
ชื่อเสียงของคุณ มันขึ้นอยู่กับว่า คุณ Test Code ได้ดีมากแค่ไหนก่อนที่จะ Deploy ใน Production และ Code ที่คุณเขียนทั้งหมดควรได้รับการ Test มาอย่างดีแล้ว
จะเกิดอะไรขึ้นถ้า Code นั้น “ไม่สามารถ Test ได้” หรือ Code ถูกเขียนในลักษณะที่ทำให้ยากต่อการ Test คำตอบสั้น ๆ คือ ก็ทำให้ Code ของคุณ Test ได้ง่ายขึ้นสิ และวิธีที่ดีที่สุดก็คือ ให้เขียน Test ขึ้นมา ก่อนที่จะเขียน Code ที่จะนำไป Test นั่นเอง
โปรดจำไว้เสมอว่า จุดประสงค์ของ Code ก็คือการนำไปใช้เพื่อแก้ไขปัญหาของธุรกิจ หากวัตถุประสงค์นั้นล้มเหลว ไม่ว่า Code จะมียาวหรือเขียนออกมาอย่างดีมากแค่ไหนก็ตาม มันก็ไม่มีประโยชน์อะไร
ดังนั้น ในฐานะที่เป็น Programmer คุณควรรู้ว่า Code ของคุณใช้งานได้หรือไม่ และไม่มีอะไรที่สำคัญไปมากกว่านี้อีกแล้ว
4. สร้าง Code ที่มีความยืดหยุ่น
Siri Hustvedt ได้กล่าวว่า “ความคิดสร้างสรรค์นั้น ขึ้นอยู่กับการเปิดกว้างและความยืดหยุ่นอยู่เสมอ ดังนั้น ให้เราคาดหวังถึงทั้งสองสิ่งนั้นในอนาคต”
การส่งมอบ Function อย่างรวดเร็ว ที่แลกมาด้วยการไม่วาง Structure ของ Program ให้ดี ถือเป็นเรื่องที่ไม่ฉลาดนัก เพราะถ้าวาง Structure มาดี มันก็ควรจะ Flexible และทำให้แก้ไขง่ายในภายหลัง แต่การวาง Structure Program ให้ดี มันต้องใช้เวลามากเช่นกัน
สมมติฐานเบื้องต้นเกี่ยวกับ Software Project ก็คือ Software นั้นสามารถเปลี่ยนแปลงได้ง่าย หากคุณพบว่าสิ่งนี้เป็นไปไม่ได้ แสดงว่ามีบางอย่างที่ผิดปกติอยู่
มี Project จำนวนมากที่ติดในกับดักของ Code ที่ไม่ยืดหยุ่น Developer คนแล้วคนเล่าได้เพิ่มความยุ่งยากเข้าไปใน Code ที่ไม่ยืดหยุ่น และในที่สุดก็กลายเป็นการสร้าง Software ที่ไม่สามารถ Rewrite หรือไม่สามารถ Maintain ได้ง่ายอีกต่อไป
ประเด็นสำคัญก็คือ การระบุส่วนของ Code ที่ทำให้มันไม่ยืดหยุ่น เมื่อเราพบส่วนนั้น เราจะต้องทุ่มเวลาและความพยายามเพื่อเขียนส่วนเหล่านั้นใหม่ แทนที่จะเพิ่มความยุ่งยากเข้าไปอีก ความพยายามนี้อาจจะหมดไปพร้อมกับ Deadline แต่อย่างไรก็ตามจงยอมรับมันและทำในสิ่งที่ถูกต้องซะ
5. จงเรียนรู้อยู่เสมอ
Anthony J. D’Angelo ได้กว่าวไว้ว่า “จงพัฒนา Passion ในการเรียนรู้ หากคุณทำ คุณจะยิ่งเติบโตขึ้นเรื่อย ๆ”
“ฉันต้องการเรียนคอร์ส S4 HANA แต่บริษัทไม่สนับสนุนเลย”
“ฉันต้องการเรียนรู้ Webdynpro forms แต่ไม่สามารถหาเวลาได้ เพราะฉันมีตารางงานที่ยุ่งมาก”
“ฉันต้องการเข้าร่วม Codeathon แต่มันดันมีในวันหยุดพอดีนี่สิ”
ทั้งหมดนี้เป็นข้อแก้ตัวที่ไม่ช่วยให้คุณได้เรียนรู้ อาชีพของคุณคือความรับผิดชอบของคุณ มันไม่ใช่ความรับผิดชอบของนายจ้างที่จะต้องทำให้แน่ใจว่าคุณจะเป็นที่ต้องการของตลาดได้ มันไม่ใช่ความรับผิดชอบของนายจ้างที่จะต้อง Train คุณหรือส่งคุณไปสัมมนา หรือซื้อหนังสือให้คุณ(เสมอไป) สิ่งเหล่านี้ถือเป็นความรับผิดชอบหลักของตัวคุณเอง
หลักการง่าย ๆ คือทำตาม “40-20 Hour Rule” ในทุกสัปดาห์ โดยเวลา 40 ชั่วโมงเป็นของนายจ้าง ส่วนที่เหลืออีก 20 ชั่วโมงเป็นของคุณเองที่ใช้สำหรับการเรียนรู้ อันที่จริง 20 ชั่วโมงต่อสัปดาห์ก็ไม่ถือว่ายากมากนัก หากคุณรู้จักแบ่งเวลาอย่างมีประสิทธิภาพ ไม่ว่าจะ เวลาที่ในการเดินทาง, เวลาอาหารกลางวัน, วันหยุดสุดสัปดาห์และอื่น ๆ แล้วคุณจะพบว่า คุณมีเวลามากขึ้นในการจัดการเพื่อที่จะใช้พัฒนาตัวเอง
โปรดจำไว้เสมอว่าใน Field ของ Software มีการเปลี่ยนแปลงอยู่ตลอดเวลา และมันก็ง่ายต่อการเป็นคนที่ล้าสมัย ดังนั้น หากคุณต้องการที่จะอยู่แนวหน้าอยู่เสมอ และมีคุณค่าอยู่ตลอดเวลา ก็จงลงทุนเพื่อตัวเองและเรียนรู้ต่อไป เหมือนอย่างที่ Seema Openers ได้กล่าวไว้ว่า “การเรียนรู้ด้วยตนเองนั้นเปิดกว้างสำหรับทุกคน แต่คนที่รับมันไว้ คือคนที่ปฏิเสธที่จะใช้ชีวิตแบบไม่มีจุดมุ่งหมายในชีวิต”
ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 28 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่
Source: https://medium.com/