20 สิ่งที่ได้เรียนรู้จากการเป็นวิศวกรซอฟต์แวร์มา 20 ปี
(simplethread.com)- ผมเองก็ยังไม่ได้รู้อะไรมากนัก: พวกเราเป็นคนที่ต้องเรียนรู้ไปตลอดชีวิต
- สิ่งที่สำคัญที่สุดในการพัฒนาซอฟต์แวร์คือการสร้างสิ่งที่จำเป็นจริง ๆ
- วิศวกรซอฟต์แวร์ที่เก่งที่สุดคิดแบบนักออกแบบ
- โค้ดที่ดีที่สุดคือโค้ดที่ไม่มีอยู่ หรือโค้ดที่ไม่ต้องคอยดูแลรักษา
- ซอฟต์แวร์เป็นเพียงเครื่องมือเพื่อไปให้ถึงเป้าหมาย
- บางครั้งก็ต้องหยุดลับคมเลื่อย แล้วเริ่มตัดอะไรสักอย่างได้แล้ว
- ถ้าไม่เข้าใจให้ดีว่าอะไรเป็นไปได้บ้าง ก็ออกแบบระบบที่ดีไม่ได้
- ทุกระบบสุดท้ายแล้วก็ต้องน่าหงุดหงิดอยู่ดี ดังนั้นยอมรับและก้าวข้ามมันไป
- ไม่มีใครถามคำว่า "ทำไม" มากพอ
- เราควรทุ่มเทกับการหลีกเลี่ยงโปรแกรมเมอร์ระดับ 0.1x ให้มากกว่าการตามหาโปรแกรมเมอร์ระดับ 10x
- ความต่างที่ใหญ่ที่สุดระหว่างวิศวกรอาวุโสกับวิศวกรรุ่นน้อง คือการมีมุมมองของตัวเองต่อเครื่องมือหรือวิธีเขียนซอฟต์แวร์หรือไม่
- ผู้คนไม่ได้ต้องการนวัตกรรมอย่างแท้จริง
- ข้อมูลของคุณคือส่วนที่สำคัญที่สุดของระบบ
- จงมองหา technical shark (เทคโนโลยีที่อยู่รอดมาได้นานแม้จะมีการเปลี่ยนแปลงอย่างรวดเร็ว)
- อย่าสับสนความถ่อมตัวกับความไม่รู้
- วิศวกรซอฟต์แวร์ควรเขียนอยู่เป็นประจำ
- รักษากระบวนการให้กระชับที่สุดเท่าที่จะทำได้ (Lean)
- วิศวกรซอฟต์แวร์เองก็ต้องรู้สึกถึงความเป็นเจ้าของเหมือนมนุษย์ทุกคน
- ไม่มีทางรู้ได้จากการสัมภาษณ์ว่าผู้สมัครจะเป็นเพื่อนร่วมทีมที่ดีหรือไม่
- พยายามสร้างระบบที่เล็กลงเสมอ
สำคัญ
- ตอนต้นบทความนี้มีคำเตือนแบบนี้อยู่
เวลาจะอ่าน "บล็อกที่เต็มไปด้วยคำแนะนำ" คำแนะนำส่วนใหญ่มักขึ้นอยู่กับบริบท แต่หลายครั้งคำแนะนำเหล่านั้นไม่ได้ถูกส่งต่อมาพร้อมบริบทนั้น
คำแนะนำที่ไม่เข้าใจบริบทนั้นไร้ความหมาย หรืออาจถึงขั้นเป็นโทษ - ผู้เขียนจึงอธิบายบริบทของตัวเองไว้เล็กน้อยว่า
- ครึ่งแรกของอาชีพทำงานในบริษัทขนาดเล็ก/สตาร์ทอัป ก่อนจะย้ายไปบริษัทที่ปรึกษาและทำงานฝั่งธุรกิจขนาดใหญ่
- จากนั้นก็ก่อตั้ง SimpleThread และขยายจาก 2 คนเป็น 25 คน
- เมื่อ 10 ปีก่อนทำงานกับบริษัทขนาดเล็กเป็นส่วนใหญ่ แต่ตอนนี้เป็นการผสมกันระหว่างองค์กรใหญ่และเล็ก
- ดังนั้นตัวผู้เขียนเอง
- ทำงานมาโดยตลอดในทีมเล็ก ๆ แบบ Lean ที่ต้องทำงานหลากหลายมากโดยเริ่มจากสิ่งเล็กมากเสมอ
- ให้ความสำคัญกับ "ซอฟต์แวร์ที่ใช้งานได้จริง" มากกว่าเครื่องมือเฉพาะตัวใดตัวหนึ่ง
- เริ่มโปรเจกต์ใหม่อยู่เสมอ แต่ก็ต้องดูแลระบบหลายตัวไปพร้อมกัน
- ให้ความสำคัญกับผลิตภาพของวิศวกรมากกว่าปัจจัยพิจารณาส่วนใหญ่
- โปรดทำความเข้าใจบริบทนี้ก่อนอ่านประเด็นข้างต้น รายละเอียดเชิงลึกดูได้จากต้นฉบับเพราะที่นี่นำมาเฉพาะหัวข้อเท่านั้น
14 ความคิดเห็น
ผมจะกลับมาอ่านวันละครั้งครับ 23/06/04
อันนี้
ดูดีกว่า
สิ่งที่สำคัญที่สุดในการพัฒนาซอฟต์แวร์คือการสร้างสิ่งที่
จำเป็นสิ่งนี้ดูดีกว่า
ดีมากเลย ขอบคุณครับ~!
ผู้คนไม่ได้ต้องการนวัตกรรมอย่างแท้จริง <- นี่หมายความว่าอย่างไรนะ?
ผู้คนพูดถึงนวัตกรรมกันมาก แต่ในความเป็นจริงพอคุณนำสิ่งที่เป็นนวัตกรรมมาให้ ส่วนใหญ่กลับได้รับเสียงตอบรับเชิงลบ ดังนั้นจึงต้องมองระยะยาวและเดินหน้าต่อไป
คำเตือนนี้โดนใจมากครับ
ว้าว เป็นบทความที่ดีมากจริงๆ..
คำว่า technical sharks น่าจะหมายถึงเทคโนโลยีที่ผ่านการพิสูจน์แล้วและมีความเสถียร มากกว่าจะหมายถึงเทคโนโลยีที่ "ล้าสมัย"
อ้อ สำนวนมันดูแปลกไปหน่อย ผมเลยแก้ไขแล้วครับ
เป็นบทความที่ดีนะครับ
ผมชอบมากที่คุณทำเครื่องหมายส่วนที่ว่า "สำคัญ" ไว้แยกต่างหาก โดยเฉพาะในแง่ที่ได้ให้บริบทมาด้วย
อ๋อ ดีขึ้นมากเลยครับ แก้ไขแล้วครับ