ในการพัฒนา software นั้น
เรามักจะพบเจอปัญหาต่าง ๆ มากมาย
ทั้งสิ่งที่ควบคุมได้และไม่ได้
แต่มีปัญหาที่เรามักจะพบเจอประจำในการพัฒนาดังนี้
ซึ่งทำให้เกิดปัญหามากมายตามมา

เรื่องที่ 1 การทำงานต่าง ๆ มี feedback loop ที่นานจนเกินไป

การรองานหนึ่ง ๆ ให้เสร็จสิ้น จากนั้นค่อยทำงานต่อไป
เวลาที่เราใช้ในการรอ ถือว่า เป็นการสิ้นเปลืองอย่างหนึ่ง
ยกตัวอย่างเช่น

  • การ confirm requirement จากลูกค้า หรือ การตัดสินใจต่าง ๆ
  • การทดสอบระบบงานที่ยาวนาน และ ทำบ่อยไม่ได้
  • การเปิดขอ environment ต่าง ๆ
  • การ review code ที่รวมศูนย์ และไม่บ่อย ส่งผลให้แต่ละครั้งใช้เวลายาวนาน
  • การเปิด ticket ต่าง ๆ บ่อยครั้งมีคนมาจัดการแทนทีมอีกต่างหาก แบบนี้เป้นปัญหาไหมนะ ?
  • เวลาในการ build และ deploy นาน ๆ

การทำงานต่าง ๆ เหล่านี้ เราลดเวลาการรอหรือการทำงานได้ไหม ?

เรื่องที่ 2 การประชุมเพื่อแก้ไขปัญหา

เมื่อเกิดัญหาหนึ่ง ๆ ขึ้นมา
ที่สิ่งที่ต้องคุยหรือประชุมกันคือ หาทางแก้ไข
ไม่ว่าจะเป็น workaround หรือ solution ก็ได้

แต่บ่อยครั้งเราจะพบว่า
การประชุมเหล่านี้ มักจะคุยในเรื่องที่ไม่ตรงประเด็น
ชอบออกทะเล
หาคนผิด
โยงเรื่องอื่น ๆ ไปเรื่อย
โดยไม่ focus ที่การแก้ไขปัญหา
ถ้าเป็นแบบนี้ จะสิ้นเปลืองเวลามากไปไหม ?

เรื่องที่ 3 การทำงานระหว่างทีม

ในระบบหนึ่ง ๆ มักจะมีหลาย ๆ ทีมทำงานร่วมกัน
ไม่ว่าจะเป็นบริษัทเดียวกัน หรือ ต่างบริษัท
หรือทำงานแบบ on-site หรือ remote ก็ตาม
จะพบว่ามีปัญหามากมาก
ทั้งเรื่องของตารางเวลา และ หน้าที่รับผิดชอบ
รวมถึงรูปแบบการทำงาน ติดต่อสื่อสารกัน
แน่นอนจำเป็นต้องมีเครื่องไม้เครื่องมือที่เหมาะสม
ที่เหมาะสมกับการทำงานและทีมงานด้วย

ลองดูกันหน่อยว่า ปัจจุบันเรามีปัญหาตรงไหนบ้าง ?
บ่อยครั้งพบว่า ปัญหาต่าง ๆ เหล่านี้มันดันกลายเป็นเรื่องปกติอีกต่างหาก !!