พอดีอ่านเรื่องที่ plynoi พูดถึงความขี้เกียจเอาไว้ คิดว่าอีกประเด็นที่น่าสนใจคือเรื่องของสัดส่วนการแบ่งเวลา
ผมเห็นโปรแกรมเมอร์จำนวนมาก มุ่งสร้างผลงานในเชิง “ปริมาณ” กันอย่างเอาเป็นเอาตาย คนกลุ่มนี้มักส่งงานชุดแรกเร็วที่สุดเสมอๆ ด้วยความคิด ง่ายสุด เร็วสุด ดีสุด
ผลที่ได้คือการไม่ยอมเรียนรู้ และ reuse สิ่งที่มีอยู่แล้ว เป็นจำนวนมาก เช่นฟังก์ชั่นวันที่อย่าง strptime ที่เห็นคนพยายามจะเขียนตัว Parse วันที่กันซ้ำแล้วซ้ำเล่า ไม่รู้่กี่ครั้งในอายุงานไม่มากนักของผม ผมเคยเห็นคนเขียน C++ ที่สร้าง LinkedList ใช้เองแทน Vector หรือจะเป็นการทำงานอย่างอื่นๆ อีกมากมายนับไม่ถ้วน
ผมมองเรื่องพวกนี้เป็นการแบ่งส่วนเวลา ระหว่างการอ่าน (เรียนรู้) กับการลงมือทำ
คนโดยทั่วไปแล้วมักจะแบ่งเวลาให้การลงมือทำเป็นเวลาส่วนใหญ่ เกินร้อยละ 75 มีหลายๆ ครั้งที่เต็มร้อย
แต่ความลำเค็ญจะเกิดขึ้นเมื่อต้องมีการ maintain ผลงานที่สร้างไว้ก่อนหน้า ด้วยความที่โค้ดมีปริมาณมาก จากการไม่ใช้งานไลบราลี สิ่งที่พบอย่างหลีกเลี่ยงไม่ได้คือปริมาณบั๊กที่ต้องดูแลกันเป็นเวลายาวนานและน่าทรมานอย่างไม่น่าเชื่อ
กับตัวเองแล้ว สมัยเรียนผมแบ่งเวลาอ่านหนังสือถึงร้อยละ 80 ใช้เวลาทำแค่ 20 แต่พอมาเจอโลกความเป็นจริงก็พบว่่ามันทำอย่างนั้นไม่ได้เสมอไป ด้วยเหตุผลทางธุรกิจหลายประการ เราต้องทำก่อน แก้ทีหลังไปเสมอๆ
มันอาจจะดีถ้าก่อนที่เราจะเพิ่มโปรแกรมเมอร์เข้ามาในโปรเจค แล้วให้สอบความรู้ด้านเทคนิคกันให้ผ่านก่อนนะ
ถูกเลยยยยยยยยยยยยย ที่ผ่านมาเจอแค่จับคนยัดเข้าโปรเจคโดยไม่ดูว่าเค้าเ็ป็นหรือไม่เป็น ซึ่งพอไม่เป็น (และไม่ยอมเรียนรู้) ก็ค่าเท่าเดิม รุ่นพี่ในทีมผมคนนึงถึงกับพูดว่า “เอา 10 มาคูณ 0 มันก็ได้ 0”
ส่วนเรื่อง Reuse นี่มีประสบการณ์ตรงกับตัวเองครับ ตอนนั้นนั่งเขียน Store ทำงานอยู่ครึ่งค่อนวัน จนมารู้ว่าเพื่อนทำอีกตัวที่ใช้แทนกันได้เสร็จตั้งแต่อาทิตย์ที่แล้ว…….. หลังจากนั้นมองๆ ถามๆ เรื่อง Reuse ก่อนเลย