ในการพัฒนา software นั้น
เรามักจะพบเจอปัญหาต่าง ๆ มากมาย
ทั้งสิ่งที่ควบคุมได้และไม่ได้
แต่มีปัญหาที่เรามักจะพบเจอประจำในการพัฒนาดังนี้
ซึ่งทำให้เกิดปัญหามากมายตามมา
เรื่องที่ 1 การทำงานต่าง ๆ มี feedback loop ที่นานจนเกินไป
การรองานหนึ่ง ๆ ให้เสร็จสิ้น จากนั้นค่อยทำงานต่อไป
เวลาที่เราใช้ในการรอ ถือว่า เป็นการสิ้นเปลืองอย่างหนึ่ง
ยกตัวอย่างเช่น
- การ confirm requirement จากลูกค้า หรือ การตัดสินใจต่าง ๆ
- การทดสอบระบบงานที่ยาวนาน และ ทำบ่อยไม่ได้
- การเปิดขอ environment ต่าง ๆ
- การ review code ที่รวมศูนย์ และไม่บ่อย ส่งผลให้แต่ละครั้งใช้เวลายาวนาน
- การเปิด ticket ต่าง ๆ บ่อยครั้งมีคนมาจัดการแทนทีมอีกต่างหาก แบบนี้เป้นปัญหาไหมนะ ?
- เวลาในการ build และ deploy นาน ๆ
การทำงานต่าง ๆ เหล่านี้ เราลดเวลาการรอหรือการทำงานได้ไหม ?
เรื่องที่ 2 การประชุมเพื่อแก้ไขปัญหา
เมื่อเกิดัญหาหนึ่ง ๆ ขึ้นมา
ที่สิ่งที่ต้องคุยหรือประชุมกันคือ หาทางแก้ไข
ไม่ว่าจะเป็น workaround หรือ solution ก็ได้
แต่บ่อยครั้งเราจะพบว่า
การประชุมเหล่านี้ มักจะคุยในเรื่องที่ไม่ตรงประเด็น
ชอบออกทะเล
หาคนผิด
โยงเรื่องอื่น ๆ ไปเรื่อย
โดยไม่ focus ที่การแก้ไขปัญหา
ถ้าเป็นแบบนี้ จะสิ้นเปลืองเวลามากไปไหม ?
เรื่องที่ 3 การทำงานระหว่างทีม
ในระบบหนึ่ง ๆ มักจะมีหลาย ๆ ทีมทำงานร่วมกัน
ไม่ว่าจะเป็นบริษัทเดียวกัน หรือ ต่างบริษัท
หรือทำงานแบบ on-site หรือ remote ก็ตาม
จะพบว่ามีปัญหามากมาก
ทั้งเรื่องของตารางเวลา และ หน้าที่รับผิดชอบ
รวมถึงรูปแบบการทำงาน ติดต่อสื่อสารกัน
แน่นอนจำเป็นต้องมีเครื่องไม้เครื่องมือที่เหมาะสม
ที่เหมาะสมกับการทำงานและทีมงานด้วย
ลองดูกันหน่อยว่า ปัจจุบันเรามีปัญหาตรงไหนบ้าง ?
บ่อยครั้งพบว่า ปัญหาต่าง ๆ เหล่านี้มันดันกลายเป็นเรื่องปกติอีกต่างหาก !!