ถ้าใครสังเกตุเกี่ยวกับตำแหน่ง 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 กลุ่มคือ

  1. People
  2. Client
  3. Management
  4. Bad code
  5. 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/