ถ้าใครสังเกตุเกี่ยวกับตำแหน่ง Developer/Programmer นั้น
มักจะมีอายุเฉลี่ยไม่สูงมาก ๆ
เนื่องจากมีเหตุผลมากมายมารองรับ
ทั้งเรื่องของคนรุ่นใหม่ Gen X, Y, Z
ทั้งเรื่องทัศนคติต่อการทำงาน
ทั้งเรื่องค่าตอบแทนและสวัสดิการ
ทั้ง career path ของงานในสายของ Developer มันสั้น
ถ้าอยากขึ้นไปสูง ๆ เงินเดินสูง ๆ ก็ต้องไปสาย management สิ
ดังนั้นเรามักจะเสีย Developer เก่ง ๆ ไปทำงานสายการประชุม
เอ้ย ไม่ใช่ !! สายการจัดการมากยิ่งขึ้น
จากนั้นบริษัทก็ไปจ้าง Developer ใหม่เข้ามา
จะหาคนเก่ง ๆ มีประสบการณ์ ก็มีค่าตัวสูง
ดังนั้นจ้างเด็ก ๆ มาดีกว่า ราคาถูกกว่า
แต่ความคาดหวังคือ มาทดแทนสิ่งที่ขาดไป !!
แน่นอนว่า ได้เพียงแค่จำนวน แต่คุณภาพไม่ได้
ดังนั้น แต่ละบริษัทจึงต้องมีการ training และ สอนงานกันต่อไป
เมื่อเวลาผ่านไปสักพัก Developer ใหม่ ๆ นั้นเริ่มมีประสบการณ์
เริ่มเรียนรู้และมองเห็นอนาคตอย่างชัดเจนว่า
ทำต่อไปไม่รุ่งแน่ ๆ
เพราะว่า career path มันไม่เอื้อ หรือสภาวะแวดล้อมไม่ส่งเสริมให้โต
ดังนั้นทำอย่างไรดีละ ?
ออกไหม ?
ไปเรียนต่อไหม ?
เปลี่ยนสายงานไหม ?
ไม่ว่าจะทางไหน ก็เข้าวงจรเดิมคือ คนที่มีประสบการณ์และเก่ง ๆ ก็หายไปอีก
เป็นแบบนี้ไปเรื่อย ๆ
ปล. ไม่ได้เป็นทุกที่หรอกนะครับ ที่ผมเจอน่าจะส่วนน้อย
เช้านี้เห็นการ share บทความเรื่อง 7 Circles of Developer Hell
เป็น infographic ที่อธิบายและแสดงให้เห็นว่า การพัฒนา software มันเป็นสิ่งที่ ... มาก ๆ น่าจะสะท้อนอะไรหลาย ๆ อย่าง ในโลกของการพัฒนา software นะ โดยแบ่งเป็น 5 กลุ่มคือ- People
- Client
- Management
- Bad code
- Interruption
- บริโภคกันแต่เอกสาร ทำเอกสารเยอะไปไหน
- ฝ่ายที่จ้างคนไม่ใช่ทีม แต่เป็นอีกหน่วยงานที่ไม่ได้เข้าใจความต้องการของทีม
- ทาง marketing/sales/business ก็จะขายอย่างเดียว ก็จะเอาอย่างเดียว
- ลูกค้าก็เปลี่ยนบ่อยเหลือเกิน งานเข้า งานงอก
- ลูกค้ารู้ปัญหาของระบบก่อนทีมพัฒนา
- ฝ่าย management ก็ตามงาน จิกเป็นไก่เลย เสร็จยัง เสร็จยัง !!
- ฝ่าย management ก็มีประชุมเยอะเหลือเกิน บ่อยครั้งเป็นการโยนความผิดไปมา ไม่มีใครกล้าตัดสินใจ
- เมื่องานมันเยอะ เวลาน้อย Developer ก็เลยตัดสินใจว่า ทำให้เสร็จ ทำให้เสร็จ โดยไม่สนใจผลที่ตามมา
- สิ่งที่ Developer ต้องไปสู้รบคือ Legacy code ที่ไม่มีใครกล้าเตะ เมื่อพังก็โดนเล่นงานไป
- ถามถึงเอกสารของระบบที่ทำกันเยอะ มันก็ไม่ช่วย เพราะว่าไม่ตรงกับ code อีก !!
- บ่อยครั้ง Developer ก็สร้าง Legacy code ขึ้นมาเองอีก เอาเข้าไป
- สิ่งที่ Developer ชอบทำเวลาโดนเร่งคือ ทำทำไปก่อน แก้ปัญหาด้วย workaround แก้ผ้าเอาหน้ารอดไปก่อน
- สิ่งต่าง ๆ ที่ Developer ทำนั้น ทาง management, marketing และฝ่ายต่าง ๆ ชอบอีกด้วย เพราะว่าเร็วทันใจ
- ยังไม่พอ Developer คนหนึ่ง ๆ มักจะงานมากกว่า 1 project เพราะว่า เราต้อง utilize คน !!
- สุดท้ายสิ่งที่สร้างขึ้นมา กลับมาทำร้าย business อย่างรุนแรง !!
ถ้าการพัฒนา software ยังเป็นเช่นนี้ ก็อย่าหวังว่า จะได้ software ที่มีคุณภาพออกมาคนต้องพร้อม ระบบต้องพร้อม สภาวะแวดล้อมต้องพร้อม ผลที่ตามมามันก็ต้องดีแน่นอน แต่ต้องใช้เวลา
วันนี้ Developer ในบริษัทหรือทีมของเรา อายุสั้นหรือเปล่านะ ?ขอให้สนุกกับการ coding นะครับ Reference Websites https://blog.toggl.com/seven-circles-of-developer-hell/