จากบทความเรื่อง Software Engineer Traits
ทำการสรุปคุณสมบัติที่จำเป็นสำหรับนักพัฒนา software ที่ดี
ต้องประกอบไปด้วย 4 อย่างดังนี้
Curiosity
Awareness
Resoluteness
Empathy
จึงทำการแปลและสรุปไว้นิดหน่อย
มาเริ่มกันเลย
1. Curiosity
ต้องมีความกระตือรือร้นในการเรียนรู้อยู่อย่างเสมอ
โดยไม่ต้องให้ใครมาบังคับ
ทั้งสิ่งที่รู้และไม่รู้
เป็นสิ่งที่สำคัญอย่างมากต่อนักพัฒนา software (หรือใคร ๆ ก็ตาม)
เช่น
การเรียนรู้ภาษาโปรแกรมใหม่ ๆ โดยไม่ต้องให้ใครมาบังคับ
การทดลองสร้างระบบใหม่ ๆ
การทดลองทำในแนวทางใหม่ ๆ
การแก้ไขปัญหาในแนวทางใหม่ ๆ
การตั้งคำถามต่าง ๆ เพื่อค้นหาคำตอบ
เพียงข้อแรก ลองคิดดูก่อนว่าเราเป็นอย่างไร ?
2. Awareness
แปลตรง ๆ คือ ความตระหนักหรือรับรู้ในสิ่งต่าง ๆในขณะนั้น
ต้องเข้าใจว่าเหตุผลในการเลือกสิ่งต่าง ๆ คืออะไร
สามารถอธิบายให้คนอื่น ๆ รู้และเข้าใจได้
ไม่ใช่เพียงแต่บอกว่า ทำตาม ๆ กันมา !!
เช่น
Architecture ของระบบ ทำไมต้องเป็นแบบนั้น หรือเป็นแบบนี้ไม่ได้หรือ ?
ทำไมต้องเขียน code ชุดนี้ ? แบบนี้ ?
สิ่งที่ติดสินใจต้องลงมือทำด้วยนะ
จึงจะเกิดผล
สุดท้ายสิ่งที่คิด ตัดสินใจ และลงมือทำเหล่านั้น
จะเห็นเป็น pattern
นั่นแหละคือ สิ่งที่เรียกว่า standard หรือ มาตรฐานต่อไป
3. Resoluteness
มีความกล้า มีความมุ่งมัน มีความเด็ดเดี่ยวในสิ่งที่ทำ
มีเป้าหมายเพื่อพัฒนาระบบให้ออกมาดีที่สุดเท่าที่จะทำได้
นั่นคือการตัดสินใจเลือกสิ่งที่ดีมาใช้งาน
ถึงแม้จะอยู่ท่ามกลางความไม่แน่นอนก็ตาม
รวมไปถึงการจะทำอย่างไรให้สิ่งที่พัฒนาออกมาสมบูรณ์ที่สุด
ถึงจะดูแข็งกร้าว แต่ก็ต้องมีความยืดหยุ่นด้วยเช่นกัน
นั่นคือเปิดรับฟังความคิดเห็นจากผู้อื่น
รวมทั้งต้องรู้ว่าตัวเองไม่รู้อะไรด้วย
เพื่อที่จะได้ศึกษาเพิ่มเติมต่อไป
4. Empathy
แปลตรง ๆ เลยก็คือ เอาใจเขามาใส่ใจเรา
มันสำคัญมาก ๆ สำหรับการทำงานเป็นทีม (TEAM)
ซึ่งจะขัดแย้งมาก ๆ สำหรับบริษัทที่ต่างคนต่างทำงานของตัวเอง
ลองกลับมามองในแง่ของนักพัฒนากันบ้าง
เราเขียน code เพื่อคนอื่นไหม ?
code อ่านง่ายไหม ?
code เข้าใจง่ายไหม ?
code แก้ไขง่ายไหม ?
ดังนั้นต้องเขียน code ให้ออกมาดีนะ
ทั้ง 4 ข้อรวมกันอ่านว่า CARE
น่าจะมีประโยชน์ต่อนักพัฒนา software บ้างนะครับ