จากบทความเรื่อง 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 บ้างนะครับ